Friday, June 25, 2010

Code Leaders and Beautiful Teams

The Art of Unit Testing: With Examples in .Net

At QCON London 2010, Roy Osheroveshared shared his experience of working on great teams.

He discussed things that good teams do:
  1. Automate everything: Configuration, deployment, builds, and tests.
  2. Test and buy the right tools: automation tools, bug management, source control…
  3. Throw out the wrong tools.
  4. Master your tools: shortcuts, macros, refactoring.  A good exercise is to try working without a mouse for a couple of hours.
  5. Get quick continuous feedback from tests and CI, from customers, from peers
  6. Show big visible process: Have a whiteboard.
  7. Communicate without meetings: stand-ups, pair programming, peer code review, team rooms, and visual progress.
  8. Visual board: Create a metaphor for your system and put inside it the components of the system and color code each process.
  9. Code reviews and test reviews before every check-in.
  10. Build by feature and not by layer.
  11. Small team, same room, big feedback.

Then Roy covered things that good team leaders do:
  1. They are bottleneck ninjas. Sit in the same room as your team. Be aware of the conversations going on and problems that arise and step in when necessary.
  2. Grow people with integrity.
  3. Remove obstacles and help the team on how to remove their own obstacles. Ask them to find solutions.
  4. Connecting it all.

Roy recommends that these be used as a check list and be reviewed on a daily or weekly basis so that the team and the leader continue to improve.