- Automated Functional Tests
- Outside-In Development
- Where Do We Start?
- References
Where Do We Start?
Today Scrum appears to be the widest-spread Agile methodology, but many experts claim that implementing Scrum without most of the technical practices from extreme programming is futile. Continuous integration, incremental design, and the 10-minute build already are implemented by most teams. However, teams need to work on even more: For specification workshops, involvement of a real customer requires a team that's already formed. We need to work closely with business users who might not understand the technical language we speak. We have to find common ground in our examples. At that point, we'll be able to involve customers in a more meaningful way.
In my opinion, before doing anything, any team should have a crucial primary practice in place: retrospectives, at least once every month. Without retrospectives, your team will take too long to notice that something you're doing isn't working. Retrospectives establish a self-improving culture. If you find out that your tests become brittle, do something about it, rather than letting more and more problems show up.
With regard to test automation, most teams might be happy with their approach to ATDD. Yet, outside-in development provides a way to overcome even more unnecessary code, while leading to an adaptive and flexible design and architecture. It will take some time to learn all the necessary primary and secondary practices. On the other hand, 10 years ago I couldn't imagine a program with zero bugs. Who knows what our standards will be 10 years from now?