Agile software development methods

Agile methods software development (also called Agile Modelling, denoted AG for short) reduce software lifecycle time (thus speeding up development) by firstly creating a prototype version, then integrating functionality on an iterative basis responding to customer requirements and testing throughout the development cycle.

Agile Manifesto

Agile methods originate from the instability of the technical environment and the fact that the client is often unable to define every single requirement at the start of the project. The term "agile" is a reference to the ability to adapt to contextual changes and changes to specifications which occur during the development process. Thus in 2001, 17 people came up with the Agile Manifesto the main points of which are as follows:

  • Individuals and interactions rather than processes and tools.
  • Software development rather than exhaustive documentation.
  • Working with the customer rather than contract negotiation.
  • Openness to change rather than following inflexible plans.

With the help of agile methods, the customer is in total control of his project and achieves rapid software implementation. Thus, this allows for user involvement from the beginning of the project.

Main types of Agile Methodologies

A software development methodology refers to a framework that is used to structure, plan and control the development process in information systems.

SCRUM

SCRUM is a framework used within teams managing complex projects and its aim is to deliver value in short periods of time. It is based on three pillars: transparency, inspection and adaptation. It is used in the management of development projects for software products and also in a business-related context.

Kanban

Kankan main aim is to manage how tasks are completed. Consists in a visual method that allows to know the status of the projects quickly and to assign new tasks in a very effective way. In order to apply it, a task board is necessary to improve the work and to have a sustainable rhythm.

XP - Extreme Programming

The XP method (EXtreme Programming) defines a set of best practices for application development in optimal conditions by placing the customer at the centre of the development process, maintaining a close relationship with the customer.

Extreme Programming is based on the following concepts:

  • Development teams work directly with the customer in very short cycles of one to two weeks maximum.

  • Delivery of versions of the software occurs very early and at rapid intervals to maximize the impact of user feedback.

  • There is tight collaboration in the development team when working on the code.
  • The code is tested and cleaned up throughout the development process.

  • Indicators measure the progress of the project so that the development plan can be updated.

Crystal

Crystal methodology focuses primarily on people and the interaction between them as they work on a software development project. At the beginning of the project, processes and tools are not fixed, but are decided on the basis of the business requirements and technical needs of the project.

DSDM

The DSDM (Dynamic Software Development Method) was developed to fill in some of the gaps in the RAD method by providing a framework which takes into account the entire development cycle.

The main features of the DSDM method are as follows:

  • User involvement.
  • Iterative and incremental development.
  • Increased delivery frequency.
  • Integrated tests at each phase.
  • The acceptance of delivered products depends directly on fulfilling requirements.

UP - Unified Process

The Unified Process UP method is an iterative and incremental development process which means that the project is cut into very short phases, where a new incremental version is delivered at the end of each phase.

This approach is based on UML modelling for the description of software architecture (functional, applicational and physical), and user case development which outlines user requirements and demands.

RAD - Rapid Application Development

Rapid Application Development (or RAD) was defined by James Martin in the early 1980s, and consists of a short development cycle based on 3 phases (Requirements, Design and Construction) with an ideal delivery time of between 90 and 120 days maximum.

RUP - Rational Unified Process

RUP (Rational Unified Process) is an iterative development method promoted by the Rational Software company, which was bought by IBM.

The RUP method mainly specifies team make-up and time scales as well as a number of document models.

Agile Methodologies advantages

  • Divide the project into stages and work faster.
  • Adapt and modify the project as it progresses.
  • Identify which tasks are of most interest at any given time.
  • Finding errors easily.
  • Projects are much more transparent.
  • Faster end-user feedback.

Image: © Everypixel

Ask a question
CCM is a leading international tech website. Our content is written in collaboration with IT experts, under the direction of Jean-François Pillou, founder of CCM.net. CCM reaches more than 50 million unique visitors per month and is available in 11 languages.
This document, titled « Agile software development methods », is available under the Creative Commons license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM (ccm.net).