# What is Agile Software Development in Software Engineering?

July 24, 2018

The field of software development is not shy of introducing new methodologies. Indeed, in the last 25 years, a large number of different approaches to software development have been introduced, of which only few have survived to be used today. While no agreement on what the concept of “agile” actually refers to exists, it has generated a lot of interest among practitioners and lately also in the academia. The introduction of the extreme programming method has been widely acknowledged as the starting point for the various agile software development approaches.

### General Description of Agile Methodology

Agile – denoting “the quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion” – software development methods are attempting to offer once again an answer to the eager business community asking for lighter weight along with faster and nimbler software development processes. This is especially the case with the rapidly growing and volatile Internet software industry as well as for the emerging mobile application environment. Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches.

Agile methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. Agile software development methodology is an process for developing software (like other software development methodologies – Waterfall model, V-Model, Iterative model etc.) However, agile methodology differs significantly from other methodologies. In English, Agile means ‘ability to move quickly and easily’ and responding swiftly to change – this is a key aspect of agile software development as well.

It is a people-focused, results-focused approach to software development that respects our rapidly changing world. It’s centered on adaptive planning, self-organization, and short delivery times. It’s flexible, fast, and aims for continuous improvements in quality, using tools like Scrum and eXtreme Programming.

#### Figure: Agile Methodology

Therefore, it can be summarized in the following points:

• In traditional software development methodologies like Waterfall model, a project can take several months or years to complete and the customer may not get to see the end product until the completion of the project.
• At a high level, non-Agile projects allocate extensive periods of time for Requirements gathering, design, development, testing and User Acceptance Testing, before finally deploying the project.
• In contrast to this, Agile projects have Sprints or iterations which are shorter in duration (Sprints/iterations can vary from 2 weeks to 2 months) during which pre-determined features are developed and delivered.
• Agile projects can have one or more iterations and deliver the complete product at the end of the final iteration.

### Agile Methodology Overview

It abandons the risk of spending months or years on a process that ultimately fails because of some small mistake in an early phase. It relies instead on trusting employees and teams to work directly with customers to understand the goals and provide solutions in a fast and incremental way.

Faster and smaller: Traditional software development relied on phases like outlining the requirements, planning, design, building, testing, and delivery. Agile methodology, by contrast, looks to deploy the first increment in a couple weeks and the entire piece of software in a couple months.

Communication: Agile teams within the business work together daily at every stage of the project through face-to-face meetings. This collaboration and communication ensure the process stays on track even as conditions change.

Feedback: Rather than waiting until the delivery phase to gauge success, teams leveraging Agile methodology track the success and speed of the development process regularly. Velocity is measured after the delivery of each increment.

Trust: Agile teams and employees are self-organizing. Rather than following a manifesto of rules from management intended to produce the desired result, they understand the goals and create their own path to reach them.

Adjust: Participants tune and adjust the process continually, following the KIS or Keep It Simple principle.

Agile Methodology Tools

The list below shows some of the best tools on offer. For a complete list:

ActiveCollab: An affordable tool for small businesses, ActiveCollab is easy to use. This software development aid requires little training and provides excellent support.

Agilo for Scrum: Stakeholders get updated automatically on the project’s progress with Agilo for Scrum. Features sprint reports and burn down charts for better data mining.

Atlassian Jira + Agile: This powerful project management tool facilitates development by incorporating Scrum, Kanban, and customizable workflows.

Pivotal Tracker: This methodology tool is geared specifically for mobile projects. A little jargon-heavy, it’s user-friendly after a brief orientation period.

Prefix: This free tool from Stackify provides an instant feedback loop to catch and fix bugs before they can deploy.

Retrace: For a more robust solution complete with monitoring, errors, logs, and more, Stackify’s Retrace provides app performance insights from integration to QA to production, at the code level.

References

[1] Abrahamsson, Pekka, Outi Salo, Jussi Ronkainen, and Juhani Warsta. “Agile software development methods: Review and analysis.” arXiv preprint arXiv: 1709.08439 (2017).

[3] Stackify, “What is Agile Methodology? How It Works, Best Practices, Tools”, available online at: https://stackify.com/agile-methodology/

[4] “What is Agile?” available online at: https://www.atlassian.com/agile

$${}$$