In February 2001 the group that formed the Agile Alliance organization developed a manifesto for the purpose of inspiring teams to develop better software. It defines four core value statements that encourage focus on the concepts underlined below in blue. Diving deeper into the meaning of these more preferred values establishes a set of overarching principles for the various agile methodologies.
Individuals and Interactions over processes and tools – Technology projects and solutions are built and delivered by social activity. The majority of problems teams encounter are generally not as much from technological issues as they are rooted in sociological behavior. Teams need to work together effectively while fostering an environment of open communication, commitment, clear accountability, and shared responsibility. Communication becomes the medium through which a shared vision and goals can be established, measured, and achieved. How people interact is one of the most important factors for a successful team – if your team does not get this right then the value of tools and processes are of little use.
Working software over comprehensive documentation – This concept is about striving to provide documentation that provides real value contrasted with complex technical diagrams that may describe an abstraction of how a system is constructed or used. There are many processes that get carried away with creating comprehensive documentation which most often adds little value, gets duplicated, or is not utilized. Documentation serves the purpose of being a valuable guide for understanding how and why a system is built and how to interact with the system. The focus is on working software with supporting documentation.
Customer collaboration over contract negotiation – Contracts with customers are important in defining responsibilities and expectations but a contract should not be used as a substitute for communication. Initially, customers may not know exactly what they want and they may make sudden shifts from previously defined requirements. If you are frequently collaborating with your customers then small issues can be managed before they spiral out of control. Successful teams collaborate with their customers cultivating trust along the way.
Responding to change over following a plan– Planning is important but blindly sticking to a plan rather than adapting to change can make a plan irrelevant leading to a dysfunctional team. Change happens for a variety of reasons, including: resources, technology, budget, business needs, requirements, and costs. Success for a team does not have to depend on choosing stable equilibrium over explosive instability; it can emerge from a third condition of bounded instability.