How Visual Studio Team System Supports the Project Management Role


First, we should remind ourselves of the range of responsibilities that project managers have on a project. The Project Management Book of Knowledge, or PMBOK, defines project management as follows (from A Guide to the Project Management Book of Knowledge, Third Edition):

Project management is the application of knowledge, skills, tools, and techniques to project activities to meet project requirements. Project management is accomplished through the application and integration of the project management processes of initiating, planning, executing, monitoring and controlling, and closing. The project manager is the person responsible for accomplishing the project objectives.

Managing a project includes:

  • Identifying requirements

  • Establishing clear and achievable objectives

  • Balancing the competing demands for quality, scope, time, and cost

  • Adapting the specifications, plans, and approach to the different concerns and expectations of the various stakeholders.

I think it’s plain to see that virtually every project should have a project management role. In fact, the role of a project manager is very important even in agile rooted methodologies, and arguably, this definition still holds true, even though the role of the project manager may be distributed across many team members or go by a different name.

Note 

Is the project manager a role or an individual? In this book, we refer to a project manager as a role instead of an individual on a team to stress that the responsibility of the project manager role can be shared by a number of people on a team depending on the team’s size and diversity.

Note 

In Scrum, the ScrumMaster is equivalent to the project manager. More specifically, the ScrumMaster is responsible for managing the Scrum process instead of simply specifying and managing work. In Extreme Programming, the project management responsibilities are managed by a number of roles: Developers, who own the schedule; the Tracker, who keeps track of the schedule; and the Coach, who guides and mentors the team.

Despite the methodology you choose to implement your software solutions, the project manager will be responsible for managing scope, time, cost, quality, people, communication, and risk. The project manager may also be responsible for tasks such as procurement and setting governance and process models for their teams. Figure 2-7 illustrates the project manager’s responsibilities.

image from book
Figure 2-7: The role of a project manager encompasses many areas and is key to project success.

With this in mind, let’s take a closer look at how Visual Studio Team System supports each of the just-listed project management responsibilities.

Standards and Governance

Part of a project manager’s role is to set up project standards and governance procedures under which the team will operate. Essentially, this is where the project manager declares one or more acceptable patterns that specify the way the team interacts to deliver software. The terms standards and governance are really quite daunting, especially to a software developer; however, the best way to think about the term standard is to correlate it with the term principles, which, in most organizations, are reflections of best practices and lessons learned collected by people who have solved similar problems. When a project manager sets up standards for a project, he or she is really choosing the best set of principles for the task at hand. Compare this concept with the job of a software architect. No single software architecture can be appropriate for every application ever conceived-the architect will choose the software architecture based on the constraints and conditions of the problem that needs solving. The same must be true for software engineering process standards. Governance is complementary to this concept. MSF for CMMI Process Improvement defines governance as “…utilization of resources through the control of time and money relative to the flow of value.” This means that the project manager must take the principles that guide the project and find a way to ensure that they are still effective and be ready and able to make changes when they are not.

One of the unique features of Visual Studio Team System is its ability to support process standards and governance declaratively. This is a fancy way of saying that the product was not built with any particular style of software delivery in mind, relying instead on process templates to help determine exactly how projects are to be delivered. Process templates are simply a bundle of tightly integrated XML files and supporting process documents and reporting definitions. Process template definitions are stored within Team Foundation Server and are used during the creation of a project. Figure 2-8 illustrates what Process Templates specify during this process.

image from book
Figure 2-8: Process templates specify virtually every aspect of a Team Project.

The areas of process templates that support standards and governance include:

  • Work item type definitions Each work item type specifies its own workflow and field rules that help guide team members through specific parts of the software engineering process. Work item field definitions also specify the metrics that will be stored within the Team Foundation Server data warehouse for project analysis and reporting.

  • Initial project areas and iterations Project areas and iterations specify ways that you can classify work within a project. Project areas are used to represent functional areas of the software you are building. Iterations are a way of assigning work items to segments of time throughout the project. Project managers can use these classifications to provide a structure for work classifications and reporting dimensions.

  • Default work items When you create a new Team Project, the process template can specify a number of default work items that will be created automatically. Default work items help ensure the repeatability of your processes by ensuring that important tasks are never forgotten.

  • Report definitions If there is one feature that project managers love about Visual Studio Team System, it’s reports, and more importantly, the underlying data warehouse that powers those reports. Visual Studio Team System works to instrument your process and exposes the results through numerous reports that project managers can use to make decisions. The reporting features are extremely important to governance, because some reports reflect the health and status of a project and provide a valuable continual feedback mechanism allowing a project manager to work more proactively.

  • Default Windows SharePoint Document Library structure and contents The Windows SharePoint Document Library can be prepopulated with project artifacts. Project managers don’t have to worry about having the correct templates because only the appropriate artifact templates will be placed in the store based on the type of methodology used to create the project portal site.

We will get a chance to further explore many of these features in Chapter 3.

Managing Team Communication

One of the most common aspects of a project manager’s role is the management of people, which involves forming, organizing, developing, and coordinating project teams. In fact, it has been said that the success of a project is more directly associated with the effectiveness of team communication than to any other factor, a fact that the Agile Alliance embraces in its Agile Manifesto, which is the source of many Agile software development methodologies. In many ways, a psychology degree is more applicable than any other degree when it comes to establishing good team communication; however, providing an effective communication medium is also important. In fact, Visual Studio Team System provides a number of important features that help to support communication management within teams.

First and foremost, project managers need to specify who has appropriate authority to do what on a project and to set the boundaries of how team members will interact with each other and with Visual Studio Team System. More specifically, Visual Studio Team System allows a project manager to configure the groupings, rights, and permissions of their team with respect to Visual Studio Team System activities. For example, the project manager may want to reflect the responsibilities of developers in the rights granted to them on a project, as shown in Figure 2-9. In Figure 2.9, developers are restricted from deleting test results, deleting the project, editing build quality levels, and editing project level information. In Chapter 3, we will explore how to configure project level groups and permissions for your team.

image from book
Figure 2-9: Project managers can set specific permissions to restrict the team to performing certain activities with Visual Studio Team System.

As we have previously stated, the work item is the heart of Visual Studio Team System. Project managers will use work items to communicate task assignments and capture issues, requirements, change requests, and risk within work items. Project managers also use features such as work item queries and Office Project and Office Excel integration to facilitate this task. More than likely, project managers will not be using Microsoft Visual Studio as their primary tool for managing projects. In fact, project managers will usually have only the Team Explorer installed and will use the Team Foundation Server work item integration features of Office Project and Office Excel, which all get installed along with the Team Foundation Client to manage specific tasks and assignments. Project managers will then be able to use familiar tools to help break down the project, assign team members to tasks, and get feedback on task level status and tracking. In Chapter 3, we will take a much closer look at how to work with work items, work item queries, and work item integration with Office Project and Office Excel.

A very important role of the project manager is to continually communicate information regarding the chosen software development process to their team. Projects within Visual Studio Team System are created based on a process template, which also provides information about the software methodology the project is based on, represented as process guidance. From a general perspective, process guidance is more like a software development methodology’s help system, which is accessed via a Web browser accessing the Visual Studio Team System project portal site for each project. Process guidance provides context, instruction, and details on the methodology associated with a given project and is used as a point of reference for all team members. More specifically, process guidance specifies the core principles and mindsets of the methodology in addition to details of team roles and work item types. This process guidance is accessible via a Web browser and can be accessed by using quick access points scattered across the Visual Studio Team Explorer navigation. Each project’s process guidance is located within the project portal that gets created for each Team Project. You will explore the details of Process Guidance in Chapter 3.

Managing Time and Money

Perhaps the most common questions asked of a project manager are, “Are we on time?” and “Are we on budget?” Data that answers these questions is gathered and represented in the form of the all-powerful status report. To create a status report, a project manager typically spends a considerable amount of time gathering status information from project team members based on assignments made within the master project plan. The project manager is then left with the responsibility of correlating this information and making the determination of overall project health, usually expressed in units of time and money. At any rate, consolidating and making sense of status is a time-consuming endeavor, especially when you think of how status reports are consumed. The details within a status report are rarely ever looked at in great detail unless a project is in trouble. In addition, the information within the status report is always a snapshot in time and is usually stale by the time it’s consumed.

image from book
Getting Accurate Status from Your Team

If you have played the role of a project manager for very long, you have likely realized how difficult it is to solicit accurate status information from your team. The typical responses from many developers to a status request include, “It’s almost done, all I have to do is test” or “I’m about 83 percent done.” Because of these types of responses, many project managers have changed their form of questioning to be something more like When will you complete your task? The project manager will then be left with the responsibility of determining whether slippage is occurring at the task level and what to do about it. This also suggests that knowing when a task needs to be complete is more important than knowing its progress.

image from book

Visual Studio Team System provides a number of features that can help a project manager answer time and money questions. The following list describes these features:

Integration with Office Project and Office Excel Office Project and Office Excel are considered essential tools for most project managers. Both products play an important role in helping the project managers break down the project and track ongoing activities. As already mentioned, Visual Studio Team System provides access to work items stored in Team Foundation Server from Office Project and Office Excel. Just as important, all of the rules, constraints, and workflow specified with a work item are enforced from within Office Project and Office Excel to help ensure data integrity and validation. Project managers are then free to use the management and analytical features of Office Project and Office Excel to help plan and track time and cost over a project life cycle while at the same providing the ability to work from the same information that rest of the team will use during the project.

Work item fields The type of work items you will see in a project is determined by the process template you use to create that project. For example, MSF for Agile Software Development includes Scenario, Quality of Service Requirement, Task, Bug, and Risk work items. Task items in MSF for Agile Software Development are the Bug, Change Request, Requirement, and Risk work item definitions. MSF for CMMI Process Improvement specify Completed Work and Remaining Work fields to help track expected and expended effort. In addition, Visual Studio Team System provides Office Project with mapping of fields such as Start Date and Finish Date and will automatically record actual completion dates for you based on the rules of the underlying workflow definition of each work item type.

Iterations Work items are generally assigned to project iterations that typically have a start and end date. You can track slippage by using reports or work item queries to query outstanding work items assigned to a past iteration. Essentially, you have the ability to ask the system questions such as, “What work items that were scheduled for iteration 3 didn’t get done?”

Reports Like work items, reports are specified in a process template used to create new Team Projects. The default process templates that ship with Visual Studio Team System come with a set of very powerful reports that help you understand the health and progress of your projects and are used most often to answer some of the truly difficult questions such as “What is the quality of your software?” “Will you be finished on time?” “Does the project have any constraints that may impede the delivery of the project?” and “How effective is the team?” Some of these reports can help project managers track expended time and effort on a project, helping to get a realistic view of how the project is progressing. One very important report is the Remaining Work report, which helps project managers answer the questions, “How much work is left?” and when will it be finished?” The Remaining Work report, as shown in Figure 2-10, represents a cumulative flow of remaining work measured across a particular dimension such as iteration. We will take a look at more reports and how to interpret them in Chapter 5.

image from book
Figure 2-10: The Remaining Work report

image from book
Visual Studio Team System as a Time-Tracking Solution

Many companies rely upon rigorous time tracking along with sophisticated timetracking software to track time spent on projects either for the purpose of billing customers or for gathering effort-based metrics. Even though certain work item types have fields for the measurement of effort, it should generally not be considered for a time-tracking system.

image from book

Managing Quality

Managing quality in the software industry has never been more important. Today, quality is used as a differentiator because the software industry as a whole has far fewer quality standards than other industries. This is not to say that quality isn’t important in virtually every industry-organizations that focus on quality can quickly change their position in the marketplace, providing a substantial edge over their competition regardless of the industry. In the software industry, however, because of the existence of really bad software and the problems it causes, the edge is greater. Quality is a mindset more than a task. You need to have welldefined processes with unanimous commitment from the entire team, including upper management. In addition, those teams that want to focus on quality must do so through the entire life cycle of a project, and it is up to project managers to constantly evaluate quality-control feedback. There are also considerable misconceptions around quality practices in the software industry from those who suggest that to achieve high quality, teams must sacrifice agility and overall velocity of development. However, reports such as “The Economic Impacts of Inadequate Infrastructure for Software Testing” created by the National Institute of Standards and Technology help to solidify the need for practices that enhance the quality of our software and our teams.

Quality of software has always been a difficult aspect to measure properly. Most organizations retrieve metrics from their bug-tracking software. However, one could argue that this is far from adequate because poor testing procedures that miss many defects give the impression that the software is bug free. Other organizations simply look at the quality of the project as it applies to time and money. Are we on budget? Are we going to meet our deadlines? The fact is there are many dimensions to quality that include quality of planning, performance of quality assurance activities, monitoring quality over the life of a project, and even quality of the software development team. Lack of attention to quality assurance practices can also lead to a great amount of uncertainty, which eventually manifests itself into slipped schedules, cut features, and team frustration.

image from book
Cost of Defects

A study ( http://www.nist.gov/director/prog-ofc/report02-3.pdf ) commissioned by the U.S. Department of Commerce’s National Institute of Standards and Technology (NIST) found that software defects cost the United States economy from $22 to $59 billion annually. The study found that about 80 percent of development funds are consumed by software developers identifying and correcting defects.

image from book

From a Project Management perspective, it is much easier to estimate time to conduct quality assurance activities than it is to guess the impact defects will have on a project. In the previous section, we looked at various tools provided by Visual Studio Team Edition for Software Developers and Visual Studio Team Edition for Software Testers that not only help developers write higher-quality code, but also allow developers and testers to more readily continually validate software as it’s being constructed. In fact, Visual Studio Team System provides quality-assurance benefits even before we write a single line of code, by providing enhanced designers and deployment validation–modeling tools with Visual Studio Team Edition for Software Architects.

Quality-assurance features can also be found in Team Foundation Server. For example, software testers can publish the results of tests to Team Foundation Server in association with a particular build of software. This information can be used to help measure the quality of each build represented through the many reports that ship with Visual Studio Team System. In fact, Team Build can also be responsible for automatically running tests, such as unit tests, code coverage analysis, and load tests, automatically during its operations. Team Build will also automatically publish the results of all tests, providing a painless approach to continual automated software testing.

Visual Studio Team System’s ability to support traceability between work items, test results, and builds also provides us with an important mechanism for helping to implement quality. When making changes to your system, it’s often important to understand what other areas are affected. Work item linking, also known as traceability, provides the necessary information to produce an impact analysis when change does happen.

Managing Scope

Scope relates to the functionality the team will be responsible for delivering over a certain time period. A project manager must be able to understand what the team is building in addition to the relative priority of each feature to be able to set priority and to construct a work schedule. Visual Studio Team System provides a number of features that will allow better definition, assignment, and tracking of project scope.

Work items shouldn’t surprise you as being key to tracking scope with Visual Studio Team System. Depending on the Process Template you chose to use to create your Team Project, you will be able to use work item types such as a Scenario, Quality of Service Requirement, Requirement, and Change Requests to help specify the functionality that your software solution should encompass. Most of these work item types provide you with the ability to set priority or rank on each feature to help you with prioritization. In addition, Team Project areas are an important means of classifying work items within Visual Studio Team System; they are used to help better group scope-related work items together under a hierarchy of feature categories.

There are also numerous reports that can be used by project managers to track scope-related data on a project. These reports can be useful in helping to determine whether scope should be cut in order to meet required deadlines. Reports such as Remaining Work and Unplanned Work are key when it comes to scope management.

Managing Risk

Following the process of risk management falls on the shoulders of every member of a team; however, the project manager takes ultimate responsibility. Even though every project is different, none of them is void of risks. A risk is any event or condition that jeopardizes any form of quality, from quality of schedule and cost to quality of product or team. Interestingly, risk is directly associated with uncertainty. This means that the higher the uncertainty of a particular area, the greater the risk of something going wrong or unplanned. It is up to the project manager, with guidance from the project sponsors, to balance risk management with productivity throughout the development process. There are many ways that you can deal with risk; however, the most effective way is to continually anticipate and track risk all the way through a project. As a project manager, you will work to continually identify major risks throughout the life of a project. After a risk has been identified, risks should then be classified and prioritized based on aspects of each risk such as impact or potential reach. Many project managers take this much further and identify mitigation, contingency, and the trigger for each risk. Risk mitigations are tasks that the team can perform to prevent the risk from occurring. A trigger is an event or a condition that signals that a risk has manifested itself into an issue and is causing work blockage or is impacting some other aspect of quality. Contingencies are tasks that the team can, after a risk trigger has been detected, mitigate the impact of the issue to the project and team.

The underlying premise to risk management, and at a higher level, the management of quality as a whole, is managing uncertainty. As stated in the “Managing Quality”“ section of this chapter, it is much easier for a project manager to estimate and plan for what they know compared to what they don’t know. That is, planning and executing risk-mitigation strategies is much more predictable than reacting to risk triggers and attempting to minimize impact through contingency activities. You can never really predict whether a risk will manifest itself as an issue; however, you can predict the effort required to prevent the risk. The Microsoft Solutions Framework (MSF) 3.0 proposes an evolutionary risk-management model that begins with risk identification and definition and then progresses through analysis, planning, tracking, and controlling, as depicted in Figure 2-11. This risk-management model is certainly not new, and it is supported by Visual Studio Team System out of the box in conjunction with the MSF for Agile Software Development and MSF for CMMI Process Improvement process templates.

image from book
Figure 2-11: The MSF Risk Management model

By default, Visual Studio Team System supports the risk-management process through process template definitions that specify work item types used to track risks and control the riskmanagement process and by defining work item queries that help project managers track risks throughout the duration of the software development life cycle. (Only MSF for CMMI Process Improvement includes a Risks work item query. Adding a customized work item query can be accomplished by using Team Explorer.) Specifically, MSF for Agile Software Development and MSF for CMMI Process Improvement process templates both include a Risk work item type. The Risk work item type definition within the process template specifies the fields and rules that will allow you to identify and determine risk and create the Risk management workflow itself, as depicted in Figure 2-12. This means that throughout your projects, you will be able to track risks through Risk work items and use work item queries to help track and monitor those risks as they move through the risk management process.

image from book
Figure 2-12: The workflow of a Risk work item specified within the MSF for CMMI Process Improvement process template

Summary of the Visual Studio Team System Impact

Even though Visual Studio Team System doesn’t have a specific product line dedicated to project managers, its impact on the project management role is significant. Here is a summary of those impacts:

  • Increases predictability and reduces variability of your software development projects by providing you with the ability to focus on quality-assurance activities throughout the development life cycle

  • Provides visibility into your software development life cycle

  • Bridges the gap between IT and Operations, mitigating many risks associated with architecture and deployment

  • Effectively manages distributed development team projects

  • Responds to changes in business quickly and effectively

  • Helps achieve greater levels of CMMI

  • Enhances project governance

  • Increases team productivity and collaboration during software development

image from book
Project Management Is Not Just About Managing

There is much more to being an effective project manager than having the ability to manage. In fact, in many ways, a project manager’s interpersonal skills will play an even larger role in the success of his or her position. Project managers must be effective communicators, demonstrate the ability to get things done, and they must be talented at developing and reinforcing a shared vision across the team and motivating a diverse team, which is sometimes very difficult with a large group of software developers. Project managers must also be able to negotiate and manage conflict. However, the most important skill for a project manager to have is the ability to solve problems creatively. In some ways, these skills make it difficult for anyone to grow into a project manager role, despite all the procedures and tools in the world.

image from book




Managing Projects with Microsoft Visual Studio 2005 Team System
Managing Projects with Microsoft Visual Studio 2005 Team System
ISBN: 735622167
EAN: N/A
Year: 2007
Pages: 93

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net