Posted by Robert Half Technology on Monday, February 17, 2014 - 05:00 | Follow me
What is Agile? Perhaps the best way to answer this question is to think back to the dreaded analogy section of the pre-2005 SAT.
Crumb is to bread as splinter is to wood.
Good. Our discussion today will center on the following analogy about two very different software development methods:
Waterfall is to Agile as pickup truck is to sports car.
Agree? You aren’t alone. In some circles, the traditional waterfall methodology has fallen out of favor as an approach to software development. As its name suggests, waterfall, the most familiar structure for software development, moves linearly through the phases of the Software Development Life Cycle (SDLC). Developers progress to the next phase when the current phase has been completed and approved.
What is Agile and how does it differ? In contrast, Agile makes use of an SDLC that is fluid and responsive to client changes. As specified in the Agile Manifesto, the method emphasizes:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What Is Agile? The Differences
The old approach in software development was to revere contract-based, formal processes and unwieldy tech jargon that locked developers into inviolate plans. The Agile method bucks the trend by relying heavily on open communication between invested, dedicated team members who work together in one- to six-week “sprints” to complete as many development tasks as possible.
The entire team takes responsibility for all phases of the SDLC, from planning to testing. The goal for each sprint is to have a working iteration that can be shared with clients. The goals for the next sprint are then reprioritized based on client feedback to the most recent sprint.
Agile promises frequent and continuous delivery of a working product; encourages changes and adjustments; empowers developers; and makes use of open, daily, face-to-face communication throughout the process. Traditional SDLC methods deliver a finished product that is supposed to work but may have bugs, discourage or reject change once the process has started, and isolates developers.
What Is Agile? The Advantages
Agile offers many advantages, but its primary benefit is speed. It promotes fast delivery of products and rapid response to changing requirements. Teams using this method welcome change, even late in development. Most clients like to be able to change their minds and still get the product they want.
Additionally, many clients prefer to actually talk to developers; as a result, clients feel confident in the product being created and the budget being used to produce it. Finally, working software is the primary measure of progress. With Agile, clients end up with software that works and has few or no bugs.
What Is Agile? The Disadvantages
The main problem with Agile is that it hinges on vigorous, continual, open communication, which can be hard to establish and maintain. If the SDLC plan attempts to use Agile, but the client doesn’t participate, the process breaks down. Also, fragmentation can result when too many hands stir the development pot, resulting in projects that deliver a disappointing user experience and feel pieced together.
Agile is all about speedy delivery of working software based on continual feedback, but using Agile demands open communication among all stakeholders, including developers, managers and clients.
What is Agile to you? Use our comments section to share your thoughts on the value of this methodology.