The Agile Manifesto recommends the following four core values for an Agile approach to software development. Each of the agile methodologies(like Scrum, XP, FDD, etc.) have their own way of implementing these four values but all of them rely on these for development and delivery of high quality working software.
1. Individuals and Interactions Over Processes and Tools
Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process. If teams align, they can drive the process more effectively while responding faster to the business and functional requirements. When tools and processes dominate the activity, the team members can become less receptive to the needs of the client and eventually, the customers. So, It is always recommended to encourage communication among teams instead of depending on procedures to manage the way forward.
2. Working Software Over Comprehensive Documentation
Traditionally, software development involved coming up with numerous documents as part of the delivery. Technical specifications, technical requirements, technical prospectus, interface design documents, test plans, documentation plans, and approvals were required for each. The list was so extensive that it was a cause for the long delays in development. The agile approach doesn’t wholly defy documentation but offers a developer a working software to get started.
Agile streamlines documentation, and offers developers what they need to maintain their work without getting stalled in technicalities. Agile documents requirements as user stories, which are sufficient for a software developer to begin the task of building a new function. The Agile Manifesto values documentation, but it values working software more.
3. Customer Collaboration Over Contract Negotiation
Contract negotiations usually happen when the customer and the product manager work on the details of the product towards the start of the process with little scope for changes along the way. With development models such as Waterfall, customers negotiate the requirements for the product, often in great detail, prior to any work starting. This meant the customer was involved in the process of development, before development began and after it was completed, but not during the process. This has not worked well. Agile Manifesto favors customer collaboration which refers to the process of the customer teaming up all through the development procedure.
Agile allows an open-end discussion between the customer and the developers. It enables the coordinated teams to align better with the customer requirements.
4. Responding to Change Over Following a Plan
The usual approach to the software development process is to avoid any changes since they may incur costs and lead to higher expenses. However, with Agile due to multiple iterations, the tasks keep changing, and with every sprint, these inputs help the project get better and create value.
With Agile, the shortness of an iteration means priorities can be shifted from iteration to iteration and new features can be added into the next iteration. Agile’s view is that changes always improve a project; changes provide additional value.