Chapter 17: TOGETHER WE STAND Teamwork and the Individual Programmer
- Both the interactions within and outside your development team will affect the code you produce. Notice how they affect your work.
- A team’s organization has an inevitable affect on the code it produces.
- Organize your team around the code you’re building, not your code around the team.
- Teamwork Tools: bugtracking syste, groupware, source control, methodology, project plan,
- Team diseases:
- Tower of Babel: communication problem
- Dictatorship: generally an technical expert and a bag of "yes"-people.
- Development Democracy
- Satellite Station: teams in phisically different places
- The Grand Canyon: This team is comprised of members whose skill levels and experience lie at oppostite ends of the spectrum. Team members are not mixing.
- Quicksand: One member weakness can destroy the team productivity. Workaround: don't be that.
- Lemmings
- To be a high-quality programmer, you must be a high-quality team player.
- Clear lines of effective communication are vital to a well-functioning team. They must be established and cultivated. A good programmer is able to communicate well.
- No programmer owns any part of the codebase. Everyone in the team has access to the whole code and can modify it as is appropriate.
- Define lots of small milestones as short-term goals, and celebrate when you hit them.
- Define responsibilities
- Avoid burnout
- No team should have impossible goals.
- Mix up people’s jobs; don’t force someone to repeatedly do the same kind of task until they get bored and give up. Give everyone a chance to learn and to develop new skills.
- Successful teams are grown and run on purpose; they don’t happen by accident.
- Don’t lose information when people leave a team. Perform a hand-over, and capture all important knowledge from team members. Include all code documentation, test harnesses, and maintenance instructions.
- Use fewer and better people.
- Fit tasks to capability, and also to motivation.
- Invest in people. Technology moves fast; don’t leave their skills out of date. Otherwise they’ll move somewhere where they will gain better experience.
- Don’t cultivate experts.
- Select complementary people.
- Remove failures.
Jul 20, 2010
comments powered by Disqus