Agile Manifesto History
Agile Manifesto came up when the group of individuals were brainstorming over shortcomings of traditional development models.
There had been some evolution of lightweight development methods since 1990s in oder to overcome the limitations of traditional development methodologies.
In year 2001, a group of 17 individuals met to discuss lightweight development methods in order to overcome the limitations and issues with traditional software development models
This group agreed on common set of principles and values which later became “Agile Manifesto” for Agile Software Development.
The Agile Manifesto contains following four statements of values:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
As per Agile Manifesto, the concepts to the right have value, however the concepts to the left have greater value.
Let us understand the Agile Manifesto concepts in detail.
Individuals and Interactions over processes and tools
As per Agile Manifesto, it is argued that there are benefits of following the processes and tools, however, the core to any Agile Development is the team and communication within the team.
If there is heavy reliance on the processes and tools rather than the interaction and collaboartion within team members, it hampers the effectiveness and overall progress of project.
Agile Software Development teams can work more effectively through continuous collaboration rather than heavily relying on tools and processes to get the work done.
To summarise, Agile Development focuses more on following points:
- Agile development is very people-centered.
- People are the key to any development project as they build the software.
- Contnuous communication and interaction within the team is key to get most value out of the whole team
- More importance should be given to team collaboration
- Least reliance on the process and tools makes the team more effective in getting blockers resolved and get things moving
Working Software over comprehensive documentation
From the end user or customers perspective, a working software is much more useful and valuable than excessive detailed documentation.
A working software gives a very good feel to the customer of how things will look like after being developed and it provides opportunity to customer to give early feedback to development team.
Some of the benefits and advantages of working software as compared to every detailed documentation are:
- Working prototype is much easy to understand for customer and provide feedback.
- As working software is available very early in development cycle, so it gives opportunity to customer to provide easy feedback.
- Agile software development can confer notable time-to-market advantage, as working software, albeit with reduced functionality, is available much earlier in the development lifecycle.
- Due to early software demonstration to customer, there is a huge scope to innovate and improve the solution if required, during the software development lifecycle with minimal cost impacts.
Customer collaboration over contract negotiation
Traditional development methodologies like Waterfall and V-Model didn’t gave flexibility for early customer feedback due to their sequential approach.
In traditional development methodologies the requirements were gathered first and then the contracts were formed based on those requirements.
Any changes required later were managed by change requests and negotiated over contracts again.
It is very difficult for customers to specify the requirements all at once before the development starts.
To overcome all the above challenges the Customer collaboration is more valuable than negotiating over contracts with customer.
- Collaborating directly with customers during the whole development cycle helps to understand requirements correctly
- Customers find it very difficult to specify all requirements at once
- Frequent collaboration with customers is likely to bring more success to the project
Responding to change over following a plan
Following a plan is important to any project, however, having flexibility in work practices in order to embrace change in projects is more important than strictly following the plan.
Change is unavoidable in software projects due to the environment in which business operates, legislation, technology changes and many other factors.
All these factors should be accommodated in the software development methodologies, so the team is ready to respond to changes if required.
The advantages of fourth value of Agile manifesto is as follows:
- Agile software development embraces changes throughout the development cycle due to early feedback and continuous customer collaboration
- Agile development does follow plan, however it is flexible enough to accomodate changes if required
- Due to continuous delivery in agile projects, the development team is able to respond to the changes quickly