Uncovering the Agile Manifesto
Finding better ways of developing software
At the core of every philosophy is a manifesto — a declaration of values and principles that expresses its stance, views, and intentions. Agile development is no exception. If you work in the software industry, or are an avid reader of Zenkit’s content, you may have heard the term ‘Agile Manifesto’ being thrown about once or twice. Let’s dive into it a bit, shall we?
Formed in 2001, the Agile Manifesto was authored by 13 software development connoisseurs in a ski lodge in Utah. But before we continue with the manifesto, let’s do a refresher on the philosophy itself.
Agile methodology
Agile development was created as a response to the inadequacies of the Waterfall method. The pre-Agile era saw software development primarily led by the Waterfall method, which is a linear approach where progress flows largely in one direction, downwards (like a waterfall!). While a great method for projects that require a sequential design process, there were some in the industry who felt that the model could not keep up with the demands of software development. Because of its linear approach — with the final product not being revealed until the very final step — the Waterfall method left little room for flexibility when it came to progress reviews and changes. Developers saw the need for a speedier, and more efficient way to getting things done that could align with how quickly software could be altered. Enter Agile development.
Due to its customer-centric nature, Agile became a quick favourite with software development teams. Using frameworks such as Scrum, and systems like Kanban, it was the complete opposite of the Waterfall approach, where it focused on iterative development, welcomed changed, and believed that effective collaboration amongst the developers and customers would produce a higher quality product.
Creating the Agile Manifesto
Let’s go back to that ski lodge in Utah in 2001 where the ‘Manifesto for Agile Software Development’ was born. Many of the participants were already leaders in the software community who had already washed their hands of the Waterfall approach. Although the exact purpose of the meeting wasn’t necessarily to cement a new public declaration, all 13 individuals agreed that they wanted a process set in stone that legitimized what they were already practicing.
“When it was written down on that whiteboard, some people were out in the hallway on a break,” Ward Cunningham, cofounder of Cunningham and Cunningham Inc, and also famously known for originating the phrase ‘Agile Manifesto Wiki’, recalled.
“And I was out in the hallway, and [someone] said, ‘Come here, and look at this. Look at what we wrote.’ And we were just standing around looking at that whiteboard, in awe at how much that summarized what we held in common. It was such a dramatic moment, you know, that instead of everybody talking in small groups, we stood around that whiteboard and studied it.”
So, what exactly is the Agile Manifesto?
Made up of four foundational values and 12 key principles, the ‘Manifesto for Agile Software Development’ aims to uncover better ways of developing software by doing it, and helping others do it.
The four Agile Manifesto values are:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Accompanying the values is this sentence, “That is, while there is value in the items on the right, we value the items on the left more.” Which is basically saying that although processes and tools, comprehensive documentation, contract negotiation, and following a plan are imperative to a project’s success, in adhering to the values of the Agile Manifesto, we believe that individuals, working software, customer collaboration, and responding to change is what will give the product value and the desired result.
Derived from the Agile Manifesto values are the 12 key principles which serve as a guide for methodologies that follow the Agile approach. With the focus on customers and welcoming change instead of avoiding it — which is largely what the Waterfall method supposed — the Agile Manifesto principles are:
- Customer satisfaction through early and continuous software delivery
- Accommodate changing requirements throughout the development process
- Frequent delivery of working software
- Collaboration between the business stakeholders and developers throughout the project
- Support, trust, and motivate the people involved
- Enable face-to-face interactions
- Working software is the primary measure of progress
- Agile processes to support a consistent development pace
- Attention to technical detail and design enhances agility
- Simplicity
- Self-organizing teams encourage great architectures, requirements, and designs
- Regular reflections on how to become more effective
The basic goal of the Agile methodology is to deliver better software, and it does this by offering up a structure that aims to be clear and measurable by placing an emphasis on iterative development, team collaboration, and embracing change.
For any development team that is after an alternative solution of a faster process, it’s worth having a gander at the Agile Manifesto values and principles. Anyone who’s already done that, of course, we encourage you to share your findings with us in the comment section below :-)
Cheers,
Dinnie and the Zenkit Team