I was invited to present an overview on Agile Development to Old Dominion University's ACM chapter. More specifically, I gave an overview of the Scrum method. My work in MITRE's Agile Engineering department has allowed me to practice Agile methodologies in the work force. Through this presentation, I shared my experiences with the members of the ACM.
Agile engineering's main focus is a shift from a linear development model. The Waterfall model is the classic example of a linear process model. Agile focuses on a cyclic and adaptive model. One of the main focuses of Agile is to receive and incorporate user feedback into the development process in order to produce a better product for the user. Also, it allows the product owner to garner greater control over a project.
Each cycle in Agile includes all of the traditional development steps: Requirements, Design, Implementation, Verification, and Assessment/Maintenance. These cycles are sometimes called sprints. At the conclusion of each sprint, a fully releasable product should be available. That is, the end of the sprint produces a product that has been through all of the necessary development steps and can be sold as a subset of the end-goal product. This provides the benefit of having a complete and deliverable product even if funding is cut or production must be halted.
An Agile development model provides the benefit of Failing Early. This means the development team can encounter and solve errors earlier in the development process and solve them when the costs are lower. An overly simplistic example would be the selection of a database. If MySQL is chosen at the beginning of a project using Agile, the development team would know earlier in the process if it was suitable for the solution. However, in the Waterfall model, it is possible to not understand the requirements until too late in the process to make a cheap switch.
An ODU WS-DL alumnus (Carlton Northern) has been instrumental in releasing a handbook for implementing Agile methods. This handbook provides guidelines for implementing Agile methods in the government (specifically the DoD) environment.
These resources should serve as an introduction to Agile methods and the benefits of using this development model.
-- Justin F. Brunelle