Agile and Lean Performance

Agile's focus on iterative development is undeniably effective, but that's not the whole story on why agile works. Learn why agile results in better performance and how you can use this information to achieve success in your own technology efforts.

Scrum, as evangelized by Ken Schwaber, has emerged as one of the most popular light weight frameworks intended to help guide teams in the effective implementation of agile practices. The ScrumMaster plays a leadership role in managing the performance of the development team. Part coach and part manager, the ScrumMaster sees that barriers to performance are eliminated on a daily basis. The product owner focuses on managing the product backlog (containing the requirements for the system being developed). The performance of the team can be measured in the number of items completed from the backlog. There is a lot more to consider in evaluating the performance of the team. 

My own career has focused on process improvement including implementation of configuration management (CM) best practices. The key focus in agile CM is to provide a fast and repeatable way to build, package, and automatically deploy releases. Continuous integration provides a structure for continuously building and deploying releases that make rapid iterative development fast and effective. Most Scrum teams rely upon these practices to help manage iterative development. These practices significantly help teams develop better software with fewer defects.

Agile focuses on taking a minimal approach to tracking requirements largely in response to the experience of many technology professionals who participated in fruitless efforts to track requirements that effectively changed before the development work could be completed. Agile focuses on working software over comprehensive documentation (as specified in the Agile Manifesto).

Obviously, there are times when requirements tracking is not optional, and test-driven development (TDD) can sometimes help to document the same information. TDD puts the right focus on using verification and validation to improve performance and deliver quality applications. Test cases can also be used to document requirements in a practical and reasonable way. Agile also puts the right focus on integrating testing into the automated build process. From automated unit testing in the continuous integration stream to automated functional and regression testing, TDD helps improve the effectiveness of the development team.

Dean Leffingwell describes the "agile release train" in his book Agile Software Requirements. In this book, Leffingwell discusses releasing as a continuous flow of releasing value to the users in small, frequent increments—a continuous build of value added to the marketplace. This means that you can release code often, with little fanfare.


About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.