The term agile software development, otherwise known as the agile method, refers to a combination of methodologies used in software development. This approach first started to become popular in the early 2000’s, modelling itself on the principles of the so-called ‘Manifesto for agile software development’, which bears the signatures of world renowned IT experts such as Kent Beck, Robert C. Martin and Martin Fowler (the main authors).
In contrast to the waterfall method, the agile method is distinctive in that it places the needs of clients first and foremost, without however neglecting those of the professional in charge of the project. All this is based on a method which is predominantly empirical rather than predictive.
The significant advantages of this method stem from the high quality of communication and the clarity it offers, thereby guaranteeing client satisfaction on the one hand and greater freedom for the developer in managing workloads.
In addition, the professionals aim to reduce the risk of failure by concentrating software development within limited time windows, known as iterations. These usually last a few weeks.
Each iteration is treated as a project in itself. It is essential that it should contain everything necessary to contribute an improvement, even if minimal, to the functionality of the software. According to the principles of the agile method, when the results of the various iterations are combined, they must provide an output which meets the client’s needs as closely as possible.
A direct consequence of the methodology is, first of all, the low percentage of modification requests. This objective can be reached thanks to three fundamental factors: collaboration, openness to change and functionality. In light of these features, the agile method is becoming ever more popular and has found favour with numerous IT companies and other firms.
The popularity gained by the agile method in the last few years has allowed developers to create some important working tools. Among these is a wide range of software designed for the creation of Agile frameworks, via which it is possible to establish direct and continuous communication with clients.
If we consider mainly managerial tasks, one of the main development tools is the Kanban board, which is very easy to use and incisive for monitoring all developmental phases as well as for optimising workloads when necessary. Thanks to these tools, the method can be applied to any project, regardless of its complexity.
Activities to which it can be applied
The activities to which the agile method can be applied are many. This choice depends on the company’s needs and the working style of the project manager. One useful example to illustrate this could be Extreme Programming, an approach in which advance planning is replaced by ongoing close collaboration with the client. In any case, these activities are fairly similar and can be classified into categories, as listed below:
- Client involvement (to various degrees);
- Close communication;
- Frequent deliveries;
- Facilitated workshops;
- Formation of a team and properties of the code;
- Iterative development;
- Transferring ownership;
- Improved knowledge;
- Use of models;
- Pair programming;
- Design and documentation.
This list of activities is not exhaustive. We can also include refactoring (a procedure involving the restructuring of parts of the code without changing its external appearance or behaviour) and retro-engineering (an approach which automatically allows all documentation to be obtained, starting from the code already produced). Other activities and features of the agile method include simplification, the test, Test Driven Development, Time-boxing and version control.
Translated by Joanne Beckwith