Using Azure Boards to Manage Sprints and Capacity
Tags: sprints, capacity, azureboards, agileplanning
Published: 2024-01-02 16:23:35

**What are Sprints?** 

Literally speaking, Sprint means the duration or time spent running as fast as one could to cover a short distance either in a race or probably when one is in a hurry to catch up with a train or bus. Today,  Software developers are typically sprinting to stay ahead of the rapid demand of the Tech industry. This calls for proper and efficient planning and this is where Agile methodologies such as  managing Sprints and Capacity comes in. 

Explaining what Sprints means in Agile planning can not be done in isolation of an idea of what **Scrum** is. Developers use Scrum as a framework for tackling complex tasks (projects) by breaking them into smaller bits that can be completed in increments. These 'smaller bits' are Sprints which are fixed length duration of about four(4) weeks (or less sometimes) having specific start and end dates. This duration is consistently maintained throughout the development process and a new Sprint start immediately the preceding one has been successfully completed. The number of Sprints in a software development project depends basically on how complex the project is. During a Sprint, the development team work on planned specific task which is known as **User Story**. 

User stories describe the definite requirements of the development project. It captures the functionality, who the end user is, and what value or benefit the user derives from that functionality of the software. They are essential part of Product backlog taking into considerations the inputs from the **Scrum team** and other stakeholders. They are used to estimate the efforts required for the development process because they eventually become the basis for the task that the team will work on during the Sprint. Also, during Sprints, the team works on creating new features based on the User stories.
The **Scrum team** is made up of the Scrum master, the Product owner and the Developers. It is the responsibility of the **Scrum master** to make sure that the Scrum team is effective in discharging their responsibilities while the **Product owner** manages the product backlog and ensure that it is easily understood. 

**What is Capacity?**
Capacity refers to the quantity of work that a development team can perform within a given timeframe during a Sprint. This usually depends on the past ability of the team, availability of the team members, their skillsets and unexpected bugs. Having a good knowledge of the teams' capabilities will enable them and the Product owner to choose the User stories it can reasonably accomplish from the Product backlog.

Managing Sprints and Capacity is an integral part of Agile planning and Portfolio management. This is the responsibility of the Scrum team. A Sprint usually has a cycle. A **Sprint cycle** consists of the following steps: sprint planning, daily scrum, sprint review, and sprint retrospective .
At **Sprint Planning** meeting, the stakeholders and the development team determines the goals of the Sprint by defining the tasks to be worked on during the iteration.
At the beginning of each day during the Sprint, the Scrum master have a **Daily Scrum**, which is a stand-up meeting with all the team members in respect of their activities and progress so far.
**Sprint review** session is an exhibition of the work accomplished during the entire Sprint to the stakeholders and other team members. This review will afford them the opportunity to make any necessary corrections before Production.
**Sprint retrospective** happens at the end of each Sprints when developers exchange ideas and learn from any mistake made in order to fashion out ways to address such in the next Sprint.

In a few quick steps, I will demonstrate how this will be done using Azure Boards. Lets go! (Note that this blog is a follow up to my article on [Managing Work items with Azure Boards](https://dev.to/yemmyoye/managing-work-items-with-azure-boards-3pdc) 

**Step 1**
Log in to the Azure DevOps portal and on the vertical navigation pane, click on **Boards** and select **Sprints**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l0h568jw5xrz7bq15e76.png)

**Step 2**
On the **Taskboard** tab, in the toolbar, select the **View options** symbol by the left side of the funnel icon.
From the dropdown menu, select the **Work details** entry and select **Sprint 2** as filter.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sqxbg00scxcau9kcgr6v.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42cccg89p5ndoralj0xu.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2jwuyowvks135fj8s8v.png)
In the image above, **Sprint 2** has two tasks  in the **To do** stage and none of these have been assigned. The numbers **5** and **3** showing in front of **Unassigned** represent the estimated quantity of work remaining to be done.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzcxpe211bdik78fp25p.png)

**Step 3**
On the **To Do** Column, I will click on the Unassigned entry in front of the Task Item **Add page for most recent tutorials**, and from the list of user accounts,  I will select my account to assign the task to myself.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qzbyzjui3o8hhrb5b5lv.png)

**Step 4**
Next,  I will select the **Capacity** tab
And on the Capacity tab view, click on **+ Add user** and select my user account. Set the **Activity** field to **Development** and, in the textbox of **Capacity per day** , type **1**.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5epvden0r0exkeq7mk7l.png)

Lets see how to set time for vacation. Vacations are added to Capacity view.
Next to the entry representing my user account ( this will be your user account when you are taking this Lab), is the **Day off** column, click on the **0** entry. This will bring up the space to set days off.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l09ipzj5i7u4x4wo7w7e.png)


For this Lab, I will set my vacation to 4 days off using the calendar and click **OK**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8dzb2ek4eoo9174srf2q.png)
Go back to the **Capacity** tab and click **Save**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z8m1bgfjz4o1blqksxk0.png)

**Step 5**
On the **Sprint** view, select **Taskboard** tab again


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fumdw39wt2ooxh7dvqa8.png)

A basic advantage of the **Boards** is the opportunity to easily make useful updates to crucial data. It is advisable to make a routine revision of the **Remaining Work** estimate to align with the anticipated time for each task. For example, after checking the work involved in **Add page for most recent tutorials** task, you may discover that the time required is more than initially expected.

**Step 6**
In the square box representing the **Add page for most recent tutorials** on the **Taskboard** tab, to match the total capacity of hours for this Sprint, set the total number of hours to **14**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7swz4lrep4y7xw17876v.png)

The image above shows that the **Development** and your personal capacities is automatically expanded from 5hours(previously) to 14hours and 'colour bars' remains green for both of them i.e Development capacity and your capacity. However, the overall **Team** capacity is exceeded because of the extra 3hours required for **Optimize data query for most recent tutorials** task, the number of hours is now **17**. That's why the 'colour bar' for the **Team** turned red

Note that there are two basic ways to resolve this kind of capacity issues:  
(i) move the task to future iteration by opening the task here and 
edit it within the panel providing access to the task details.
(ii) move the task to future iteration by going through the **Backlog** view which provides an in-line menu option to move it.

But as for this Lab we are not moving the task yet

**Step 7**
Select the View option icon by the left side of the funnel icon. From the dropdown menu, select the **Assigned To=** entry.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z1op6p31p0378onwmp8i.png)

The view shown in the image above will enable you to view the progress of tasks by person instead of by backlog item.

**Step 8**
Next, click the **Configure team settings** cogwheel icon by the right side of the funnel icon. 
Select the **Styles** tab, then click **+ Styling rule** 
Under the **Rule Name** label, in the Name textbox, type **Development**
In the **Card color** dropdown menu select the green rectangle

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gxtm4g0oaq83zduqntmw.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ipsb4anyb9logkljpvp.png)

Any card that meets the rule criteria that will be set in Step 9 below will be set to green.

**Step 9**
To set the rule criteria, go to the **Rule criteria** section, under **Field** dropdown menu, select **Activity**,
in the **Operator** dropdown menu, select **=**,
in the Value dropdown menu, select **Development**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi7fsuo8fo4idc55c41e.png)
In the next three steps, we will navigate other parts of the Team Settings panel.

**Step 10**
On the **Settings** panel, select the **Backlog** tab. In the image below you can see that **Epic** is not selected by default but you can decide to change this


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jyvx4bhbm2rckcrow4oy.png)

**Step 11**
On the **Settings** panel, select the **Working days** tab. Here, you can specify the working days that the team will follow. This also applies to the calculations of capacities and burndown


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6p9l3zjb867yzisnq58.png)

**Step 12**
On the **Settings** panel, select the **Working with bugs** tab. In this view, you have the options of specifying how you want the bugs to appear on the Boards


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ni94ivvdieh60119kchq.png)

Now to save the Styling rule, click on **Save and close**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6yw3320gkq5b4i0ukkxq.png)

This blog has explained and demonstrated what Sprints and capacity are and how they are managed with Azure Boards. 

Hope you find this interesting to follow through. Try it out yourself and don't forget to let us know how you feel about the article in the comment section below.