Articles

What is agile methodology - A complete guide

by Xavi Hernandez Product Manager and Developer

Let’s face it — Agile is the new normal. Today, nobody just picks up a project and does it. No, today everybody is agile, with more companies adopting the methodology with every passing year.

Jokes aside, Agile has earned its reputation. It is efficient, it is fast, it is flexible, and it is easy to adopt. If you know how, that is.

What is Agile project management?

The main principle of Agile project management is breaking a large project into a number of small tasks that can be accomplished within a relatively short period of time. Eating the elephant one bite at a time — those who first came up with this saying were definitely thinking Agile.

However, agile project management is much more than just dividing the project into quickly executable tasks. Each iteration, called “sprint” in the Agile terminology, produces a finished product component that can be tested and evaluated. This approach opens enormous opportunities for quick change and error-fixing. Generally, each sprint passes through the following stages:

  • Design, when the requirements to a particular feature or component are analysed and interpreted into actual development tasks
  • Develop, when the design is implemented
  • Test, when the components are tested, including integration testing with other components
  • Deploy, when the developed component is put to action
  • Review, when the finished component is demonstrated to the customer

Each cycle is followed by a new one that goes along the same route. Each iteration produces a new component that joins the others like jigsaw pieces until they form a complete product. Each iteration starts with a new task to be completed by its end.

Benefits of Agile project management

The iterative principle of the Agile project management brings multiple benefits for both the development team and the customer:

With testing and review done in each sprint, the chances of finding an error are higher, and the costs of its correction are lower. By the end of the last sprint, you are getting a product consisting of a number of stable components that have been tested both individually and in integration.

Unlike the traditional project management where the customer waits for months until they can see the complete product or at least a working prototype, the Agile creates perfect conditions for active customer participation. Each sprint usually ends with a customer demo showing the feature that has been completed. The customer is, of course, expected to provide feedback. This way, the customer can monitor the development progress and suggest improvements immediately.

Before the project is launched, it goes through the planning stage outlining the features, components, and details that should be implemented. However, as each sprint ends, new factors may appear that require adjustment of the original plan. Some features may need to be implemented differently and some discarded altogether. In Agile, the team plans the next sprint already armed with the results of the previous iterations and based on the initial backlog created during the planning stage. Thus, it is much easier to adapt to changes when there is no strict plan yet.

Projects managed by the Agile methodology tend to be delivered faster than those using the traditional approach. The reason is the same — frequent testing and deployment, more accurate estimations and higher predictability due to the smaller scope of each sprint.

A team working by the Agile methodology has a better understanding of the business value of both individual features and the entire project. Every sprint they see how their work is translated into a functioning component with a clear purpose. In this respect, Agile motivates the team and increases the overall product quality.

Agile vs Waterfall project management

The traditional project management which is also called the Waterfall methodology is fundamentally different from Agile in the most basic principle of work organization: where an Agile project is a series of tasks, a Waterfall one is a continuous flow with the result obtained only at the very end.

Incremental: a number of small “projects”, each with its clearly defined result and acceptance criteria

Constant customer involvement: the customer is monitoring the project progress on a regular basis participating in demos and providing feedback

Smaller, better-focused teams: depending on the scope of each sprint, the team may consist of developers with the skills required for this sprint.

Possibility of change: frequent delivery gives a better view of the scope of the subsequent sprints allowing quick adjustment

Predictability: Agile allows to plan future development on the basis of the already delivered components which gives a better idea of the total outcome

Linear: one monolithic project developed as a continuous process with no or few intermediate results

No customer participation: the customer is only present at the completion of the project to accept the resulting product

Large teams: A Waterfall project team is usually on a larger side and most of the time represents all skills required for the project. This arrangement may result in higher man-hours

Low flexibility: the project is developed according to the original plan with errors and inconsistencies detected and corrected at the final stage

Result at the end of the project: with Waterfall, you can either succeed or fail but you will not know it until just before the end credits

Disclaimer: by no means we want to imply that Waterfall is inefficient or unproductive. It works great for small projects with a well-defined scope. For large ones, though, Agile is the preferred option as it reduces the chance of unpleasant surprises.

Agile project management with Kanban and Scrum

Now that we have looked at what agile is, it’s time to discuss how Agile teams work. There are two major Agile formats — Scrum and Kanban.

Scrum represents the Agile principles best — it practices the iterative approach to project planning with sprints and frequent deliveries. The beginning and end of each sprint, as well as the scope, is clearly defined.

Within a sprint, the scope is divided into even smaller tasks that are assigned to the team members. The team schedules daily sync-up meetings to report what has been done, what is blocking the next steps, what everyone is planning to do next. At the end of the sprint, the finished component is reviewed and demonstrated to the customer, and the tasks that could not be implemented are sent back to the backlog.

When the team meets for the next sprint, they get a new scope, a new set of tasks, and the cycle starts again.

See top scrum tools

At first glance, Kanban resembles Waterfall rather than Agile. Indeed, it has no iterations with the development progressing as a single flow. However, Kanban is agile, although its organization is incremental rather than iterative.

In Kanban, the main principle is limiting the work in progress. This way, Kanban allows for a better allocation of resources and prevents bottlenecks. By limiting the work in progress, the team uses its capacity effectively and only performs a small chunk of work at a time. New tasks are accepted only when the previous ones are completed.

Here's a list of best kanban software tools

When to use Scrum and Kanban

Start with Kanban and later switch to Scrum along with our core development team. From experience of using both approaches, we can recommend the following criteria for choosing the way to organize your Agile development:

Choose Scrum when:

  • You have a large project that can be easily broken into smaller tasks
  • You do not expect the scope of each sprint to change dramatically
  • Your team has new members that will adapt easier if assigned small, clearly defined tasks
  • You are okay with running multiple meetings called as scrum meetings or scrum ceremonies

Choose Kanban when:

  • Your project scope is more homogeneous and is difficult to divide into logical chunks
  • You expect changes to the scope to be multiple and frequent. In this case, Kanban works better than Scrum
  • Your team is well-weathered and used to working together

Agile project management tools

No matter whether you choose Scrum or Kanban as your working methodology, your central point will be the agile board. This is where you will be moving tasks from stage to stage, each of them traveling the route from backlog to “Done”.

In fact, you do not need a fancy tool to be agile. Use a regular whiteboard and markers or sticky notes. At the end of the day, it’s the principle that counts. However, tools help you save time and effort — this is what they were designed for. There are a lot of Agile project management tools on the market, let’s look at the most popular ones.

1. Jira by Atlassian, is a leader in the project management tools supporting both Scrum and Kanban boards.

Finding Jira complex? Here’s a list of Jira alternatives.

2. Trello, which is also Atlassian’s product, is better suited for Kanban, however, there is an extension that allows using it for Scrum teams, too.

Looking for something more powerful than Trello? Here are top alternatives to Trello

Resources to learn agile project management

Agile project management is a complex, multi-layered job that requires knowledge and practice to be successful. To become a professional Scrum Master or Agile coach, you need to invest time and costs into learning the skill, and we want to help you by sharing our recommendations on the best learning resources on the market.


Sponsor Ads


About Xavi Hernandez Junior   Product Manager and Developer

0 connections, 0 recommendations, 10 honor points.
Joined APSense since, February 6th, 2020, From Barcelona, Spain.

Created on Feb 6th 2020 02:21. Viewed 508 times.

Comments

No comment, be the first to comment.
Please sign in before you comment.