At QCON London 2010, Roy Osheroveshared shared his experience of working on great teams.
He discussed things that good teams do:
- Automate everything: Configuration, deployment, builds, and tests.
- Test and buy the right tools: automation tools, bug management, source control…
- Throw out the wrong tools.
- Master your tools: shortcuts, macros, refactoring. A good exercise is to try working without a mouse for a couple of hours.
- Get quick continuous feedback from tests and CI, from customers, from peers
- Show big visible process: Have a whiteboard.
- Communicate without meetings: stand-ups, pair programming, peer code review, team rooms, and visual progress.
- Visual board: Create a metaphor for your system and put inside it the components of the system and color code each process.
- Code reviews and test reviews before every check-in.
- Build by feature and not by layer.
- Small team, same room, big feedback.
Then Roy covered things that good team leaders do:
- 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.
- Grow people with integrity.
- Remove obstacles and help the team on how to remove their own obstacles. Ask them to find solutions.
- 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.