Monday, December 22, 2008

Agile product development methodology


Waterfall Model required a complete analysis of user requirements with Months of intense interaction with users and customers. Then the programmers implement and the complete system is tested and shipped.

But users change their minds and after months, of collecting requirements users still not sure of what they want. The Requirements tend to change mid-development and difficult to stop the
momentum of the project to accommodate the change. Copious amounts of documentation need to be kept up to date to accommodate even small changes

The high overheads involved in design methods led to the creation of agile method of programming which focuses on


· Code rather than design
· Are based on an iterative approach to software development;
· Are intended to deliver working software quickly and evolve this quickly to meet
· changing requirements.

Agility is the ability to create and respond to change in order to profit in a turbulent
business environment. Companies that can
• innovate better and faster
• respond quickly to
-- competitive initiatives
-- new technology
-- customer's requirements

will win.

The basic risks in the earlier development methodologies are taken care of by Agile methodology as follows:


Schedule slips Short release cycles
Project canceled Smallest release that makes sense
System goes sour Maintain a suite of tests
Defect rate Testing by programmers and customers
Business misunderstood Make the customer part of the team
Business changes Short release cycles
False feature rich Address only the highest priority tasks

Agile development process follows those project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.


The Manifesto

This was created by Kenny Beck and 16 others in 2001 and they issued this development manifesto

"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:


• Individuals and interaction over process and tools,
• Working software over comprehensive documentation,
• Customer collaboration over contract negotiation,
• Responding to change over following a plan. "


Principles behind the Agile Manifesto

We follow these principles:

· Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
· Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
· Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
· Business people and developers must work together daily throughout the project.
· Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
· The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.


Agile Methodologies

The different development methodologies that are practiced under Agile are as follows:


· Scrum
· Dynamic Systems Development Method (DSDM)
· Crystal Methods
· Feature-Driven Development (FDD)
· Lean Development (LD)
· Extreme Programming (XP)
· Adaptive Software Development (ASD)

I will write on some of these development methodologies in the future blog write up.

Keep reading

No comments:

Post a Comment