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 divulge into it a bit, shall we?
Formed in 2001 by a group of industry practitioners as a result of industry frustration in the 1990s, the Agile Manifesto is all about business values and culture. Authored by 17 software development connoisseurs in a ski lodge in Utah, the main principles and values were put to pen and paper into a concise list consisting of mere 68 words that went on to change software development forever.
Nearly two decades since, these words (along with the 12 agile principles) have been adopted and adapted (in varying scope) by countless individuals, teams, and companies. Since then, the Agile Manifesto itself has hardly changed; because of agile, the way we work, modern business, and the world itself, has been changed forever. Before we continue with uncovering the manifesto, let’s do a refresher on the philosophy itself.
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 laststep—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 of 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 changes, 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 17 individuals agreed that they wanted a process set in stone that legitimized what they were already practising.
What was the initial problem that led to the Agile Manifesto? The participants were in agreement that companies were so focused on excessive planning and documentation of their software development cycles, that they prioritized this over pleasing their customers.
Agile Methodologists, president and founder of Object Mentor Inc., Bob Martin, said, believe in “delivering good products to customers by operating in an environment that does more than talk about “people as our most important asset” but actually “acts” as if people were the most important, and lose the word “asset””.
“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 is imperative to a project’s success, 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
- Self-organizing teams encourage great architectures, requirements, and designs
- Regular reflections on how to become more effective
Why the term Agile?
Before the Agile Manifesto was written, the term ‘agile’ wasn’t trending. During 2000s, the term ‘light’ or ‘lightweight’ processes was used in discussions as a reference to customized approaches.
“We considered a bunch of names, and agreed eventually on “agile” as we felt that captured the adaptiveness and response to change which we felt was so important to our approach,” Chief Scientist for Thoughtworks, Martin Fowler, said.
Agile is characterized as flexible/adaptive and responsive to change. What separates Agile from other software development approaches is the focus: Agile is a mindset that, when adopted, shifts an individual’s thought process and perspective on what’s going on in the immediate environment. It’s really about thinking through and identifying “definites”, irrelevancies and uncertainties, and figuring out how to adapt to changes along the way.
Image Credits: Joris Berthelot via Unsplash
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 🙂
Dinnie and the Zenkit Team