Agile software development methods

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.

What is the agile manifesto?

Agile methods originate from the instability of the technical environment and the fact that the client is often unable to define every 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.

What are the main types of agile methodologies?

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

SCRUM

SCRUM is a framework used within teams managing complex projects and aims to deliver value in short periods. 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. It consists in a visual method that allows to know the status of the projects quickly and to assign new tasks very effectively. 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 software versions 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 project's progress to update the development plan.

Crystal

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

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. 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 modeling 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 several document models.

What are agile methodology's 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.

Software