Agile Overview

Challenges in Traditional Software Development Mothodologies

The Traditional software development model follows a sequential life cycle called "the waterfall". The Waterfall model has different distinct phases like Requirements, Analysis, Design, Codi, g, Testing and maintenance.




In this sequential flow, the duration of a project is very long ranging from few months to few years. The end user is not able to test the product till the end of the project and at the time of user acceptance testing the end user finds that the product is not delivering the functionality what he was expecting.
There is a famous Swing Cartoon which shows comically what the customer is expecting and finally what the development team delivers.


1. High costs and wasted budgets
Traditional methods can be quite costly and often 65% of the budgets spent on developing these methods is wasted on developing features that may not be used or required by the customer. This is certainly a major concern for businesses given the current economic climate.
2. Unproductive?
During the development process, there can be large disconnects between the customer (the business) and the engineer. Usually, the engineers put in place the structure of the software first and only then, implement system features needed by the business second. This can create delays in the development process.
3. Changes difficult and costly
Traditional methods, in particular, the Waterfall model, can be very rigid to change.  Progress may have to be brought back to much earlier stages, again meaning a wastage of money and resources.
4. Management Bottlenecks
Traditional software development projects require rigorous approvals. Therefore management time can be wasted during these as many managers approvals are required. This translates to project delays on top of management delays.
5. Lack of transparency
While those overseeing software development projects are often inundated with numerous status reports, frequently they have little to no insight into real progress.  This is because it relates to working software features and functionality, not to business productivity.

Agile Landscape

To overcome the challenges of the traditional software development methods, by late 1990, many people around the world started developing software by using alternative methods which were not rigid and had  the ability to “review-act” fast to the changes in the requirements and technologies. The results of these new methodologies were very successful as compared to the traditional software development methods.

In February 2001, seventeen people met at Snowbird, Utah to discuss and try to find a common ground on these alternative methods. In this gathering, these people came up with the "Agile Software Development Manifesto".



The term "Agile Software Development" emerged from this meeting. This term was used as an umbrella referring to a family of emerging lightweight software development methods such as Scrum, Extreme Programming, DSDM (Dynamic Systems Development Methodology), FDD (Feature Driven Development), Crystal, and Adaptive Software Development.  Instead of emphasizing up-front planning and detailed requirements, these methods placed significant emphasis on continual planning, empowered teams, collaboration, emergent design, a test-early, and, most importantly, the frequent delivery of working software in short and rapid iterations.


Traditional Vs Agile Software Development

If we compare Traditional Development Projects Vs Agile Development Projects

Traditional Development

  • It assumes that full scope is known at the start of the project
  • The Project length is over an extended period
  • All tasks can be put in defined WBS
  • The Process is sequential
  • Stable requirements
  • Detailed documents
  • Rigid change control

Agile Development

  • Scope is partially known at the start of project
  • The Project length is over a short period of time
  • The Process is iterative 
  • Emergent requirements
  • Just enough documentation
  • Effective change control

Comments

Popular posts from this blog

Agile Bug Triage Meeting

Scrum Framework ( Scrum Methods)

Release Planning in Agile