The agile methodologies 101

The agile methodologies 101

Introduction

Nobody said that developing software was easy. That's why there are processes, known as Agile methodologies, that make it much easier for developers and customers alike.

But, what are Agile methodologies? This concept grew out of the need to respond more effectively to change in software projects. The Agile Manifesto, written by a group of software developers in 2001, encourages customer collaboration, individuals and interactions, and creating working software. Things like over-processing, over-planning and over-documentation are nonexistent.

Why do we want to be agile?

Traditional project management, such as the waterfall model, where you create a plan and follow it, largely unchanged, throughout the process, is ideal for creating definable products, manufacturing a car or building a home, but not for everything.

The Agile project management philosophy is ideal for complex projects with high levels of uncertainty and likelihood of change, including new designs, problems and exploratory work, used by doctors, engineers, lawyers and marketers.

Agile is an umbrella term for a vast variety of methodologies and techniques, sharing the principles and values described above. Each of them has its own areas of use and distinctive features. The most popular frameworks are Scrum, Kanban, Hybrid, Lean, and XP.

Why don't we discuss these frameworks in more detail?

Scrum

Scrum is a dominant Agile methodology. It’s used exclusively by 58% of organizations while another 18% of the companies combine it with other techniques.

This methodology is based on an incremental development structure; that is, any product and/or service development cycle is broken down into "small projects" divided into different stages: analysis, development and testing. The development stage is where we find what is known as process interactions or Sprints, which are regular,partial deliveries of the final product.

The methodology is based upon the systematic interactions between the three major roles that it defines: Scrum Master, Product Owner, and the Team.

Scrum is different from other methodologies because of the flexibility, productivity and innovation that it brings to the team's daily work. The strategy is oriented to managing and standardizing the errors that may occur in long development cycles, through frequent meetings, to ensure compliance with the established objectives.

The key aspects that Scrum is driven by are: innovation, flexibility, competitiveness and productivity.

Kanban

Another common project management framework is Kanban; 43% of companies have stated that they use Kanban as one of their project management frameworks.

Originating from a visual system of cards used in Toyota manufacturing as a production control method, Kanban is a simple, yet powerful approach to developing software products.

Translated as visual signal from Japanese, because it works through a diagram with three columns in which the tasks are grouped by to do / backlog, in process or done.

The idea is that the chart is visible to all team members so that everyone knows the status of the project. It is very useful to enhance creativity, efficiency and autonomy.

Lean

According to the latest estimates, 17% of organizations adopt Lean, making it one of the 5 most widely used Agile frameworks. It has the same origins as Kanban, having started as a technique applied to physical manufacturing.

The application of Lean principles to software development was initially introduced by Mary and Tom Poppendieck in their book Lean Software Development: An Agile Toolkit. It includes the 7 basic principles:

  • Eliminate waste
  • Amplify learning and create knowledge
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity/quality
  • See the whole picture

Extreme Programming XP

Extreme Programming XP focuses on technical aspects of software development and it's used at 9% of companies. It combines the essentials of the methodologies, providing agile teams with a number of tools to optimize their engineering process.

Extreme Programming is a set of certain practices, applied to software engineering in order to improve its quality and ability to adapt to the changing requirements.

This tool is very useful especially for startups or companies that are in the process of consolidation, since its main objective is to help in the relationships between employees and customers. The key to success of Extreme Programming XP is to enhance personal relationships through teamwork, fostering communication and eliminating downtime.

Its main phases are:

  • Project planning with the client
  • Project design
  • Coding, where programmers work in pairs to obtain more efficient and quality results.
  • Tests to verify that the implemented codes work.
Scrum

Conclusion

Agile is the best project management method when you’re trying to create something that hasn't been developed before. It is well-suited to complex projects with a lot of uncertainty.

It’s also the ideal project management method if you have hands-on customers because it allows them to be deeply involved in the process.

Agile is also designed to deliver products and more features in little time, and to build something workable in each step, rather than following a process that produces one product at the end.

Benefits of Agile

For teams:

  • You can consistently collaborate.
  • Innovation is valued.
  • You can test and learn throughout the process.

For organizations:

  • You respond to changes at a lower cost.
  • You can find and correct mistakes quickly.
  • You can build customer satisfaction through strong communication during the project.


Note: all data is collected from State of Scrum 2017-2018 scaling and agile transformation.