With technological advances and the search for methods that make project management more efficient, agile methodology has emerged. It is increasingly common for companies and organizations to make use of this practice, and its popularity is due to the fact that it brings agility, flexibility and greater productivity to projects.

The market is demanding a transformation in how deliveries are made. They are expected to be more transparent, collaborative and customer-focused, and the agile methodology is a great way of achieving this. If you want to learn more about how this approach works, come and join us!

What is agile methodology?

Agile methodology is a set of techniques that promote continuous development, teamwork, speed of delivery, dynamism and ease of applying changes and adaptations according to the requirements that arise.

It works like this: the project is divided into cycles, called iterations. With each delivery, a new cycle begins. Thus, several partial deliveries are made during the process.

The aim is therefore not only to speed up and save time and effort, but also to give the client the opportunity to actively participate in the development, contributing with constant feedback. The result is a much more improved, high-quality project!

Agile Manifesto

In order to propose changes to classic project management methodologies, in 2001, 17 developers got together and formulated a document called the Agile Manifesto. It contains four basic values:

  1. Individuals and iterations rather than tools and processes
  2. Working software rather than comprehensive documentation
  3. Collaboration with the client rather than negotiating contracts
  4. Responding to change rather than following a plan

In all four items, they indicate that certain points need to be prioritized over others. We can see that they all revolve around improving the user experience, creating a closer relationship with the customer, without fear of adapting the plan to arrive at a more suitable end product.

In addition, 12 principles have been established:

  • Our top priority is customer satisfaction through the continuous and early delivery of value-added software.
  • Accept changes in requirements, even at the end of development. Agile processes adapt to change so that the client can take competitive advantage.
  • Deliver working software frequently, from a few weeks to a few months, with a preference for the shortest time scale.
  • Business people and developers must work together on a daily basis throughout the project.
  • Building projects around motivated individuals, giving them the environment and support they need and trusting them to get the job done.
  • The most efficient and effective method of transmitting information to and between a development team is through face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. Sponsors, developers and users must be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design increase agility.
  • Simplicity: the art of maximizing the amount of work not done is essential.
  • The best architectures, requirements and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective and then refines and adjusts its behavior accordingly.

These commandments follow the same ideas already mentioned, describing in detail how the agile methodology should be applied.

To represent the Agile Manifesto, a non-profit organization was created, the Agile Alliance. Its purpose is to encourage conversations about this methodology, emphasizing the values and principles we’ve just seen.

Differences between agile methodologies and the traditional model

There are clear distinctions between agile methodologies and the traditional model, also known as waterfall methodology, and it is important to analyze them.

To begin with, as already mentioned, in the agile methodology, the project is divided into several small deliverables, whereas in the traditional one, there is a more rigid planning, with pre-established sequential phases from start to finish and only one deliverable.

When deliveries occur frequently throughout the process, the natural consequence is that the client can always be in touch with the project. Tests are carried out with each delivery, making it possible to make changes and correct errors well before the product is finalized. The opposite is true of the traditional methodology: in it, the client only has access to the product at the end of the project, which makes it difficult to make changes and adaptations to the initial plan.

There is also the question of the division of labor. Following the agile methodology, teams are smaller, multidisciplinary and work together all the time. In the classic methodology, there is a more obvious separation of each area, with each acting independently of the other.

Bureaucracy (or the lack of it) is another point that differentiates them. Documents are a priority in the traditional methodology, but in agile they play a secondary role, as even stipulated in one of the four values of the Agile Manifesto: collaboration with clients is more important than contract negotiations.

Main agile methodologies

1. Scrum

Scrum is the most popular framework. It is an agile method focused on how to manage tasks within a team-based development environment. This team is divided into three:

  • Product owner: is responsible for creating the product backlog, i.e. the set of functionalities of the product being developed. They take care of the technical side, acting as a mediator between the client and the team.
  • Scrum master: is responsible for ensuring that Scrum is being applied correctly, for removing obstacles during the process and for organizing meetings. He acts as a facilitator.
  • Development team: the team, which is multidisciplinary and self-organized, is responsible for developing and testing the product.

It’s important to understand the concept of a sprint: one of the pillars of Scrum, it represents a work cycle (iteration), determined by a specific amount of time. Each cycle means a new partial delivery. Every project that follows the Scrum methodology has several sequential sprints.

Scrum also has four meetings, but we’ll understand them better in a future post.

2. Kanban

Kanban is a Japanese term meaning “card”. This method consists of cards containing all the information needed to develop the product at every stage until completion.

A table is divided into columns showing the production flows. This information is therefore changeable – with each delivery, new demands arise and new cards are created to represent them.

The main intention is to make it easier for the team to see the tasks and the progress of the project. Everyone involved can easily see what needs to be done, what is in progress and what has already been completed.

3. Lean

Lean methodology has its origins in lean manufacturing, based on the Toyota production system. The idea is to improve efficiency and quality by using only the resources deemed necessary, preventing the waste of time, effort and money.

The focus is on producing value for the client, paying attention to their real demands, in order to develop faster, more economically and with excellence. To do this, the stages of the project are identified and then those that don’t add value are eliminated.

There are four principles to Lean thinking:

  1. Set value
  2. Mapping the value streams
  3. Create a continuous flow of work
  4. Organize a pull flow system
  5. Striving for perfection

4. eXtreme Programming (XP)

eXtreme Programming, also known as XP, is a methodology similar to Scrum. It is based on five values: communication, simplicity, feedback, courage and respect.

This approach is very useful when the customer makes frequent requests for changes or when they are still unsure about the functionality of the system, as it allows for constant feedback from the customer.

The proposal is for the cycles (iterations) to be very short, with regular testing and continuous improvement of the code. This makes project development more productive and makes it possible to establish checkpoints at which customer requests can be easily implemented.

The XP phases are: planning, managing, creating the design, coding, testing and listening to feedback.

These are some of the types of agile methodology that we thought it would be interesting to mention. As the application of this technique goes beyond software development, it’s worth using it in your project.

In the next few posts, we’ll explore the subject further, but we hope that with what you’ve read so far, the concept and idea behind agile methodologies has become clearer and you can try it out!

related

articles