It is amazing to discover the number of companies that are still using the old waterfall method of software/Web development. They follow the traditional software development life cycle starting with intense planning and analysis to develop the perfect set of requirements followed by an exacting estimation of all the tasks, costs and precision timelines. This can take 2 – 3 months or even 6 months or more on large projects.
The team has dotted all the i’s and crossed all the t’s and now development can begin. If you are lucky you have some amazing technical leads and developers available to translate all the requirements into a detailed design specification followed by months of programming. If you are again lucky, the business folks will leave them alone, but it is quite common that they forgot something and will ask how much it would cost to add this or that new feature. Each major new feature might add another month to the schedule.
If the developers don’t have to shift gears midstream then they might get done in the next 4 – 6 months. Next, enter the software testers, and they begin testing the basic functionality. They notice that the software doesn’t match up with the requirements too well and there are lots of little bugs. The developers are informed of the problems and they begin making their changes.
The business folks are starting to get nervous as this is really taking a long time and they haven’t seen the software yet. The business manager and development manager discuss setting up a demo. The development manager pulls his team together to fire up the troops. The technical lead and developers agree to pull off a small miracle and have a complete demo of the new software in two weeks. The business team gets wind of the demo and wants to invite more people. The developers are in luck as some key business people can’t make the demo meeting and the meeting is pushed out another week.
Now, time for the demo, and the whole gang is there… developers, testers, business users, plus the business and development managers. A bright young developer has drawn the short straw and he proceeds to give the demonstration. Can you guess what happens now? The business team asks lots of questions and it becomes abundantly clear that this is not what they envisioned. The feature they really wanted is not ready yet. The interface is confusing and the meeting concludes with a plan to meet again in order to update the requirements.
There is a better way. Software companies have discovered a way to short-circuit this long train wreck called the waterfall method. It is called Agile development. Agile is a much different way of doing business in which the development is broken up into small cycles called sprints.
Agile is made up of a self-directed team consisting of a product owner, team leader and multi-disciplinary team members with skills in software development. The product owner creates a prioritized wish list called a product backlog. The team evaluates each item on the list in relative term and then commits to complete a set of those items from the top of the list during a sprint (usually 2 – 4 weeks). The team commits to fully develop, test and deploy a working piece of software during that time-frame.
The sprint produces business value in the form of working software that incrementally moves the product forward. Through a series of sprints the team will be able to evaluate how well the functionality suits the business needs. During each sprint, the scope and time period remains constant but the design, development and testing can vary in order to complete the sprint backlog of features according to the wishes of the team. Design and development issues can be addressed at any time. The product backlog can also be adjusted between sprints and in turn adjust to the changing needs of the business and market. This results in software of higher quality and more closely aligned with the end user’s needs.
The bottom line is that through Agile development you develop working usable software much more quickly than with Waterfall. Agile methodology also delivers a product often much more close to the needs of the business or a rapidly changing market. Agile can often times save development costs as well. The natural iterative nature of this methodology tends to rank order the most important features first. Business users are often quite satisfied to stop development once they have the most important features completed. In this way Agile development can save money by only building applications that are “good enough” and in production now rather than a year from now.
Silicon Valley has already recognized the advantages of Agile development. It is high time that businesses everywhere recognize this superior methodology. Business leaders need to recognize the new paradigm that Agile development provides by adapting to a more flexible way of creating software systems. To remain competitive, businesses should raise the bar by adopting an Agile methodology. There are a number of Agile methodologies, each of which, can be tailored to each business and corporate culture. But be prepared to change your way of doing business as well… the results will be well worth it. For more information, visit the Agile Alliance at www.agilealliance.org .