Agile Tip of the Month : By Tom Stiehm, Coveros, Inc.
Agile practices are built around establishing and maintaining tight feedback loops so that the need to correct software and process issues can be detected as soon as possible. The ability to quickly identify and implement software changes keeps the cost of change to a minimum. It also helps projects stay on course and deliver value with each release. Here are some feedback loops to monitor that will ensure you are developing high quality software:
Test First Development - designing your tests as a precursor to writing code. Creating tests that are the first client of your code helps you develop more useable, reliable and robust code. If you have trouble writing code that can be unit tested, this feedback loop is telling you to change your code to improve its usability and quality.
Continuous Integration (CI) - automating your software builds, tests and deployments. If your code doesn't successfully integrate, build and pass regression tests, this feedback loop is telling you to pay more attention to software interfaces when building your software.
User Acceptance Testing (UAT) - testing of your software by real users. UAT is a time to gather feedback from not only the business stakeholders but also the people that will be using the system in production. This feedback loop will tell you how easy the application is to use, what features are missing and what does and doesn't make sense to a user.
Retrospectives - sharing lessons learned and thinking about how to make the process better. Retrospectives are a time for the team to reflect on not only how the project is going but also how the process is working. This feedback loop can help the team recognize where the process is breaking down and how to fix it going forward.