As teams are continuing to adopt agile, part of my focus has been to get the entire team on board with the change, not only the Product Owners and BAs. Working with my teams I have heard some consistency of the major struggles they continue to have within the transition to agile. One of those is getting the development team on board as well. For my teams specifically, we have a lot of focus and training for the POs and BAs, but not as much for the development team. Instead, we seem to have more mandates, such as “testing needs to be completed within a given sprint” and other rules such as this. How do we expect the development teams to come up-to-speed on the necessary tools and practices? It seems as though the onus is more or less on themselves. Instead, I’m advocating to have in-depth training for these people as well.
Within agile development, development teams are expected to at least do the following:
- Have their own fork for no more than 1 full day
- Continuously integrate their code into the build
- Build is automated
- Test before integrating their code so they do not break the build
- Write test cases before they code so they code only to satisfy the test
There are also specific tools that the development team should be adopting, such as JUnit, Jenkins, and Cucumber. These tools make it easier to adopt more agile practices. JUnit enables unit testing, Jenkins enables continuous integration, and Cucumber enables automated testing from the Given/When/Then statements provided in acceptance criteria. All of this gives us higher quality code and less overall technical debt when we’re really getting the project started.
As expected, there are consequences for the development team to not adopt agile practices. If we do not continuously integrate then developers who code their own areas may not realize the difference in interpretation of user stories, they may not realize they’re overlapping with someone else, additional defects may be found later than when they could have been found, and it’s more difficult to measure daily progress. In order not to have these issues, the above recommendations, at a minimum, should be followed. Additionally, you should conduct your own research and updating of best practices to continue to improve upon this baseline set of recommendations.
As discussed, these are minimum suggestions for a development team to adopt in the path to becoming an agile team. I’m making these recommendations based on my experiences coaching agile teams and what we find as issues while adopting agile. Comment below the issues you’re seeing with agile adoption and where you think your teams could improve.