Have you ever heard the question, “How do you eat an elephant?” The answer is, “One bite at a time.” We talked with Scott Bowen about how an iterative approach has changed software development.
“Waterfall development is a serial process that starts with gathering requirements, moves to designing and development, and then testing to make sure that it works properly. If you’ve worked in a waterfall development environment, you usually spend a lot of time early in the process to get all of the customer requirements down on paper, interpreted correctly. Any software product I’ve worked on over the past fifteen years that has employed a waterfall method has had significant challenge to properly document all the user requirements up front and then demonstrate working code after a long cycle of development that meets user requirements. Often, the first time you demonstrate a product to a customer, they may like a little of it, but much of what is demonstrated is not at all what they expected. So much interpretation happens between getting requirements and executing the development. At least in the first demo or two you are likely to hear, “I don’t like that. It doesn’t work for me.”
Agile software development is an iterative development process, using collaborative teams of developers, testers and project managers working together to understand the customer’s requirements, build an iteration of working pieces, demonstrate those to a customer, and then from the customer feedback, refine the development for the next sprint. Following this process, you get quick feedback to allow you to inspect and adapt, and you’re constantly working from a prioritized backlog of work. As you evolve the product iteratively toward the release date, you have this ability to be flexible, making changes to align the product with the customer’s vision for the product, as a customer’s idea of what they want often evolves, as well. You can adapt to changes more quickly, and more efficiently.
The specific environment or goals of a development project ultimately determine what method will work, however, I’ve had great success with Agile approaches like Scrum in developing a software product that stays tightly aligned with user requirements while empowering and motivating talented developers.. Instead of focusing a team’s effort upfront on so much documentation to understand and interpret a customer’s requirements, making assumptions that may be proven incorrect down the road, Scrum allows you to spend your resources from the very beginning on building a working product. The conversation that happens when you demonstrate an early working increment of a product results in a lot of useful feedback that is hard to get from a waterfall methodology.”
Although you may never need to eat an elephant, an iterative approach is a very good idea for software development. What are your experiences in Agile software development?
Contact Scott Bowen by email at ScottJB@vmc.com or 877.393.8622.










