What is agile methodology? Most common agile methodologies

What is agile methodology? What are the 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. 

What are 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

How does the scrum methodology work and why has it become the most widely used agile framework?

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 are highly empowered: for example, they can decide how the work is done: which product functionality they work on and how they do it. A 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

What does the scrum process look like step by step?

The scrum process in a nutshell is as follows: 

  • 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 make 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.

What should you know about the Extreme Programming (XP) methodology?

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.

What is the Crystal Methodology and how does it work?

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.

What is the DSDM methodology and when should it be used?

THE DSDM (Dynamic Software Development Method) is a so-called RAD (Rapid Application Development) approach to software development that provides an agile project delivery framework. It focuses on software projects that are characterised by tight budgets and schedules. A 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

What is FDD (Feature Driven Development) and how is the process structured?

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). 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

How does the Kanban methodology work and what problems does it solve?

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

What is lean software development and what are the principles behind it?

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

Frequently asked questions about agile methodology

Finally, here is some useful information!

Agile means agile or agility. In practice, agile describes the ability to adapt quickly and to continuously create value. Organisations achieve this by working in short cycles, gathering rapid feedback and responding flexibly to change - not just in development, but in other areas of business.

The agile model is based on iterations, where the team delivers a working part of the product at the end of each cycle. In contrast, the traditional (waterfall) model relies on long pre-planning phases, with delivery at the end all at once. The advantage of the agile model is that you find out earlier what you actually need.

Agile operations provide flexibility to deal with uncertainty, increase transparency and help you respond more quickly to changes in market or customer demand. In a modern, dynamic environment, this gives you a competitive advantage.

Agile thinking is not about specific processes, but about an attitude: openness to change, collaboration and learning. It is necessary even if the team is already using a methodology, because the methodology itself does not work without the right mindset.

At an organisational level, agile means that a company can react quickly to change and adapt its processes, decision-making and operations accordingly. This includes cutting red tape, giving teams greater autonomy, transparent communication and a culture of continuous learning. 

The scrum master is the role that supports the team to apply the scrum framework effectively. His or her role is to help the team function, remove obstacles, manage scrum events and ensure that processes are working in line with Agile values. He/she is not a project manager but a servant leader of the team, improving team performance and collaboration.

An iteration is a short, iterative cycle of work, at the end of which the team delivers a partially or fully functional result. In agile methodologies, each iteration corresponds to a mini project: it starts with planning, continues with implementation and ends with evaluation. The aim is to continuously improve the product and the team's performance based on frequent feedback.

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!