When the I.T industry adopted the processes from other industries, many thought leaders in the I.T industry felt that that was constraining the software development process rather than facilitating it. They felt the need to change, and drafted the Agile Manifesto and the 12 Agile Principles.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Of these, the most neglected or misinterpreted or forgotten to understand is the last sentence ‘That is, while there is value in the items on the right, we value the items on the left more’. Because of the lack of understanding of the depth of this sentence, many think that agile frameworks are adhoc and undisciplined ways of working.
While supporting individuals and interactions agile supports value adding processes and tools.
While considering working software as the true measure of progress, agile supports value adding documentation.
While giving emphasis on customer collaboration, agile focuses on win-win agile contract types so that negotiations are always with a win-win mindset.
Responding to change over following a plan. Changes are inevitable. If valid changes are not incorporated, the product can fail. So, changes must be evaluated not just by their impact on time, cost and scope, instead it must provide higher focus on the value to the product. The contract type should support it.
Agile is against everything non-value adding and at the same time supports everything adding value irrespective of whether it is change request, process or contractual term.
This is supported by the 12 Agile Principles
- Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
- Welcome changing requirements, even late in the development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Reference – Agile Manifesto