In the field of software development a large number of methodologies and approaches have been introduced and implemented over the past 25 years.
The new methodologies have evoked a large number of discussions, studies and analyses in order to identify their approach, scope and manner of application for the different development teams.
In this article we will take an overview to Agile Software Development. For this to happen it is important to take a look at where Agile software development came from to get a full understanding of where things are at today.
Let’s stand in the year 2001, when a group of 17 developers decided to set and clarify the approach of this methodology during a meeting at a ski resort in Snowbird, Utah. This gathering let the establishment of the values and principles expressed in the Manifesto for Agile Software Development. Agile methodology bases its whole idea in a set of frameworks and practices based on the values and principles expressed in this Manifesto.
Now that we know what Agile’s Methodology basis are, let’s give the main meaning of this practice. The word “Agile” was implemented as the main characteristic for the whole methodology’s idea because it means the ability to create and respond to change, representing the adaptiveness in an uncertain and turbulent environment.
One of the most important things that differentiates Agile from other approaches to software development is the focus on the people doing the work and how they work together.
The basic principles of agile method comprises an unforgiving honesty of working code, effectiveness of people working together with goodwill, and focus on teamwork. A set of commonsense approaches emerging from agile software development processes have been suggested by Ambler (2002) as follows:
- people matter
- less documentation is possible
- communication is a critical issue
- modeling tools are not as useful as usually thought
Although this approaches are a good characteristic of the Agile Software Methodology, it is important to clarify another technical aspects that need to be taken into account when a company practices this methodology.
The Agile Alliance tells us that: “When most teams and organizations start doing Agile software development, they focus on the practices that help with collaboration and organizing the work, which is great. However, another key set of practices that are not as frequently followed but should be are specific technical practices that directly deal with developing software in a way that help your team deal with uncertainty. Those technical practices are essential and something you shouldn’t overlook.”
Agile Software Development processes determine the good or bad practices of the whole methodology. Miller (2001) gives the following characteristics to agile software processes from the fast delivery point of view, which allow shortening the life-cycle of projects:
1. Modularity on development process level
2. Iterative with short cycles enabling fast verifications and corrections 3. Time-bound with iteration cycles from one to six weeks
4. Parsimony in development process removes all unnecessary activities
5. Adaptive with possible emergent new risks
6. Incremental process approach that allows functioning application building in small steps
7. Convergent (and incremental) approach minimizes the risks
8. People-oriented, i.e. agile processes favor people over processes and technology
9. Collaborative and communicative working style
Agile is a powerful tool for software development, not only providing benefits to the development team, but also providing a number of important benefits and advantages to the client’s projects. Agile methodology helps project teams deal with many of the most common project pitfalls (such as cost, schedule predictability and scope creep) in a more controlled manner.
Abrahamsson P, Salo O, Ronkainen J, Warsta J. Agile Software Development Methods: Review and Analysis. https://arxiv.org/ftp/arxiv/papers/1709/1709.08439.pdf.
What is Agile Software Development? Agile Alliance. https://www.agilealliance.org/agile101/. Published June 29, 2015. Accessed October 8, 2020.
Benefits of Agile Software Development | Segue Technologies. Segue Technologies. https://www.seguetech.com/8-benefits-of-agile-software-development/. Published August 25, 2015. Accessed October 8, 2020.