Friday, April 4, 2014

What is "Agile" Methodology

Lets first try to define what is Agile Methodology?

Agile Methodology is an alternative development methodology to traditional project management like waterfall model. Agile Methodology encourages rapid and flexible response to changes.  Heart of Agile Methodology is defined in Agile Manifesto.


Components which comes into consideration when we do project management.
  1. Time
  2. Budget
  3. Scope
  4. Quality
In Traditional Waterfall model, Time-Cost-Scope remains fixed and if project is behind schedule it makes quality go down.  Whereas in Agile Model, Time-Quality-Cost remains fixed and scope varies as per time-boxed iterations.



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 


The meanings of the manifesto items on the left within the agile software development context are described below:
  • Individuals and interactions: In agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.
  • Working software: Working software will be more useful and welcome than just presenting documents to clients in meetings.
  • Customer collaboration: Requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
  • Responding to change: Agile development is focused on quick responses to change and continuous development.


Agile Manifesto is based on 12 principles:
  • Customer satisfaction by rapid delivery of useful software
  • Welcome changing requirements, even late in development
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Sustainable development, able to maintain a constant pace
  • Close, daily co-operation between business people and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity- The art of maximizing the amount of work not done - is essential
  • Self-organizing teams
  • Regular adaptation to changing circumstances


Well-known Agile software development methods:
  • Agile Modeling
  • Agile Unified Process (AUP)
  • Crystal Clear
  • Crystal Methods
  • Dynamic Systems Development Method (DSDM)
  • Extreme Programming (XP)
  • Feature Driven Development (FDD)
  • GSD
  • Kanban (development)
  • Lean software development
  • Scrum
  • Velocity tracking

No comments:

Post a Comment