CHAPTER 9

image

Metrics and ALM Assessment for Agile Project Management

After most sections in this book, we will have a short chapter going over the metrics we can get from TFS and also show some examples of the ALM assessment questions in the online assessment Microsoft provides (see Chapter 4) so that you can see how these questions are connected to reality.

This chapter will cover the project management areas, and we will start by looking at some metrics you can use.

Metrics

A Key Performance Indicator (KPI) is a performance measurement and is used in most organizations to evaluate the organization’s success or the success of a particular activity within the organization. Often, KPIs can be used to measure the effects of a change project, for instance, implementing a good ALM process, or they can be used to evaluate the progress of a development project.

You can use the score from an ALM online assessment as a KPI and compare the assessment scores before and after the implementation of an ALM process improvement. This way, you will get indications whether you have improved or not by implementing a new process.

During your projects, you can also use the reports from TFS to see if you are constantly improving your work or not. Continuous improvement, in our opinion, is something to strive for. When it comes to the project management area, you can, for instance, look at the velocity (covered in Chapter 8) of a team and see if it is growing or decreasing. By using reports and metrics from TFS, you can choose the KPIs you want and how to evaluate them.

Standard Reports

To help you to get good metrics about the status of your projects, TFS has many reports available out of the box. The process templates of the reports differ, but when you look more closely at them, you can see that much of the same information is displayed in them. Let’s start by looking at the reports you can use for each process template.

Scrum

Basically, there are four important reports for the Scrum template in TFS:

  • Backlog overview
  • Sprint burndown
  • Velocity report
  • Release burndown

The backlog overview report lists all user stories, filtered by area and iteration and in order of importance.

We covered the sprint burndown (Figure 9-1) in our agile chapters. This report shows how much work there is left to do in a sprint. Using it you can predict when the team will be finished with the task, within the sprint or after the sprint is finished. Based on this information, the team and the Product Owner (PO) can take actions to make sure they deliver what they have committed to. The release burndown chart (Figure 9-2) shows the exact same thing as the sprint burndown but for the work included in a release.

9781430243441_Fig09-01.jpg

Figure 9-1.  Scrum sprint burndown report

9781430243441_Fig09-02.jpg

Figure 9-2.  Scrum release burndown report

9781430243441_Fig09-03.jpg

Figure 9-3.  Scrum velocity report

Chapter 8 showed that velocity, that is, how much work a team can take on in a sprint, is important. Before any work is started, the PO calculates a theoretical velocity just for being able to start planning. As time goes by, however, this is updated with the team’s real velocity based on how much work they deliver in each sprint. This helps you estimate how much work they can take on in coming sprints. The velocity chart will help you easily retrieve this figure. Here, we will see how much effort the team has delivered for each sprint.

MSF for Agile

The following are the reports for MSF for Agile:

  • Burndown and burn rate
  • Remaining work
  • Status on all iteration
  • Stories overview
  • Stories progress
  • Unplanned work

Burndown and burn rate chart (figure 9-4). No surprises here; this is the same information as for Scrum. The burn rate provides summaries for the completed and required rate of work for a specified time period. You can also see the information for team members as well. You can choose to see the report based on hours worked or number of work items. As users, you must select the start and end date of the report yourselves; you cannot select a sprint like in the agile template.

9781430243441_Fig09-04.jpg

Figure 9-4.  Burndown and burn rate report

Remaining work (Figure 9-5). This report can be used to track the team’s progress and identify any problems in the flow of work. You can view this report in either the Hours of Work view or the Number of Work Items view.

9781430243441_Fig09-05.jpg

Figure 9-5.  Remaining work report

The status on all iterations report (Figure 9-6) will help you track the team’s performance over successive iterations. For each iteration, you can see information on how many user stories you have closed. You can see the progress of the team with information on the original estimate, how much effort has been needed, and also remaining work. This may not be agile in the strictest sense, since only work remaining is important, but it can serve its purpose anyway. This report will also show the bug status (active bugs, resolved bugs, and closed bugs).

9781430243441_Fig09-06.jpg

Figure 9-6.  Status on all iterations report

The stories overview report (Figure 9-7) and stories progress report (Figure 9-8) list all user stories, filtered by area and iteration and in order of importance. You can see how many hours are completed for a user story and how much work is still remaining.

9781430243441_Fig09-07.jpg

Figure 9-7.  Stories overview report

9781430243441_Fig09-08.jpg

Figure 9-8.  Stories progress report

The unplanned work (Figure 9-9) report is useful when the team plans an iteration by identifying all work items that they intend to resolve or close during the course of the iteration. The work items that are assigned to the iteration by the plan completion date of the report are considered planned work. All work items that are added to the iteration after that date are identified as unplanned work.

9781430243441_Fig09-09.jpg

Figure 9-9.  Unplanned work report

MSF for CMMI

Most of the same reports are available for MSF for CMMI as for MSF for Agile so we will not cover them again. There are, however, some different reports:

  • Requirements progress report
  • Requirements overview report

The requirements progress and overview reports list all requirements, filtered by product area and iteration in order of importance. You will see how much work is planned and how much is still left, very much like the user stories reports from MSF for Agile.

image Note  The reports in this section are mapped to the particular process template it supports. If you find a report you like, it is possible to customize it to work with another template. In Chapter 32, we describe how to customize an existing report to do this among other things.

All the reports for all process templates that we have described in the preceding section will help you through the development projects, giving you the information you might need when you need it based on the project management process you have chosen. If you have customized your process, you need to make sure the reports are updated as well.

Custom Reporting

The reporting capabilities in TFS give you access to most of the information you manage in your ALM process. In the previous section, we showed how standard reports give you metrics for your project at a general level. By customizing, extending, and creating new reports, you can really get the intelligence to know what works well in your projects and what does not.

In this section, we will go through the relevant data warehouse models which you can use to create custom reports for project management. Understanding of these models is essential if you want to be able to gather metrics for your reports, so we recommend spending some time investigating the models.

image Note  In Chapter 32 we will look at the details of reporting in TFS, including how to create custom reports based on the data models described in the following section.

Data Warehouse Model

The data warehouse for around-project management is mostly work item data and relationships to information such as associated changesets and test results. In the following sections, we will look at how these tables can be used to give current information as well as data1 for trend analysis.

Current Work Item Tables

You can use the current work item tables to query for data about the current states of requirements, bugs, tasks, and other work item types.

9781430243441_Fig09-10.jpg

Figure 9-10.  Current work item data model

Work Item History Tables

The work item history tables give information about historical data about the different work item types. You can use these tables if you want to create a report on how a field has been changed over time (for auditing purposes, for instance) or to create progress and burndown charts.

9781430243441_Fig09-11.jpg

Figure 9-11.  Work item history data model

Work Item Link History Tables

You use the work item link tables to query for relationship information from the work item warehouse, for instance if you want to create a report over the status of tasks for a give product backlog item.

9781430243441_Fig09-12.jpg

Figure 9-12.  Work item link history data model

Work Item Category Tables

These tables can be used to query for data about work item categories.

9781430243441_Fig09-13.jpg

Figure 9-13.  Work item category data model

Work Item Changeset Tables

The work item changeset tables give data about the links between work items and files checked in to version control.

9781430243441_Fig09-14.jpg

Figure 9-14.  Work item changeset data model

Work Item Test Result Tables

You use the work item test tables to query for work item data related to test results, for instance to get a report on which requirements have been tested and the outcome of the tests.

9781430243441_Fig09-15.jpg

Figure 9-15.  Work item test result data model

Assessment Questions

In order to help us evaluate an organization’s maturity in different ALM areas, Microsoft has developed their ALM assessments, which may be read about in Chapter 4. Based on the score of the assessment, we receive a maturity level for a specific area. There are four levels:

  • Basic, which means that the organization has brittle, disparate applications and platforms. Much is homegrown and processes are not documented. Much is performed ad hoc.
  • Standardized, which means the organization has standards-based flexible business applications. Processes are starting to come into place but not every department follows them.
  • Advanced, which indicates more adaptive application platform driving core applications and business processes. Here, processes are followed and maintained, best practices are used; this is what most companies might strive for.
  • Dynamic, which is a fully dynamic application platform. Very few companies reach this level, but maybe it is not necessary to either.

So, based on the score, you can help the organization reach the maturity level they need for these areas. The following table (Table 9-1) list questions that can be used as a basis for an ALM assessment in the project management planning phase. These questions are taken from the online assessment. Keep in mind that some of these questions are asked based on a Waterfall approach to development. These are useful questions no matter if the organization uses an agile method or not.

Table 9-1. ALM Assessment questions

Area Sample question Discussion
IT Governance Maturity Are IT governance frameworks (such as ITIL, CobiT 4.1, ISO17799) known and applied by the company? What you want to find out with this question is if the organization uses a structured IT governance Process. If they do not have that, then maybe you need to look into that in your ALM improvement project.
Application Portfolio Management Is the customer’s business case known and is it being delivered? This is important to have. If you are planning an agile process implementation, make sure that the product owners are aware of the outcome of any improvement in this area.
Is there a consistent enterprise directive on how to align the vision of a project to business needs? Really important to any successful project. Pay attention to the customer’s business needs and see how they can map onto the ALM vision.
Are any KPIs defined? A product owner should have this information available for projects.
Do existing tools roll up into a broader IT Portfolio Management solution? If not, suggest using Microsoft solutions for this.
Compliance Management Are compliance requirements identified and tracked by accountable resources within the enterprise? This is not only an important question during an ALM assessment but also good input for the development team when it creates its definition of “done” (DoD) together with the product owner. Having a good definition of “done” is essential for all development processes, not just for Scrum.
Requirements Elicitation Does a “vision” document exists to guide requirements? Having some kind of vision of projects is always good. Formalizing it by using a vision document might not be necessary. However, it is essential that the team shares the stakeholder’s vision.
Is UML (or similar) used?
Are tools to standardize the capture and sharing of customer requirements in place? Suggest that the customer can start using TFS and PowerPoint Storyboarding.
Requirements Analysis Are modeling techniques used to extract product requirements from customer requirements? Inquire whether there are modeling techniques in place that could be used to help the organization get started with storyboarding, for instance.
Are formal user acceptance tests used? The answer to this affects the definition of “done.”
Requirements Management Are requirements updated as they change? If not, this is definitely something that most organizations would benefit from.
Do you capture requirements in an artifact (for example, use case, user story, wireframe, acceptance criteria, etc.)? If not, the customer needs help gathering requirements. Discuss with them and find out the best way to help them with this.
Are you able to adjust to the changing requirements of the customer? If not, this is definitely something that most organizations would benefit from.
Do you manage requirements using a tool? If not, help the customer and suggest using TFS for this.
Traceability Is there traceability between requirement and product? Traceability is a cornerstone in ALM. This is important, so do not let this question slip.
Project Initiation Does the customer have a project champion or owner, and are they actively involved? In an agile process, this is important. The product owner needs to be involved always. If the customer does not have this, help them realize why this is important.
Are methodologies and best practices being followed? Most companies have processes and methodologies but many times they are not followed. Discuss and show the benefits of automating the processes using a tool like TFS.
Do team members have access to project documents and plans? Transparency is important and is emphasized is the agile communities.
Is project management based on a formal methodology? If the organization has no methodology, discuss with the customer and find out what process will benefit them the most.
Project Planning Is the project plan complete and does it reflect reality? Sounds really Waterfall to us. Planning is good, but if the plan does not change when reality changes, then what good is it? Discuss and suggest improvements.
Is formal resource estimation used?
Is the project’s vision and scope well defined and understood and does it map to the business problem?
Are project budgets formally approved?
Is project documentation versioned and archived? Here, we readily suggest using TFS and SharePoint to improve this.
Are the internal success factors known and understood?
Project Monitoring and Control Is project status tracked against the project schedule? If you go for an agile approach, please discuss the metrics in TFS, like the burndown chart and other reports.
Are metrics used to manage the project? Again, this is something that TFS can help the organization with. Discuss needs and suggest a way forward using TFS and maybe some custom reports.
Are all deliverables clearly defined and updated? TFS certainly helps with this.
Are there unexpected changes in personnel? Aren’t there always?
Do individuals work on several projects concurrently, often switching between them during any given week? If this is the case, the customer will benefit from assigning individuals to one project at the time. This can sometimes be hard, but the context switching between projects takes its toll on productivity.
Is status reporting largely automated? Here is another area where TFS will help the customer.
Is the customer able to make decisions in a timely way? A development team needs to have answers to questions, and it is essential that the product owner is able to make decisions quickly.
Is the customer able to provide information in a timely way? A development team needs to be able to answer questions quickly.
Are risks known and actively managed? Risk management is essential. Ad hoc solutions rarely work. So, suggest that the organization use either Scrum, where risks are assessed and mitigated constantly, or another good risk mitigation strategy.
Is risk assessment carried out regularly? Here, we always argue that by using an agile method you will manage risk constantly.
Stakeholder Management Are all the internal stakeholders known when a project starts?
Are the external stakeholders known when a project starts?
Project Close Have all the deliverables been formally accepted? Do the outputs match the defined acceptance criteria? Here is another question where the suggested answer could be to have a good definition of “done” in place. Fulfilling the DoD means that the output matches the defined acceptance criteria.
Has a post-project review been held? Have lessons learned been identified, documented, and shared/published? Doing a retrospective after a project or after a sprint is a good way to learn how to improve for the next project or sprint.
Has all the project documentation been archived? Use TFS and SharePoint.

These tables also feature some input from us for some questions. We have chosen not to comment on all questions but will focus on some of the most important ones for each area.

Summary

In this chapter, we have looked at the concepts of metrics and assessment for agile project management. We have seen how you can use TFS to retrieve information for KPI assessment and also how you can see the project status using standard reports from TFS.

We have also shown how many of the assessment questions from the Microsoft online assessment can help us plan for successful implementation of project management practices.

The next section of this book will cover the architecture and design topics of development using TFS.

1 If “data” not correct here, please clarify “as well as date for trend analysis.”

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.205.214