Lack of time and cost overruns are top concerns on managers’ minds. The two variables are correlated and can be resolved by making processes more agile. This issue is not new, but it has reached its peak in recent years, which has led more and more companies to use agile methodologies for project management . In this article we will provide you the Types of agile methodology.
There are several types of management methodologies that can be used in different projects . In this way, understanding how the main methods work becomes interesting, as well as knowing which are the best for each context. Thus, it is possible to face all the problems in cost planning, time, resources and crisis management with a modern and effective mindset.
Want to know more about these techniques to save time without running over processes? In this article, we will cover the types of agile methodologies, how each one works and how they can optimize results in your company. Be sure to check out the topics below. Good reading!
What are agile methodologies?
In the early 1990s, with the growing use of computers by companies, software development faced a crisis with many delays in application deliveries. Experts estimate that the time between demand and application delivery was three years at the time.
In this way, several professionals began to work in search of new approaches to eliminate what they considered unproductive activities within software development and generate models that better adapt to modernity. In this context, different types of agile methodologies emerged.
The focus of such methods has been to streamline software development processes (although it is possible to use agile methodologies in other industries), in order to eliminate the main problems that companies face in projects. These are strategies and techniques aimed at the collaboration of all members within small cycles of work, using incremental development.
By making use of agile processes, it is possible to optimize efficiency during execution, as a large task is divided into smaller steps. In other words: to build a large project, the ideal is always to divide it into smaller parts or functionalities, so that the direction that the team needs to follow at each stage is clear and it becomes easier to allocate resources or define the schedule .
Thus, better and faster results are obtained, since an environment of constant dialogue is created. This allows for resource control and transparency, as well as ensuring customer feedback at every step. Such actions make managing changes simpler than at the end of all processes.
In early 2001, a group of 17 professionals who were involved in discussions to find solutions that would make it possible to deliver projects more quickly published the Agile Software Development Manifesto .
The document contains the fundamental principles for agile development, applicable to all types of methodologies. According to the manifesto, the team is considered more important than the tools and systems used. In this sense, such methodologies prioritize people, their creativity, suggestions and insights .
Likewise, there is a greater emphasis on delivering the working software, even if only some of the parts are ready, than on providing complete, extensive and detailed documentation, but of no use to the contractor. As a result, the client collaborates intensively with the team. Your suggestions and clarifications become more important than contracts or other formalities.
These contributions are possible due to the fact that agile methodologies have fast development cycles. The objectives are: to show the customer the part or module of the software already created, get their feedback on it and check what needs to be changed or improved before planning the next cycle or having to wait for the end of the project.
Quality validations become fundamental parts, which are present in several stages and occur whenever there is a need (not just at a specific and predetermined time). To be agile is to focus on each production cycle, considering that possible changes or reformulations not previously foreseen may exist.
The concepts of agility in project management emerged as a response to the challenges imposed by traditional methodologies, especially in the software engineering market. A common approach in this context was the development in the waterfall or waterfall model, with rigid and sequential phases, such as requirements gathering, development and testing.
Traditional methodologies required a lot of documentation and there was a requirement to strictly follow the same set of steps regardless of what the company was creating at the time. In the analysis phase, requirements were gathered and documented in an extremely detailed way before the software was developed and tested.
Only when the project was ready was it presented to the client, receiving their approval. In other words, the contracting parties could only become more actively involved with the product or service at the end of the entire process, when the result had already been tested and implemented. However, the advantage of such an approach is that there is more control and predictability in the outcome.
But this is an ineffective procedure for dealing with changes throughout the project or ensuring that expectations are fully met. When some new need arose or changes were needed, the process returned to the analysis phase, in which the change was documented and approved before returning to the development stage.
However, modifications or new understandings were very common during these types of projects. This indicated that the process ended up becoming very slow and sometimes the result was not what the consumer expected to obtain.
There was no support for interaction with the customer, which caused an accumulation of failures until the end of the project, generated products that did not please the contractors and caused delays that jeopardized the entire planning. In addition, the effort spent to meet the processes and generate all the documentation ended up lengthening the project execution schedule, increasing its costs.
How can agile methodologies be applied in projects?
Although agile methods were born in the systems development market, they can be applied in countless other sectors. There are already proposals that use them in strategies for human resources , improving the choice of employees or covering the entire management of people.
Another area that has also adapted agile methodologies is marketing . They are very useful because it is a specialty that is constantly changing, and their use leads teams to respond more quickly to the market, focusing on the consumer. This factor also makes them more collaborative and open to continuous improvement.
This work model simplifies the management of internal information and execution flows, establishing precise control of the various variables that involve all processes, such as time, costs, scope , functionalities and quality.
To ensure efficiency in its application, the company needs to invest in some aspects. The main ones are the motivation and engagement of employees, since they are the ones who play a key role, in which everyone must know the agile philosophy very well and work with a focus on collaboration, integration and the customer.
It is also necessary to implement profound changes in the mindset of the professionals involved at all hierarchical levels, starting with management. Being agile means prioritizing customer success, learning to collaborate with them, adapting to changes frequently, and delivering in rapid cycles.
It should be understood that it is better to deliver a partial and functional result than to go on for a very long period without feedback and deliver a finished product, but which does not meet the client’s needs.
As the agile mindset is always ready for the unexpected, being continually driven by changes, it is interesting to adopt tools and systems that help project management. Thus, it is possible to promote the integration of relevant information and the organization of activities, costs, risks, among other issues.
What are the types of agile methodologies?
There are different types of agile methodology available in the market, each of which has its particularities. Check out the main ones below.
Currently, it is the most used type of agile methodology. In Scrum, the project is divided into cycles that last between one and four weeks (called sprints). The functionalities to be implemented are placed in a backlog called a backlog.
At the beginning of each sprint, the sprint planning is held, a planning meeting whose objective is to determine the plan and goals. In this meeting, the product owner prioritizes backlog items and the team selects activities capable of responding to these priorities during the cycle that begins.
A successful sprint planning generates a team aligned on the goals and commitments of the cycle, with clarity about priorities and expectations for each task. It is also a space for communication in which future issues of lack of commitment or internal dependencies that will affect the result are perceived and avoided.
The team performs the daily scrum daily, that is, quick update meetings aimed at transparency for the entire team. It is also the time to solve daily project problems that interfere with the agility and quality of the tasks to be carried out, as each team member exposes what they concluded the day before, what they are doing and if there is anything that has been preventing their progress.
The success of this part of the process will only come if there is an environment of great trust and respect. Everyone must be honest about the progress of their work, so it is necessary that the environment provides a sense of security.
At the end of the sprint, the sprint review takes place, in which the implemented features are presented and the next cycle is planned. Each member reviews newly developed features or sprint results. It is at this point that feedback occurs, in addition to being an opportunity to integrate with other teams involved in the project. It is also an important moment for the team’s motivation, as its members can celebrate the positive results already achieved.
The Scrum Master plays an important role within this type of methodology, as he must guide the team in relation to the structure and help eliminate any obstacles that are slowing the team down. It is your responsibilities to plan each sprint, review it, note improvement opportunities and report, as well as conduct one-on-one meetings, internal consultations and eliminate blockages.
To start your Scrum journey, an excellent read is the book “SCRUM: The Art of Doing Twice the Work in Half the Time” by Jeff Sutherland, Co-Creator of Scrum.
Lean is a management philosophy that was introduced to the market by the automotive sector and aims at lean and efficient development. The application of resources and time is minimal, which reduces costs. Its objective is to combat excess production and reduce complexities to optimize results, with a focus on preventing minor issues from becoming problems.
In the Lean method, the team has a clearer and more understandable workflow , quick deliveries and accurate identification of problems or bottlenecks in the processes. This generates savings that make the company more competitive and allow for smart financial management.
The principles of this type of methodology are:
- eliminate waste;
- amplify learning;
- decide as late as possible;
- deliver as soon as possible;
- empower the team;
- build quality;
- optimize the whole.
Kanban is not necessarily a type of agile methodology, but a system for organizing activities that provides agility in the process. That is: it is very useful and adopted in agile methods to organize work, but it does not describe how the activities should be carried out.
The Kanban work management system was developed by Toyota in the 1960s. It visually organizes tasks by status, on boards, with the project steps arranged in columns (to do, doing and done), creating a visual control .
A limit must be set for the work in progress. The activities being performed or the “doing” status column can have a maximum of five tasks only. Thus, if there are already five activities in progress, one of them must be completed so that a new one can start.
Kanban is used in association with the concept of just in time, which guarantees the use of only the resources necessary for the tasks that are in progress. Thus, it is possible to eliminate surpluses or leftovers and reduce costs.
Because there is a clear view and precise separation of activities, resources can be applied more intelligently. This organized view allows the team and the manager to break the project into parts in order to understand priorities and eliminate tasks that do not add to the result. In this way, you can focus on each activity exclusively.
As examples of use in conjunction with agile methodologies, we can mention a Kanban board being used to visualize the flow of activities in a Scrum sprint.
4. Extreme Programming (XP)
XP or Extreme Programming is a type of agile methodology aimed at software development that aims to obtain a product with the highest possible quality, in addition to increasing the quality of life of the development team. This process involves five values:
- frequent and adequate communication for knowledge transfer, as software development is a team effort. For this, the best forms of communication are face-to-face conversations and drawings on a whiteboard;
- simplicity to ensure efficiency and focus only on what is needed;
- feedback to support customers in optimizing the product and achieving results;
- courage to take the right actions, such as reporting problems, stop doing ineffective things and try some new approach, giving and accepting feedback;
- respect among all team members;
- change as a value associated with flexibility and a fundamental factor for making changes to products and requirements, in accordance with customer suggestions.
These values must be implemented through the following practices:
- single team (Whole Team);
- planning game (Planning Game);
- acceptance tests (Customer Tests);
- small phases (Small Releases);
- simple design (Simple Design);
- Pair Programming;
- Test Driven Development;
- software design improvement (Refactoring);
- continuous integration;
- Collective Code Ownership;
- code standardization (Coding Standard);
- metaphors (Metaphor);
- sustainable pace (Sustainable Pace).
5. Feature Driven Development (FDD)
Based on the COAD method, it is a type of object-oriented analysis methodology, in which the study of problems is based on palpable concepts and interactive processes to understand the context that will be analyzed. It can be explained by the structuring of the interaction between action and result, which is the so-called object.
The design of the steps of the basic process consists of the development of the model or object-oriented analysis, followed by the elaboration of the list of functionalities and, finally, the planning, projection and construction of each one of them. These processes are guided by the following practices:
- object modeling: building basic diagrams with objects for system model architecture;
- feature-driven implementation;
- use of individually authored codes;
- use of teams to implement each characteristic;
- verification of code and design quality;
- regular and predetermined integration;
- version maintenance to manage configurations;
- transparent monitoring of project progress.
6. Microsoft Solutions Framework (MSF)
The methodology emerged in 1994, when Microsoft gathered a set of best practices from its experience in software development and consulting services. They were developed to become a flexible framework, capable of guiding the development of software projects.
With the increase in the use of agile methodologies, Microsoft has released a variation of MSF called MSF For Agile Software Development, whose principles are:
- the constant monitoring of the customer as a value differential;
- the vision shared by the team;
- checking and preventing to ensure quality is everyone’s job;
- agility must be maintained by being flexible with the emergence of new challenges;
- information sharing flows must be continuous;
- change and adaptation are constant and generate the best results;
- you should strive for activities that deliver value to the customer.
Although the best practices adopted are still of good value, this methodology is no longer being updated by Microsoft.
7. Dynamic System Development (Dynamic System Development Model)
The method was developed by the DSDM consortium in 1990 in the UK as an independent extension of Rapid Application Development (RAD). The intention was to use it in projects with limited deadlines and budgets. This type of methodology is characterized by the practices below:
- continuous cycle of improvement;
- constant collaboration between client and development team;
- integration of functions between modules.