Вы находитесь на странице: 1из 13

Agile software development

is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing,crossfunctional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight iterations throughout the development cycle. So-called lightweight agile software development methods evolved in the mid- !!"s as a reaction against the heavyweight waterfalloriented methods, which were characterized by their critics as being heavily regulated, regimented, micromanaged and overly incremental approaches to development.

In February 2001, 17 software developers met at the Snowbird, Utah resort, to dis uss lightweight development methods! "hey published the Manifesto for Agile Software Development to define the approa h now #nown as agile software development! Some of the manifesto$s authors formed the Agile Allian e, a non%profit organi&ation that promotes software development a ording to the manifesto$s values and prin iples! Individuals and intera tions over 'ro esses and tools (or#ing software over )omprehensive do umentation )ustomer ollaboration over )ontra t negotiation *esponding to hange over Following a plan That is, while there is value in the items on the right, we value the items on the left more

#he meanings of the manifesto items on the left within the agile software development context are$ Individuals and interactions % in agile development, selforganization and motivation are important, as are interactions like &&co-location and &&pair programming. 'orking software % working software will be more useful and welcome than (ust presenting documents to clients in meetings. )ustomer collaboration % requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. *esponding to change % agile development is focused on quick responses to change and continuous development.

The Agile Manifesto is based on twelve principles: . )ustomer satisfaction by rapid delivery of useful software +. 'elcome changing requirements, even late in development ,. 'orking software is delivered frequently -weeks rather than months. /. 'orking software is the principal measure of progress 0. Sustainable development, able to maintain a constant pace 1. )lose, daily cooperation between business people and developers 2. 3ace-to-face conversation is the best form of communication -colocation. 4. 5ro(ects are built around motivated individuals, who should be trusted !. )ontinuous attention to technical excellence and good design ".Simplicity6the art of maximizing the amount of work not done6is essential .Self-organizing teams +.*egular adaptation to changing circumstances

7xtreme 5rogramming
-+'. is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. 8s a type of agile software development,it advocates frequent 9releases9 in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

7xtreme 5rogramming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.

In 7xtreme 5rogramming, every contributor to the pro(ect is an integral part of the :'hole #eam:. #he team forms around a business representative called :the )ustomer;, who sits with the team and works with them daily. 7xtreme 5rogramming teams use a simple form of planning and tracking to decide what should be done next and to predict when the pro(ect will be done. 3ocused on business value, the team produces the software in a series of small fully-integrated releases that pass all the tests the )ustomer has defined.

7xtreme 5rogrammers work together in pairs and as a group, with simple design and obsessively tested code, improving the design continually to keep it always (ust right for the current needs. #he 7xtreme 5rogramming team keeps the system integrated and running all the time. #he programmers write all production code in pairs, and all work together all the time. #hey code in a consistent style so that everyone can understand and improve all the code as needed.

#he 7xtreme 5rogramming team shares a common and simple picture of what the system looks like. 7veryone works at a pace that can be sustained indefinitely. <5 teams build software to a simple design. #hey start simple, and through programmer testing and design improvement, they keep it that way. 8n <5 team keeps the design exactly suited for the current functionality of the system. #here is no wasted motion, and the software is always ready for what=s next.

*ules of <5

5lanning >anaging ?esigning )oding #esting

8daptive Software ?evelopment


-AS,. is a software development process that grew out of rapid application development work by @im Aighsmith and Sam Bayer. It embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs. 8daptive Software ?evelopment replaces the traditional waterfall cycle with a repeating series of speculate, collaborate, and learn cycles. #his dynamic cycle provides for continuous learning and adaptation to the emergent state of the pro(ect. #he characteristics of an 8S? life cycle are that it is mission focused, feature based, iterative, timeboxed, risk driven, and change tolerant.

The word speculate refers to the paradox of planning it is more likely to assume that all stakeholders are comparably wrong for certain aspects of the projects mission, while trying to define it.

Collaboration refers to the efforts for balancing the work based on predictable parts of the environment planning and guiding them! and adapting to the uncertain surrounding mix of changes caused by various factors technology, re"uirements, stakeholders, software vendors, etc.
The learning cycles, challenging all stakeholders, are based on the short iterations with design, build and testing. #uring these iterations the knowledge is gathered by making small mistakes based on false assumptions and correcting those mistakes, thus leading to greater experience and eventually mastery in the problem domain.