As I’ve written previously, it is exciting to see more and more organizations adopting Agile development processes. Agile helps organizations speed time to market, lower project risk and improve relations between business and IT. Unfortunately, there is still a lot of misinformation or myths about what Agile is and isn’t. These myths keep organizations from adopting Agile processes. This post addresses the second of my Top 5 myths about Agile development.
Myth #2: Agile teams are made up of only developers.
Many of my clients make the mistake of thinking that Agile teams are composed solely of developers. The assumption is that everyone has to do development so everyone must be a developer. Not only is this approach wrong, it actually slows down development. The best way to plan your development team is to understand each individual’s function. A good development team has everything and everyone they need to deliver a working piece of tested, documented, deployable software.
A development team needs to provide fully tested software. Who better to be involved in producing properly tested software than a person with deep testing experience? Development teams that have people with testing expertise prioritize tested software and deliver cleaner code. Whenever possible I ask my clients to include a tester on the development team. In addition to the obvious advantage of better tested software, the tester can become a liaison to the testing team when the software is formally tested. This increases trust between the development team and the formal test team. It also encourages more collaboration so that issues are resolved more quickly.
Larger development projects also require documentation and analysis throughout the project. A development team that includes a strong systems analyst does a better job of interpreting user stories and documenting both the final design decisions and how the system works. In my projects I also use the analyst as a person who can fill in the gaps of the project so that the developers can focus on building workable solutions.
The last requirement is the ability to create deployable software. Including a team member who understands software and hardware architecture ensures that the product can be deployed and that it will stand up under duress.
As you put together your development team, remember that everyone on the team contributes to the success of the project. It is important to select a diverse group of people to get the best product, but you also need to make sure you have people who can contribute to every sprint. Add people with diverse backgrounds and encourage them to try new things. Ask your analyst to help out with product configuration or simple coding in their spare time. The architect can provide code or documentation and the tester can help with analysis of the stories. Cross-training of this type often leads to unexpected efficiencies and discoveries.
Remember, don’t make the mistake of thinking more developers = more product. A diverse development team improves the overall quality of what the team produces and speeds delivery.