The Agile Software Development it is a particular type of software development characterized by the fact that it is executed in the least bureaucratic, simple and iterative way possible. The advantages of this approach are a significant time and cost savings compared to conventional programming methods.
Background
Agile software development as a term has only been around since the early 2000s. The first comparable aspects of this method existed in the early 1990s. With his 1999 book "Extreme Programming," computer scientist Kent Beck created a kind of theoretical foundation 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 discovering better ways to develop
software, doing it and helping others to do it.
Through this work we have come to value:
Individuals and interactions on processes and tools
Working software on complete documentation
Customer collaboration on contract negotiation
Responding to change instead of following a plan
That is, although there is value in the positions of
on the right, we value the posts on the left more ».[1]
A look at this manifesto shows that this dynamic 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 began to increase shortly after the publication of the manifesto. In 2005, 14% of the European and North American companies surveyed by Forrester Research said they were already working with agile methods. 8 years later, a new VersionOne study found that more than 80% of the companies surveyed trusted agile software development.
Components
The agile manifest consists of 12 principles, preceded by methods:
1. Satisfied customers through early and continuous delivery of valuable software.
2. Agile processes and rapid change, even in the later stages of development, leverage change for the customer's competitive advantage.
3. Deliver job software many times and in a short time.
4. Entrepreneurs and developers work closely together throughout the project.
5. Create a motivating environment for successful work.
6. As much face-to-face contact as possible.
7. Job software is the main measure of progress.
8. Sustainable development created through agile processes.
9. Continuous attention to technical excellence and good design.
10. Simplicity is important.
11. Teams self-organize.
12. At regular intervals, the team reflects on how to be more effective and adjusts accordingly. [2]
To comply with the principles, agile methods are often used, which in turn have the objective create as little administrative and bureaucratic effort as possible, which could have a negative impact on productivity. Typical agile methods are, for example
- Test-driven development.
- Story cards as part of the user's 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 rrequire less time and planning until the results can be achieved, and thus costs can be saved. At the same time, the agile software can be quickly adjusted in case of any changes. These changes can be specific market changes, or general demands regarding the software. A detailed list of all the tasks that need to be accomplished (Sprint delay) can help you reach your goals. Despite the benefits, an agile team of developers still has to meet the budgets or deadlines that provide the scope of work. At the same time, the success of the projects does not depend only on the method, but also on teamwork. Therefore, agile software development can be a sensible alternative to conventional software development methods. Regardless, agile software development cannot, of course, guarantee software success.
Web Links