What is agile methodology? Most common agile methodologies

What is agile methodology? Most common agile methodologies

Agility is a mindset, a way of thinking that can manifest itself in many different ways in the life of an organisation. This is why agile thinking has led to the development of a number of agile methodologies: organisations can choose the one that suits them best. In fact, hybrid solutions, tailored to the needs of the organisation, are increasingly common. 

We have already written a detailed article on the principles of agile project management, for those who are just learning about agility, this is a good place to start. In this paper we focus specifically on agile methodologies.

The meaning of agile methodology

Agile methodology refers to a practice, a way of organising work, whereby software development or other projects are iterated along agile values. During each iteration, both development and testing take place, so these activities are parallel. There is constant contact with the users of the product, so feedback is generated much more quickly, and the changing needs of customers are also revealed. At the end of each iteration, a working piece of the product under development, a working functionality, is produced.

 Agile methodology is not the same as agile thinking: agile thinking has given birth to agile methodologies, in which the tools, ceremonies and roles may differ from methodology to methodology. 

The most important agile methodologies

Today, a number of agile methodologies have emerged, the most important of which are: 

  • Scrum 
  • Extreme Programming (XP)
  • Crystal methodology
  • DSDM (Dynamic Software Development Method)
  • FDD (Function Driven Development)
  • Kanban board
  • Lean software development

Scrum: the most commonly used agile methodology

Scrum is an agile development methodology that focuses specifically on how to manage tasks in a team-based development environment. Scrum believes that development should be done in small development teams (about 7-9 people).

Scrum teams have a high level of empowerment: for example, they can decide how the work is done: which product functionality they work on and how they do it. Scrum consists of 3 main roles: 

  • Scrum Master: is responsible for setting up and running the team, troubleshooting work disruptions and making Scrum work
  • Product Owner: he/she is responsible for maximising the value of the product, managing the product backlog
  • Scrum team: cross-functional team that manages its own work and is responsible for delivering a working functionality at the end of each sprint
Agile methodologies were born from the agile mindset, the best known of which is Scrum

The scrum process 

The Scrum process in a nutshell looks like this: 

  • Each iteration is called a sprint, during which a working functionality must be delivered
  • The Product Backlog is the list where information about all the details of the product you want to create is entered
  • During development, the product owner collects the user requirements into the product backlog, from which the items to be created are transferred to the sprint backlog during each sprint
  • Teams work on the basis of the sprint backlog
  • Every day, team members report on who is working on what and who is working on what in a defined ceremony (Daily Scrum) 
  • A working piece of the product will be delivered at the end of the sprint
  • And the work is evaluated in a retrospective meeting

More about Scrum in this article.

Extreme Programming (XP) 

Extreme Programming is perhaps one of the most specific frameworks designed not only to produce high-quality software, but also to make the whole process easier for the development team. 

Development is typically done in 2-week iterations, and each iteration includes testing of the completed functionality and the overall system. A checkpoint is also introduced where user requirements can be easily implemented, making XP a highly customer-centric development tool. The core values of XP are communication, feedback, simplicity, courage and respect. 

The 6 phases of eXtreme programming

In XP, development is divided into 6 phases. Let's see what they are! 

Planning

  • Identification of stakeholders and sponsors
  • Definition of infrastructure requirements
  • Obtaining safety information
  • Service level agreements

Analysis

  • Capturing user needs (User story) in one place, the so-called "Parking Lot" 
  • Prioritisation of Stories 
  • Estimating the time needed to complete them
  • Determining the duration of iterations (SPAN)
  • Resource planning for both development and quality teams

Design 

  • Breakdown of tasks
  • Preparing a test scenario for each task
  • Building a regression automation framework

Implementation

  • Coding
  • Testing the units
  • Execute manual test scenarios
  • Generate an error report
  • Converting manual regression test cases to automation
  • Overview during iteration
  • End of iteration overview

Wrapping

  • Delivery of small units
  • Regression testing
  • Preparing demos and leaflets
  • Developing new stories based on demand 
  • Process improvements based on the experience of iteration retrospection

Closure

  • Pilot Launch: the first installation of the finished product
  • Training
  • Start production
  • Providing a guarantee
  • Establishing a support system

XP is a good choice in cases where customer needs change very dynamically, or where you are not sure that the system will work.

 

Crystal methodology

Crystal is a family of methodologies, some elements of which are also known as "lightweight" agile methodologies, which focus on individuals and interactions. It is mainly used for short-term projects, where the development team works on a single workspace. 

The methodology is based on the following 3 phases:

Chartering

This is the phase where the development team is set up, the preliminary feasibility analysis is carried out, the initial plan is developed and the development methodology is fine-tuned

Cyclic delivery

This is the main development phase, consisting of 2 or more delivery cycles (iterations). During these, the team: 

  • Update or refine the plan
  • Implement requirements through one or more program test integration iterations
  • The finished product reaches the user
  • The project design and the agreed development methodology are reviewed

Wrap up

This phase includes the initialisation, i.e. the commissioning in the user environment, and the subsequent reviews and considerations.

DSDM (Dynamic Software Development Method) 

DSDM is a so-called RAD (Rapid Application Development) approach to software development, which provides an agile project delivery framework. It focuses on software projects that are characterised by tight budgets and schedules. The key feature of DSDM is that users are very actively involved in the development process and teams are given very high decision-making authority. 

DSDM consists of 7 phases: 

  1. Pre-Project (pre-project phase) 
  2. Feasibility study
  3. Business study
  4. Functional model iteration
  5. Design and Build iteration
  6. Implementation
  7. Post project

FDD - Feature Driven Development

Unlike other agile methodologies, FDD describes very short iterations and very specific work phases that need to be performed separately for each function. Another interesting feature is that it is mainly applied to larger teams (compared to Scrum, for example). In order to make it easier to manage projects with a larger number of people, FDD also includes specific activities that help to manage communication challenges and facilitate project coordination.

FDD is a 5-step process, of which the first 3 are sequential and the last two are iterative:

  1. Developing a comprehensive model
  2. Preparing a list of functionalities
  3. Design by functionality
  4. Designing the functionalities
  5. Coding the functionalities
Kanban was born in response to the challenges of other agile methodologies

Kanban methodology

The Kanban method emerged in software development in the early 2000s, partly in response to the challenges of other agile methodologies, especially Scrum. What are the challenges? 

  • 2-3 week sprint cycles have become too long in many business contexts
  • The organisational, project management approach changes required by the methodology were too burdensome for the organisation
  • Several teams have been faced with the challenge of not being able to deliver on their scope and quality commitments even at sprint level 

Kanban requires much less organisational change, allows for continuous delivery and continuous customer feedback, as opposed to 2-3 week iterations, and is therefore able to deliver value to users faster. 

Kanban is a visual system for managing work as it moves through a process. Kanban also displays the process itself and the actual work that is going through the process. Its purpose is to identify potential bottlenecks in the processes and improve them to make the work more cost-effective and faster. The origins of Kanban lie in the JIT (Just-in-time) processes developed by Toyota, which used cards to identify material requirements in the production chain. 

More on the advantages and disadvantages of Kanban in this article

Lean software development

Lean software development is also based on the "JIT" principle just mentioned. Its aim is to optimise efficiency and minimise waste or wastage. Lean software development is based on the lean management principles started in the 1980s and described in this article. However, it is now considered an integral part of agile methodologies.

Lean software development can be summarised in the following seven principles: 

  • Minimising the loss
  • Facilitating learning
  • Postponing the commitment in order to take a decision at a later stage
  • Early delivery
  • Authorisation of the team
  • Building integrity
  • Optimising the whole process

How can we help?

In the past years, our colleagues with agile coaching, product ownership, development and consulting/training experience have supported dozens of agile teams and organisational agile development processes.

We are not agile evangelists, we don't believe that agile trends are the solution to everything. We believe that these tools can help in everyday life, and that incorporating this way of thinking into day-to-day work to the right extent can bring short-term success for projects and organisations.

If you want to learn more about the basics of agility, scrum or kanban, we recommend our agile training.

Have a question? Feel free to contact us!