SoCal Code Camp 2016
SoCal Code Camp 2016 took place at USC, which was nice because it was a quick train ride on the Expo Line. This was my second time speaking, and I learned a ton! Every time I go and do this, it gets easier. (Hence all the Toastmaster-ing!)
SoCal Code Camp is great because they open it up to absolutely anyone who wants to give a talk. One speaker I met at lunch didn’t quite realize that it was literally “Whatever you propose, we’ll schedule.” She submitted four talks, thinking only one of them would be accepted…and ended up giving all four! You gotta be careful!
Normally, you’d think that opening up a conference to a bunch of non-professional speakers would be a disaster, but that’s the funny thing about public speaking. The ones who volunteer to speak in front of their peers take the responsibility very seriously! There’s always a lot of great information to learn. I highly recommend it to anyone who’s technically-minded and wants to give public speaking a try.
This year, all the UX/PM talks happened to be on Saturday morning. A casual UX/PM track of sorts! Here are my tweets from the other talks relating to UX/PM that don’t pertain to mine…
Developers, Designers and PMs: Agile collaboration for a better product (Tom Vignard)
Bad teams don’t communicate, trust, or collaborate. They aren’t engaged, and aren't dedicated. It puts the project at risk! Example of a dream team that didn’t work - “The Big Four” at the Lakers! Ego problems, no collaboration.
Great teams communicate, trust, collaborate; have vision, passion, have fun. Impact projects positively!
What drives a product manager? Good KPIs, deliver cool features with no defects.
What drives a designer? Understanding big picture, using creative process, having flexibility, looks good!
What drives devs? “No blockers,” clear requirements, leaning/growth, fiddling in new tech!
Putting it all together: what makes a great team:
- Shared goals and ownership
- Big pictures/vision (roadmapping that brings everyone to the table to ask “Is this feasible?”)
- Clear requirements (moving with backlog)
- Ownership and shared accountability
- Innovation
- Shorter iterations
- Try things with low risk
- Cool features
- New technologies
- Creative process
- Growth
- Learning, growth, with opportunity to learn from each other (paired programming)
- Brainstorming
- Collaboration
- Agile small (5 to 7) for better communication
- Ownership
- Brainstorming
- “No blockers”
- Results
- Features delivery (easier with Agile) since success is momentum
- KPIs
- No defects
Unless ppl talk to each other, they might have diff ideas of what’s going on. Get together and document!
What can you do right now? Talk (not email), connect with people, ask questions, share ideas, help others! Lessons from Tony Robbins: "Trade your expectations for appreciations.” Do more for others to become more yourself.
If you do these 5 things, your team will be engaged, passionate, self-driven, happy, successful!
Clarify your reqs by drilling down to “jobs to be done.” “As a [user], I want to [do X] so I can [achieve X].”
Programmer Productivity (Philip Yurchuk)
For programmer productivity, interruptions suck and reusability is golden.
Multitasking makes tasks longer—kills momentum & focus. When on vacation, go on vacation. No work for a week!
Have daily standup meetings: what you did yesterday, will do today, any problems? (But don’t solve problems then!)
2-min rule for Getting Things Done by David Allen: if a task takes less than 2 minutes, just do it now!
Interruptions the equivalent of multitasking, because it breaks focus and momentum. Jeff Atwood (cofounder of Stack Overflow) says interruptions are equal to -10 IQ. Kathy Sierra did research about quality of work while multitasking—it goes down! Multitasking is ok for habits or when you don’t need to think. But if you aren’t thinking on your job, you need a new job!
Programmers have downtime during compile time. (XKCD comic about compile downtime. But you can still waste time waiting for compiling. Why not lower build time, or set up notifications?
Philip suggests mindful meditation to improve focus. Take two to three 8-minute breaks per day.
Private office FTW, since it increases focus. And open plan offices increases illness by 60-70%. “Not even cubicles, or sneeze guards!”
To reduce noise, put down carpet, acoustic foam, pink noise generators (i.e. background voices). Headphones are not a solution! Listening to music you like often changes your brain’s pattern-matching abilities.
Interrupting your coworkers costs them 15 minutes after you leave! Exceptions: if it’s gonna save you more than 30 min, or if it’s talking to vendor! “We’ve paid them to interrupt them!”
Block out the hours in your calendar for “coding time” to achieve flow state.
Communication has 2 aspects: latency (immediacy) & bandwidth (info context). High bandwidth means lower error rate. Don’t send a text when you’re mad! Pick up the phone.
Minimize miscommunication by using “ubiquitous language.” Martin Fowler (author of Software Development) thinks of it as “unambiguous language.”
Philip promotes the “Voltron developer” concept, where you get all developers using 1 style, best practices. Start with the developer with the cleanest code. Anything that isn’t creative should be reflexive and automatic. Learn from the same source, know the idioms and style guides. He suggests using “n-1” employee strategy. Intentionally keep headcount low and spend the extra money on training or consultants. (Since the greatest cost for companies is salary anyway, build your team from the inside!)
Have a buddy system for your code. It helps if you’re on vacation and sharing the “cool stuff.”
There is no programming silver bullet, except for reuse! For build vs buy decision, buy and configure always wins.