Once, more precisely in 2001, the nimblest minds in the IT industry decided to finally abandon the traditional linear software development process and released Agile Manifesto, in which they declared new principles of work that are still considered more efficient, especially in innovative projects and startups.
Faster than Waterfall
Agile approach is easier to understand in comparison with the traditional Waterfall method. In the latter, the process of creating software is linear, it sequentially goes through following stages: study and documentation of customer requirements, design, construction, code creation, testing, installation and support. The team moves to each new phase only after successfully passing the previous one and never goes back. That means, for example, that the customer cannot change the requirements after they are documented.
In Agile, the whole process is broken down into a series of short phases called iterations. Each iteration is considered as a separate mini-project passing through the phases listed above. At the end of each iteration, the team presents to the customer “tangible” work results, for example, some part of app’s functionality. Thus, the customer controls the development process and can influence it, adjusting his requirements.
Advantages of the approach
It is believed that such a model minimizes risks, it allows you to detect errors in the early stages and correct them without large financial and time losses. In addition, constant monitoring and feedback from the customer ensures that the development is going in the right direction and the result will definitely meet his expectations.
Another feature of the approach, live communication priority over documentation, also somewhat speeds up communication. But this feature can be both a plus and a minus. Lack of documentation complicates reporting. Therefore, this approach is more often used by small companies and less often by large ones.
Examples of Agile methods
The Agile approach includes many methods that follow the principles described above, but they have their own features.
When using this method, first, a list of all the requirements for the product is created, and their priority is determined. This list can be changed throughout the project. The development process is divided into iterations, which are called sprints here. The peculiarity of the method is daily meetings, on which the team discuss what was done well and what can be improved.
Created by Toyota, this method now is one of the most popular in software development. The team organizes the work using a virtual board, which is divided into stages of the project. Each participant sees what tasks are at one stage or another. Unlike SCRUM, in Kanban, you can immediately take on urgent tasks without waiting for the next sprint. To start As with other Agile methods, testing of frequent small improvements is encouraged here.
Extreme Programming is designed to make the development process as fast as possible. Some traditional processes are raised to a higher “extreme” level. For example, pair programming is practiced here, when one programmer is writing code, and his partner is constantly checking it. The workflow is extremely informal and requires a high level of self-discipline of each team member.
The method is based on the concept of Rapid Application Development. This approach focuses on active participation of users in development process. The aim of DSDM is to deliver the ready-to-use product on time and meet the budget, but at the same time it allows you to constantly make the necessary changes at each stage of software development. The last version of DSDM is called DSDM Atern.
Summing up, Agile methods allow you to constantly and quickly make changes to the product and test them to achieve the best result. To determine which method suits you the most, it is worth consulting with specialists in software development.