Friday, July 18, 2008

What is Agile Software Development?

Agile software development is a framework utilized software development projects. It was born out of frustration within traditional project management activities. According to Wikipedia:

The modern definition of agile software development evolved in the mid 1990s as part of a reaction against "heavyweight" methods, as typified by a heavily regulated, regimented, micro-managed use of the waterfall model of development. The processes originating from this use of the waterfall model were seen as bureaucratic, slow, demeaning, and inconsistent with the ways that software engineers actually perform effective work.

The objective when implementing an agile methodology is to minimize risks in software development. Within all agile software development methodologies, there are common principles. The Agile Alliance lists the following principles in the Agile Manifesto:

* Customer satisfaction by rapid, continuous delivery of useful software

* Working software is delivered frequently (weeks rather than months)

* Working software is the principal measure of progress

* Even late changes in requirements are welcomed

* Close, daily, cooperation between business people and developers

* Face-to-face conversation is the best form of communication

* Projects are built around motivated individuals, who should be trusted

* Continuous attention to technical excellence and good design

* Simplicity

* Self-organizing teams

* Regular adaptation to changing circumstances

There are many disciplines that fall within the agile software development umbrella. Some well known development methodologies include Scrum, Crystal Clear, Lean, Extreme Programming (XP), Adaptive Software Development, Feature Driven Development, and DSDM.

Agile Software Development Status

Agile Software Development is often contrasted to the most prevalent software development model: Waterfall. According to a study from ACM:

"It is both surprising and disappointing, then, that in a survey of almost 200 practitioners, accounting for several thousands of projects over the past five years, the dominant process model reported was the Waterfall, with more than a third claiming its use. This result raises a question: Do practicing professionals know the Waterfall when they see it? Perhaps they are confusing it with other process models. This seems unlikely, but so does its dominance. It's more likely that in many circumstances, doing the wrong thing is easier than doing the right thing--and this is not a recipe for success".

Where to Learn More

Outsource Software Development provides filtered and original content for Software Outsourcing and Offshore Software Development

No comments: