Saturday, September 22, 2012

How agile software development methods sync with Agile Manifesto


Agile Manifesto

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan


Examples of agile software development methods

1.    Extreme programming

Extreme Programming (XP) has evolved from the problems caused by the long development cycles of traditional development models. It is composed with five phases (Exploration, Planning, Release, Productionizing, Maintenance, and Death). This method is famous for short iterations (even may be couple of iterations per day) pair programming and often interaction with the customer.
Reference:
http://www.extremeprogramming.org/rules.html
Agile software development methods Review and analysis by Pekka Abrahamsson, Outi Salo & Jussi Ronkainen Viri Electronics Juhani Warsta - University of Oulu

2.    Scrum

Getting lot of terminology form rugby, this concentrates on putting out a release. The Scrum development process concentrates on organization sprints. Prior to each sprint begins, the group plans the sprint, identifying the backlog items and assigning sets of programmers to these items. Teams develop, wrap, review, and adjust each of the backlog items. Scrum talks about roles like scrum master, product owner, scrum team, customer, management.
Reference:
http://www.mountaingoatsoftware.com/topics/scrum
http://scrummethodology.com/
An Introduction to Agile Software Development - Serena

3.    Feature Driven Development (FFD)

Each of before methods had some difficulties with large project, as a solution FFD comes in. while just as applicable for small teams, Jeff designed FDD from the ground up to work for a larger team. Composed with five steps they are Develop an overall model, Build a features list, Plan by feature, Design by feature, Build by feature.
Reference:
http://agile.dzone.com/articles/introduction-feature-driven
http://infolific.com/technology/methodologies/feature-driven-development/
http://en.wikipedia.org/wiki/Feature_Driven_Development


How They  sync with Agile Manifesto

 Here will explain it using 3rd, and 4th points in agile manifesto.


Customer collaboration over contract negotiation
Responding to change over following a plan

Extreme Programming
We know that there is lot of iterations in the extreme programming. After each of this iteration, there is a small release. This is in order to get the customer feedback. Otherwise, there is no use of doing it in such a small chunks.
Keeping ever release small and having stand up meetings allow changes to occur. Avoids lot of up front design and over design.
Scrum
In scrum, we have a project owner role, which is selected by scrum master, customer and management. He has the responsibility of taking final decisions. So there we can see the customer collaboration.
Project owner can edit and re-prioritize product backlog at anytime. If there is a change sprint can be terminated or system can be tweaked midway of a sprint.
Future Driven Development
Regular builds ensure there is always an up to date system that can be demonstrated to the client and helps highlighting integration errors of source code for the features early.
Regular builds helps highlighting integration errors of source code for the features early, and it means it allow changes. Developing by Feature makes it easier to deliver correct functions and to extend or modify the system.



Content

Email:

Syndicators/Readers:

FaceBook: