Monday, November 3, 2008

AGILE METHODOLOGIES

Agile methodologies have been in the software industry for quite some years and this has resulted in the proliferation of a number of approaches to this new way of developing software. All agile approaches have following common principles.
• Improved customer satisfaction
• Adopting to changing requirements
• Frequently delivering software
• Close collaboration of business people and developers

Traditional software development models are linear in nature with distinct categories e.g. waterfall model has five distinct stages, while agile methodologies are iterative in nature. In most traditional development methodologies a particular stage can’t be started until the previous stage has been finished. While in agile approaches iterative and short releases go through all the development phases in very short time. Agile methods dynamic quality techniques like test-driven development have an edge on static driven quality techniques e.g. inspection and technical reviews.
Traditional methodologies can’t handle projects with high volatile requirements due to their liner nature of processes while agile methods handle such projects with simple planning, short iterations, earlier releases and continuous customer engagement. Traditional methods are more effective for large and more complex projects, while in recent years the information systems and emergence of e-business applications with volatile and ambiguous requirements has changed the scene that traditional methodologies can’t satisfy the needs of these projects.
All Agile methods assign value to:
1.Individual and interactions over processes and tools.
2.Working software over comprehensive documentation.
3.Customer collaboration over contract negotiation
4.Responding to change over following a plan.

The most important practice of agile is ‘on-site’ customer concept i.e. continuous customer engagement, while in traditional approaches customer involvement is mainly in early phases of project. The CHAOS report showed the critical importance of customer involvement. Customer involvement was found to be the number one reason for project success, while the lack of user involvement was the main reason given for projects that ran into difficulties. Agile methods promise to increase customer satisfaction, to produce high quality software and to accelerate development times.
Agile methods are fundamentally iterative. They do not replicate the traditional linear sequence of requirements, design, implementation, and test; rather they repeat this sequence again and again.
In the projects where time to market is critical and a lot of unknown and ambiguous requirement exists, agile methods and especially eXtreme programming [2, 3, 4, 5] are proving to be a successful strategy because it handles unstable requirements throughout the development lifecycle and delivers products in shorter timeframes and under budget constraints. In this case study we compare agile-oriented projects and projects developed by employing traditional methodologies. We analyze and measure industry data and report their relative impact on certain quality parameters.

REFERENCES:
B.Boehm and R.Turner, Balancing Agility and Discipline-A Guide for the Perplexed, Addison-Wesley, 2003.

J.Highsmith, Agile Project Management, Creating innovative products, Addison-Wesley, 2004.

D, J.Anderson, Agile Management for Software Engineering, Applying the Theory of Constraints for Business Results, Prentice Hall, 2003.

No comments: