Agile Software Development
Agile software development is a particular type of software development characterized by the fact that it is run as unbureaucratically, simply and iteratively as possible. The advantages of this approach significant savings in time and cost compared to conventional programming methods.
Background
Agile software development as a term has only existed since the beginning of the 2000s. The first comparable aspects of this method existed in the early 1990s. With his book "Extreme Programming" from 1999, the computer scientist Kent Beck created a sort of theoretical basis for future agile processes. In 2001, the "Agile Manifesto" was formulated by a group led by Kent Beck, which contains the principles of agile software development:
"We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more."[1]
A glance at this manifesto shows that this form of software development differs radically from the standard. The focus of agile software development is on functionality and the user. Plans and contracts are not as important as cooperation and change.
The demand for agile software development started increasing shortly after the publication of the manifesto. In 2005, 14% of companies in Europe and North America surveyed by Forrester Research said they were already working with agile methods. 8 years later, a new study by VersionOne found that more than 80% of the companies surveyed relied on agile software development.
Components
The agile manifest comprises of 12 principles, preceded by methods: 1. Satisfied customers through early and continuous delivery of valuable software. 2. Agile processes and quick changes, even late in development, harness change for the customer's competitive advantage. 3. Deliver working software frequently and on a short timescale. 4. Business people and developers work together intensively throughout the project. 5. Creating a motivating environment for successful work. 6. As much face-to-face contact as possible 7. Working software is the primary measure of progress. 8. Sustainable development created through agile processes 9. Continuous attention to technical excellence and good design 10. Simplicity is essential. 11. Teams are self-organized. 12. At regular intervals, the team reflects on how to become more effective, and adjusts accordingly. [2]
In order to comply with the principles, agile methods are often used, which in turn aim to create as little administrative and bureaucratic effort as possible, which could have a negative impact on productivity. Typical agile methods are e. g:
- Test-driven development
- Story cards as part of the user story
- Pair programming
Agile processes accelerate software development. The most popular methods include:
- Crystal
- Extreme Programming
- Scrum
Advantages and disadvantages
There are many advantages of agile software development. Agile processes require less time and planning until the results can be achieved, and costs can therefore be saved. Moreover, agile software can be adjusted quickly in case of any changes. These changes could be market-specific changes, or general demands regarding the software. A detailed list of all tasks that should be carried out (Sprint backlog) can help to achieve targets. In spite of the advantages, an agile team of developers still have to keep to budgets or deadlines which provide the scope for the work. At the same time, the success of the projects does not depend simply on the method, but also on the team working together. Therefore, agile software development can be a sensible alternative to conventional methods of software development. However, agile software development cannot of course guarantee successful software.
References
- ↑ Agile Manifesto agilemanifesto.org. Accessed on 11/09/2017
- ↑ Agile manifesto principles agilemanifesto.org. Accessed on 11/09/2017]