The best software teams ship early and often. In order to successfully plan and track a software project, it is important to understand the types of work involved in software delivery. All work that's undertaken for software delivery can be categorized into one of the following four categories:
Technical debt is a metaphor for the eventual consequences of poor software or infrastructure within your organization. It is considered debt because it is work that needs to be done before a particular project can be considered complete. If you don't pay down technical debt, then your unplanned work will continue to increase. Left unchecked, technical debt will ensure that the only work that gets done is unplanned work.Â
Azure DevOps Server allows you to plan and track work using work items. Work items can be used to classify work into different categories. Work items allow you to decompose high-level ideas into smaller, workable units. These can then be prioritized, planned, and scheduled into iterations. Every team has a unique process for shipping software. Regardless of whether you follow Agile or Waterfall, Azure DevOps Server offers a range of out-of-the-box process workflows, along with giving you the option to create your own custom process workflows.
Over the last decade, agile software methodologies such as Scrum and Kanban have mostly displaced traditional Waterfall-driven software delivery for complex systems with evolving system requirements. Agile methodologies feature self-organizing teams that are empowered to achieve specific business objectives. Agile methodologies focus on the rapid and frequent delivery of partial solutions (also known as minimum viable products) that can be evaluated and used to determine the next steps for the business. In this way, solutions are built in an iterative and incremental manner. Agile methodologies have been shown to deliver higher-quality products in less time, resulting in improved customer satisfaction. The annual Agile survey report available here http://bit.ly/agileReport (refer to page 8) shows why organizations are adopting Agile software development over traditional methodologies.
While most organizations are very diligent when tracking planned work, unplanned work doesn't always get tracked. Work is work – whether it's planned or unplanned, it needs to be tracked. Hidden work robs you of focus. The primary goal of any DevOps setup within an organization is to improve the delivery of value for customers and the business; things that aren't tracked aren't measured. In the famous words of Peter Drucker, "you can't manage what you can't measure."
We've all been on a project where no data of any kind was tracked, and it was hard to tell whether we were on track for release or getting more efficient as we went along. On the other hand, many of us have had the misfortune of being on projects where stats were used as a weapon, pitting one team against another to justify mandatory weekend work. So, it's no surprise that most teams have a love/hate relationship with metrics. There are as many ways to measure a project as there are to build it. If you only measure one key metric, it is easy to get tunnel vision. Whether the teams are focusing on just making the metric better (often through gaming the system) or management is using the measure to drive all decisions, you can end up with a product or organization that looks good but is really driving off a cliff. To foster a culture of continuous improvement, Agile teams tend to focus on the following metrics:
- Lead time
- Cycle timeÂ
- Cumulative flow
- VelocityÂ
- Product burn-down and product burn-up
We'll cover some of these metrics and how they can be tracked using Azure DevOps in detail later on in this chapter. Read on to learn how work items allow you to plan and track work in your software projects.Â
In this chapter, we will cover the following recipes:Â
- Creating a team project for an Agile teamÂ
- Importing requirements from Excel
- Getting social with work items
- Portfolio backlog hierarchies and decomposing workÂ
- Configuring and customizing backlog boards
- Preparing and planning a sprintÂ
- Visualizing progress in a sprintÂ
- Delivery plans to track multiple teamsÂ
- Dashboards for planning and tracking work