17 methodologists defined a manifesto that encouraged better and more reliable ways to develop software. Based on this manifesto, a collection of values that define the criteria to be employed in agile software development processes was formulated. The four values defined in the manifesto formed the foundation of the agile movement. They define preferences rather than alternatives and encourage a focus on particular areas without eliminating others. The following are the values of the Agile Manifesto:
1. Individuals and Interactions Rather Than Processes and Tools
Software systems are created by teams of people and in order to make a project successful, effective participation is mandatory for each team member. This includes, but is not limited to, the customers, modellers, project managers, testers and programmers. This value places more emphasis on people and how they are able to work together. If this is not a primary factor of consideration, even the best tools and processes will not be of any use. As much as tools and processes are important, they can’t yield the same results as working together effectively.
2. Working Software Rather Than Comprehensive Documentation
It makes more sense to work in a manner through which you are able to produce software much faster and are able to meet the needs of users. Users will most definitely have an easier time understanding the software you come up with than the complex diagrams that describe its internal functionality or abstractions of its usage. Documentation is an invaluable guide that helps people understand the reasons behind the creation of software and its functionality. Nevertheless, the primary goal of software development is creating software and not documents.
3. Customer Collaboration Rather Than Contract Negotiation
Only your customers can tell you what they need. They may not be equipped with the skills that can exactly specify the system and most likely, they won’t get it right the first time. It’s often hard to work together with your customer but it tends to build the foundation for better relations. Yes, you need to have a contract with your customer but of greater importance is to understand that everyone has their rights and responsibilities. This helps to formulate a contract, although the contract is not meant to be a substitute for effective communication. Working closely with customers is essential for every developer; you need to invest as much effort as possible to discover the needs of your customers and educate them along the way.
4. Responding to Change Rather Than Following a Plan
Everyone is bound to change their priorities. This happens for several reasons. As the work progresses on systems, the understanding of project stakeholders on the problems being faced and the software being developed changes. This is also the case with the business environment and technology, but not always for the better. Change is inevitable and applies to software development of the same magnitude. This should be reflected in the process. It is also important to understand that there’s actually nothing wrong with using a project plan. As a matter of fact, every project needs one. However, this project plan should be malleable and allow room for change since situations change that might render the plan irrelevant.
These value statements were created to ensure better practices in the field of agile software development without isolating any member of the team. In each one of them, there’s something almost everyone instantly agrees to and all participants admitted that the creation of software is the primary goal of software development.
Did you like this piece? If so, subscribe to our blog, the OPIN Mind for your free weekly updates!