It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. Some empirical studies lisa crispin agile testing pdf agile software development found no scientific evidence that adopting practices or values associated with agile software development affects the agility of software professionals, teams or organizations. That is, while there is value in the items on the right, they value the items on the left more. Tools and processes are important, but it is more important to have competent people working together effectively.
Good documentation is useful in helping people to understand how the software is built and how to use it, but the main point of development is to create software, not documentation. A contract is important but is no substitute for working closely with customers to discover what they need. A project plan is important, but it must not be too rigid to accommodate changes in technology or the environment, stakeholders’ priorities, and people’s understanding of the problem and its solution. Some of the authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto’s values and principles. The Agile movement is not anti-methodology, in fact many of us want to restore credibility to the word methodology. We want to restore a balance.
We embrace modeling, but not in order to file some diagram in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan, but recognize the limits of planning in a turbulent environment. Those who would brand proponents of XP or SCRUM or any of the other Agile Methodologies as “hackers” are ignorant of both the methodologies and the original definition of the term hacker.
Note information radiators in the background. Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly. Multiple iterations might be required to release a product or new features. Working software is the primary measure of progress. This person is agreed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer questions throughout the iteration.
It presents an up-to-date summary of the product development status. In a brief session, team members report to each other what they did the previous day toward their team’s iteration goal, what they intend to do today toward the goal, and any roadblocks or impediments they can see to the goal. The idea is that the quality is built into the software. Compared to traditional software engineering, agile software development mainly targets complex systems and product development with dynamic, non-deterministic and non-linear characteristics. Accurate estimates, stable plans, and predictions are often hard to get in early stages, and confidence in them is likely to be low. Agile practitioners will seek to reduce the “leap-of-faith” that is needed before any evidence of value can be obtained. Requirements and design are held to be emergent.