Why do this? We've survived this long without something like Azure DevOps!
- Project managers constantly asking for an update
- Regular interruptions from colleagues, even other developers on the team
- Difficulties interpreting why changes were made
- Lack of clarity of progress against estimates
- No understanding of whether team productivity is improving or declining
Step 1 - create a project and choose your process (e.g. agile or scrum)
- Basic is great for non-development or very simple work with minimal categorization of tasks (still in preview at time of writing)
- Agile and Scrum are the most common
- CMMI is appropriate for "high-formality" development only
Step 2 - set team capacity and set-up the sprint
- Defining team capacity - telling the system how many hours each team member has available per day
- This is critical for DevOps' ability to calculate how much work the team is likely to get done in a certain period. If you haven't told it how many hours are available, how could forecasting ever be possible? You can also set amounts per activity type e.g. design, development, deployment, documentation, testing etc.
- Use forecasting tools to allocate work to the next sprint - the backlog view helps you carve up the work into iterations/sprints by forecasting how much work will fit into the time available. Items are dragged into the sprint to confirm.
- Imagine a scenario where you have 2 x 20 hour tasks, compared to one where you have 10 x 4 hour tasks. Clearly there's a big difference here in the number of tasks which would get completed - the forecasting tools help you see this, by drawing a line in the task list at the point where the sprint would end - thus helping the team make decisions about what to bring in to a sprint
- In the video I show how adjusting the "velocity" parameter (how fast the team are working) changes how much gets done - you see the line changing position in the list of tasks. The velocity number is is something you tweak over time using data from Azure DevOps
The burndown chart
The sprint above doesn't have non-working days configured, so that would be a nice improvement to show a more accurate picture.
For more information on the burndown chart, see Configure and monitor sprint burndown.
The Cumulative Flow Diagram
- Cycle time - how long an item is active for on average (i.e. from the time someone starts work on the item, to time of completion)
- Lead time - average end-to-end time for an item (i.e. from time of item creation to time of completion)
Summary
- Ensuring project tasks (work items) are entered into the system, with effort estimated for each one
- Defining a series of iterations (sprints) to break the project up into time periods
- Regularly updating the "effort remaining" on tasks
- Use of the forecasting and analysis tools to continuously improve