What is the agile software development process

Agile software development

Agile software development is a special type of software development that is characterized by the fact that it is as unbureaucratic, simple and iterative as possible. The advantages of this approach are enormous cost and time savings compared to conventional programming methods.

Background [edit]

Agile software development as a term has only existed since the early 2000s. The first comparable individual aspects of this method can already be found in the early 1990s. With his work "Extreme Programming" from 1999, a team led by computer scientist Kent Beck created a kind of theoretical basis for future agile processes. In 2001 the "Agile Manifesto" of a research group led by Kent Beck was finally formulated, which contains the principles of agile software development:

"Manifesto for Agile Software Development
We're opening up better ways to develop software
by doing it ourselves and helping others.
Through this activity we have come to appreciate these values:
Individuals and interactions more than processes and tools
Functioning software more than comprehensive documentation
Working with the customer is more than just negotiating a contract
Responding to change more than following a plan
That is, although we think the values ​​on the right are important,
we estimate the values ​​on the left to be higher. " [1]

Just a look at this manifesto shows that this form of software development differs radically from the standard. In agile software development, the focus is on functionality and the user. Plans and contracts are subordinated to cooperation and change.

Shortly after the manifesto was published, the demand for agile software development began to rise. In 2005, 14 percent of the companies surveyed on behalf of Forrester Research in Europe and North America said they were already working with agile methods. Eight years later, another VersionOne study found that more than 80 percent of the companies surveyed rely on methods of agile software development.[2]

Components [edit]

The agile manifesto comprises 12 principles, which are preceded by methods:

1. Satisfied customers through rapid software development and delivery
2. The customer achieves a competitive advantage through rapid changes in agile processes
3. Working software is delivered in short periods of time
4. Intensive collaboration between coders and experts during the project phases
5. Creating a motivating environment for successful work
6. If possible, only face-to-face communication in the case of agreements
7. The measure of progress is the progress in the performance and function of the software
8. Sustainable development is created through a steady work rhythm
9. The permanent focus is on perfect design and perfect technology
10. The principle of simplicity always applies
11. Teams work in a self-organized manner
12. Teams reflect on their own work to increase efficiency

In order to obey the principles, agile methods are used, which in turn aim to create as little administrative and bureaucratic effort as possible that could negatively affect productivity. Typical agile methods are e.g .:

  • the test-driven development
  • Story cards as part of the user story
  • Pair programming

Agile processes accelerate work in the context of software development. The most popular include:

  • Crystal
  • Extreme programming
  • Scrum

Advantages and disadvantages [edit]

The advantages of agile software development are quick to mention. On the one hand, agile processes require less time and planning margins until a result is available and, on the other hand, costs can be saved. In addition, agile software can be quickly adapted if changes arise. These can be market-specific changes as well as general requirements for the software. A detailed list of all tasks to be carried out (sprint backlog) helps to achieve the goals. Despite all the advantages, agile development teams are always subject to general guidelines such as budgets or deadlines, which ultimately set the framework for the work. At the same time, the success of a project never depends on the method alone, but also on teamwork. Accordingly, agile software development can be a sensible variant of conventional software development methods. However, it is not a one-size-fits-all solution for successful software.

References Edit]

  1. ↑ Agile Manifesto agilemanifesto.org Retrieved on February 26, 2017
  2. ↑ 7th annual state of agile development survey versionone.com Retrieved on May 6, 2014

Web links [edit]