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

Agile Development

What is Agile?

Agile software development is an umberella term, a way of thinking and a philosophy. In practice,
Agile Methods refer to Agile processes such as Scrum, XP,Crystal and FDD, as well as XP practices
such as TDD and Continuous Integration.

When applying Agile Methods, implementation takes place in short, one-to-four week iterations
resulting in completed, working and tested functionality. The results are presented after each iteration
so that the future users of the software can provide feedback based on working software instead of
paper specifications.

The most important features of Agile Methods:

The business-critical features are completed first.

Functioning software is a key measure of progress. The first results are already visible at the earliest
stages, unlike in traditional software development.

The client takes an active part in the development process which ensures a successful end-result.

The work methods are always adapted to the working environment.

Scrum Glossary:

Sprint: 1-to-4-week iterations ending in the presentation of the implemented features.

Daily Scrum: A daily 5–15 minute Scrum meeting that lets the team get an overview of the situation.
Retrospective: A meeting held after a sprint in which the team analyses and develops its own
operations in order to make the process as effective and efficient as possible.

Product owner: The person who manages the project, and who makes sure that the teams
implement the features most important for the business.

Scrum Master: The person who promotes the efficient progress of the project by ensuring, for
instance, that the process and practices are complied with and developed.

Product backlog: The prioritized list of functionalities in a product, including estimates of the amount
of work they require. The list is continuously updated and specified as the project proceeds. The
product backlog makes it easy to monitor the progress and control the scope of the project.

Sprint backlog: Describes in more detail the tasks to be completed during a sprint.

Scrum is an iterative and incremental software development method in which, after each iteration, a
production-ready increment of the product is produced. The method is successfully applied in both
large and small projects and has been used in organizations such as Google and Microsoft.

When using Scrum, it is relatively easy to monitor the progress of the software project across various
dimensions (costs, schedules, quality, scope). With correct information, it is possible to make
decisions concerning the entire project, by continuously developing the operations and removing
obstacles that slow down the project. It enables controlled, rapid reactions to new requirements and
changes in the operational environment.

Disciplined Work
In Scrum, the development work takes place in one-to-four week iterations (or sprints). The software
features that are most important from the point of view of the business are implemented first. The
teams produce a complete, functioning entity after each sprint to present to the project's interest
groups.

The team members compile a list or sprint backlog of the tasks required for implementing various
features and share them among each other. The team is jointly responsible for ensuring all the
selected features are ready (implemented, integrated, tested and documented) by the end of the
sprint.

In daily meetings each team member describes what he or she has done and what he or she is going
to do, and evaluates how much time it will take to implement the rest of the required functions. The
meetings help in disseminating information and knowledge which lets the team identify and respond
to problems immediately.

The team often publishes a graph displaying how the amount of work is decreasing. The graph shows
if the project is progressing faster or slower than expected and allows team members to work
accordingly.

The project is managed by the product owner who gathers and specifies requirements concerning the
delivery of the project, and schedules the implementation of the various functions in co-operation with
the teams.

The product owner prioritizes the suggested functionalities while the teams assess the time required
to implement them. The estimated volume of work is repeatedly updated as the project proceeds.
The teams and product owner are supported by the Scrum Master, whose role is to promote the
progress of the project as efficiently as possible. The Scrum Master helps the teams to spot and solve
problems and remove obstacles that hinder the work.

The most mature and widely-used process for agile work is called Scrum. It is a lightweight
management wrapper that supports empirical process control. While not limited to agile methods or to
software development projects, Scrum is the most natural fit for agile software development projects.
The general Scrum cycle is shown in the illustration below

At the more detailed level of development methodology, the most widely-used for agile projects is
called extreme Programming, or XP. It complements Scrum nicely, and defines a set of specific
development practices to maximize the effectiveness of agile teams. One of its core practices,
pairing, calls for all work to be done by two people working together rather than by individuals working
separately. This improves productivity in a number of ways and also facilitates cross-disciplinary
collaboration in the closest possible way. Other practices tighten the level of collaboration in various
ways — test-driven development blurs the role distinctions of analysts, developers, and testers; daily
customer participation blurs the role distinctions of analysts and developers; refactoring and design
discovery blur the role distinctions of technical disciplines on the team, and so forth.

Вам также может понравиться