What is Agile Project Management?

Agile approaches to project management involve a set of principles originally laid out in the agile manifesto. These principles were born as a result of an inability to deliver quality software on time due to changing customer requirements. Agile approaches involve breaking up large software into smaller components, involving the customer in the development process, shipping frequently and constantly tweaking and improving the process to achieve greater efficiency. Some of the most commonly used agile frameworks are scrum, kanban, FDD and extreme programming.

What is Scrum?

Scrum is an agile framework that encourages teams to break down projects into smaller components and develop them in smaller cycles called sprints. Each sprint (usually) lasts for a few weeks upto a month. The aim is to have a demo ready product/component at the end of every iteration. With every subsequent sprint, the team comes closer to having a feature complete product.

One of the biggest advantages of using scrum is the ability to incorporate customer feedback in between sprints. It also allows teams to get prototypes and mvps market tested more frequently. This ensures that the product being built has the best chance of success during the final release. It is because of these reasons that scrum is one of the most popular agile frameworks being used by modern development teams.

Step 1: Get Started with a cross functional scrum team

Scrum teams are generally tasked with delivering a demo-ready (or) usable prototype for the end of the sprint. In order to do this, it is essential to have a cross functional team that has all the skills required to design, build and test the product. Thus most scrum teams have a combination of these team members. The development team is aided by a few scrum-specific roles on the team. These are called the product owner and the scrum master. The product owner is usually the product manager who is responsible for maintaining the product backlog, working with designers and getting user stories and tasks ready for the development team.

scrum team
A scrum team is cross-functional in nature

Step 2: Break down features into smaller stories and tasks

One of the first principles of the scrum framework is to break down large bodies of work into manageable chunks. This is done by breaking down features into user stories, tasks and subtasks.

user stories and tasks
Breakdown features into user stories, tasks and subtasks

This is important as large features are built over several sprints. It is the product owner’s responsibility to prioritise and move these smaller chunks of work into the correct sprints to

  1. Be as efficient as possible to ship as much as possible and
  2. Ensure the development team can build a working component at the end of every sprint.

Also, product owners should try to make user stories as descriptive as possible and break them down to make the development team’s job easier.

The next step is to ensure that these user stories are scoped properly. This can be done with the help of the development team.

Step 3: Estimate and Prioritise

Once user stories have a certain degree of completeness, the next step is for the product owner to work with the development team to estimate and prioritise the user stories. This is one of the most difficult but important steps in the scrum process. So much so that the outcome of the process largely depends on the ability of the team to get it right during the estimation process. Teams generally get better at estimating with every new iteration.

This phase also allows the product owner time to re-scope any stories or features if they can’t be completed in a single sprint. Ideally, a user story should be complete in a single sprint cycle. If not, it is better for the product owner to break it down further and reprioritise.

Once this step is done, the next step is to bring the team together for the sprint planning meeting.

Step 4: Plan the sprint

The sprint planning meeting is one of the most important meetings the team has to have before the actual sprint. The objectives of this meeting are to:

a) Agree on or revise the duration of the sprint

b) Choose the stories that are going to be incorporated in the sprint and

c) Set dates for and agree on a demo that the development team is going to present at the end of the cycle.

items on sprint backlog
Add the prioritised items to the sprint

Once this meeting is done, it is important for the product owner to step back and the scrum master to assume leadership of the team and take ownership of hitting targets at the end of the sprint. The product owner’s major role is done with the end of the sprint planning meeting.

Step 5: Start the sprint and stay on course

Once the sprint has started, it is important to make sure that the development team is in track hit targets for the cycle. The daily standup meeting can be used to check on progress of team members, update people about blockers and get an overview of whether the sprint is on track to be completed.

Run Sprints across Features

The team can make use of burndown charts and other such charts and metrics to keep a tab on the productivity of the team. Once the sprint is complete the team should look to demo the component built during the sprint to the various stakeholders as soon as possible.

Step 6: Conduct sprint retrospectives to reflect and improve

burndown chart
Use burndown charts to keep the sprint on track and improve during retrospectives.

One of the most important objectives of sprint teams is to improve output and productivity with every sprint. An important part of this is the sprint retrospective meeting. It is in this meeting that the team meets to discuss what worked and what could be improved. Again, the team can use a burndown chart to understand if and why targets were missed and what processes need improvement. This is also the time when scrum masters and product owners understand how accurate their estimations were. It is essential that the ability of the team to improve accuracy of story estimations after every iteration.

ezgif.com-resize-1