The Agile Manifesto
December 7, 2009
“The Agile Manifesto provides a philosophical foundation for effective software development.”(1) This philosophy is detailed using four core values which are further supported by a set of twelve principles. Based on real world success, The Agile Manifesto was developed “On February 11-13, 2001, at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah, seventeen people met to talk, ski, relax, and try to find common ground and of course, to eat. What emerged was the Agile Software Development Manifesto. Representatives from Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, and others sympathetic to the need for an alternative to documentation driven, heavyweight software development processes convened.”(2)
“The important thing to understand about the four value statements is that while you should value the concepts on the right hand side you should value the things on the left hand side (presented in red) even more. A good way to think about the manifesto is that it defines preferences, not alternatives, encouraging a focus on certain areas but not eliminating others.”(1) The Agile Manifesto’s four core values are as follows:
1. Individuals and interactions over processes and tools. People build software and should work in collaboration with one another to achieve peak effectiveness. Software tools and processes are kept secondary to support this collaboration (1).
2. Working software over comprehensive documentation. Teams should produce working software, not well documented failing software. Documentation is important but we should prioritize working software first (1).
3. Customer collaboration over contract negotiation. Contracts are necessary to outline roles and responsibilities but should not dissuade customer collaboration. Customer interaction will help assure purpose driven software (1).
4. Responding to change over following a plan. Rigid project plans are often important to drive milestones and outline success criteria but “the growing unpredictability of the future is one of the most challenging aspects of the new economy” (4). An inability or unwillingness to adapt to changing requirements will jeopardize a project’s success (1).
“Unfortunately there is no official criteria for determining whether or not a team is Agile, and worse yet there are many “code & fix” teams claiming to be agile.”(3) Applying these values is an important first step in true Agile Project Management.
To further support the four core values, the seventeen creators of the Agile Manifesto creators constructed twelve Principles as follows (5):
1. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”(2)
2. “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”(2)
3. “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.”(2)
4. “Business people and developers work together daily throughout the project.
5. “Build projects around motivated individuals, give them the environment and support they need and trust them to get the job done.”(2)
6. “The most efficient and effective method of conveying information with and within a development team is face-to-face conversation.”(2)
7. “Working software is the primary measure of progress.”(2)
8. “Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.”(2)
9. “Continuous attention to technical excellence and good design enhances agility.”(2)
10. “Simplicity—the art of maximizing the amount of work not done—is essential.”(2)
11. “The best architectures, requirements and designs emerge from self-organizing teams.”(2)
12. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”(2)
A deep understanding of these values and principles will serve our professional careers as we wade through adverse opinions and face various software development hurdles. What if your boss demands documentation to the point that software development becomes second priority? Value 2 and principles 1 and 7 teach us that customers want working software over documentation and can be used to persuade your boss to think properly about what customers really want and need. What if your boss is using the contract as a means to limit customer interaction? Explaining value 4 and principles 1, 2, 4, and 8 will help you plead your case by demonstrating how important customer interaction is to the projects success and to meeting the exact customer needs. One thing is certain, working knowledge of The Agile Manifesto will help our persuasiveness, better enable us to meet project timelines, and better satisfy customer requirements.
Every Project Manager’s goal is to deliver packages with real customer value, on time, and within budget. The Agile Manifesto helps us achieve our goals by providing a philosophical framework to base our decisions from. Let’s face it, our decisions “make or break” software development projects. Therefore, it is essential to understand and have a working knowledge of the values and principles outlined by the manifesto. Applying these values and principles to your software development projects will increase persuasion skills. You are likely to interact with many stakeholders that do not understand the Agile approach. It is your duty as a Project Manager to convince stakeholders that the best steps are being taken to achieve project goals. Failure to convince stakeholders can put your efforts in jeopardy and you may soon find that your projects are off track and doomed for failure. The Agile Manifesto plays a key role in successful software project management. It should be understood in detail and practiced throughout our professional careers to increase our likelihood of project success.
By: Brett
References:
(1) http://www.ambysoft.com/essays/agileManifesto.html
(2) www.agilemanifesto.org
(3) http://www.agilemodeling.com/essays/agileCriteria.htm
(4) http://www.ddj.com/architect/184414755
(5) Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, and Martin Fowler