It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. Iterative and incremental software development methods can be traced back to 1957. That is, while there is value in the items on the introduction to compiler construction parsons pdf, they value the items on the left more. It is better to have a good team of developers who communicate and collaborate well, rather than a team of experts each operating in isolation.
Communication is a fundamental concept. Working software is more useful and welcome than just presenting documents to clients in meetings. It is better to comment inline with the code and to keep external documentation light, rather than heavy documents that take a lot of effort and quickly become outdated. Requirements cannot be fully collected at the beginning of the software development cycle, so it is better to directly involve the paying customer and their end-users, or a proxy for them so that detailed requirements can be progressively elaborated and adapted based on feedback. Agile software development methods are focused on quick responses to change and continuous development.
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.