Tuesday, 5 April 2011

Agile Process


We are cognizant of SDLC (Software Development Life Cycle) process. It includes 5 stages i.e., Requirement Gathering, Design, Development, Testing and Implementation.
It is the routine development model also known as WATERFALL model. Apart from this conventional model there are other models like Prototype model, V-shaped model, Incremental model, Spiral model, etc.
Among these models, I am very much impressed with the Rapid Development Method, known as Agile Software Development and this is the right medium to share my knowledge about Agile.
What is Agile method
Agile software development is a group of software development methodologies based on Iterative and Incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
Why Agile
Suppose, there is a project, named “PQR” is using Waterfall model methodology. Every phase of the project “PQR” must be completed before the next phase can begin. Thus, developers first gather all of a project PQR’s requirements, then complete all of its architecture and design, then write all of the code, and so on. There is little, if any, communication between the specialized groups that complete each phase of work. It’s easy to see how this development agile methodology is far from optimized.
In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.
How agile method works
There are many specific Agile Development Methods. Most promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project.
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required.  An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations may be required to release a product or new features

Twelve principles underlie the Agile Manifesto
  •   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
  •   Self-organizing teams
  •   Regular adaptation to changing circumstances

Agile Methods
Some of the well-known agile software development methods are as follows:
·         Extreme Programming (XP)
·         Scrum
·         Agile Modeling
·         Adaptive Software Development (ASD)
·         Crystal Clear and Other Crystal Methodologies
·         Dynamic Systems Development Method (DSDM)
·         Feature Driven Development (FDD)
·         Lean software development
·         Agile Unified Process (AUP)


No comments:

Post a Comment