Define the Initial Areas and Iterations in the Classification Plug-in

You define classifications to facilitate tracking, grouping, and reporting on work based on useful categories, such as related product features and project milestones. You define areas to organize work items into logical, physical, or functional categories. You define iterations to group work items into milestones or time cycle categories. For example, a team could organize the product work into a client area, a server area, and an extensibility area. Iterations that you define determine how many times the team will repeat a particular set of major activities, such as plan, develop, and test.

The classifications that you define appear in the Areas and Iteration dialog box for the new team project, as the following illustration shows. You access this page from the Team Web Access administration pages. To open this page, go here.

Areas and Iterations

After a team project has been created, you can use any client application for Team Foundation to modify the areas and iterations. You can also define permissions to control access to a project area or iteration. For guidelines and naming restrictions that apply to classifications, see Create and Modify Areas and Iterations. For information about the fields that track areas and iterations, see Areas and Iterations Field Reference

In addition to areas and iterations, you specify the mapping file for Microsoft Project to upload within the Classification plug-in.

Important

By default, process templates for Microsoft Solution Framework (MSF) define no area nodes and three iteration nodes, which are named Iteration 1, Iteration 2, and Iteration 3. The iteration nodes are referenced in the definition of work item queries, and the tasks are defined in the WorkItemTracking and Portal plug-ins.

In this topic

  • Classification Plug-in Name and Location

  • Classification Tasks and Dependencies

  • Specifying the Initial Product Areas

  • Specifying the Initial Iterations

  • Specifying the Microsoft Office Project Field Mapping File to Upload

  • Classification Plug-in Element Reference

Classification Plug-in Name and Location

The following table lists the name of the file, the folder, and the plug-in for the process templates for Microsoft Solutions Framework (MSF):

File name:

Classification.xml

Folder name:

Classification

Plug-in name:

Microsoft.ProjectCreationWizard.Classification

Note

You can change the names of the XML file and the folder but not the plug-in. Team Foundation Server does not include a mechanism for the deployment of client-side plug-ins, policies, or other modifications. If you want to deploy this kind of functionality, you must use your own distribution and installation program.

Back to top

Classification Tasks and Dependencies

The Classification plug-in file must conform to its schema definition, as specified in the Css.xsd file, and the plug-in must be specified in its own file. You can download the schema files for process templates from the following page on the Microsoft website: Process Template and Work Item Schemas for Visual Studio Team Foundation.

In the XML file, you specify one or more tasks and their dependencies. In general, you only need one task to specify all the iterations and nodes that a team project requires.

Note

If you modify a process template's areas or iterations, make sure that you do not break any assignments that are used for work item queries or work items that are defined in the process template. For example, the Iteration1Backlog.wiq work item query for the MSF process template for agile software development references Iteration 1. For more information, see Add Work Item Queries to a Process Template.

Back to top

Specifying the Initial Product Areas

You specify the root node of areas by using the following syntax:

<Node StructureType="ProjectModelHierarchy" Name="Area" >

You specify zero or more children nodes for as many areas as you want for your process. You use the Node element to specify each area, and you set the StructureType attribute to ProjectModelHierarchy.

<Node StructureType="ProjectModelHierarchy" Name="NodeName" ></Node>

The following example shows how to specify two areas, Client and Server:

<?xml version="1.0" encoding="utf-8" ?>
<tasks>
   <task
      id="UploadStructure"
      name="Creating project structure"
      plugin="Microsoft.ProjectCreationWizard.Classification"
      completionMessage="Portfolio project structure created.">
      <taskXml>
         <Nodes>
            <Node StructureType="ProjectModelHierarchy" Name="Teams" >
               <Children>
                  <Node StructureType="ProjectModelHierarchy" Name="Client"></Node>
                  <Node StructureType="ProjectModelHierarchy" Name="Server"></Node>
               </Children>
            </Node>
         </Nodes>
      </taskXml>
   </task>
</tasks>

Back to top

Specifying the Initial Iteration Paths

You specify the root node for iterations by using the following syntax:

<Node StructureType="ProjectLifecycle" Name="NodeName" >

You specify zero or more children nodes for as many iterations as you want for your process. You use the Node element to specify each iteration, and you set the StructureType attribute to ProjectLifecycle.

The following example shows how to specify four iterations: Milestone 1, Milestone 2, Beta, and RTM.

<?xml version="1.0" encoding="utf-8" ?>
<tasks>
   <task
      id="UploadStructure"
      name="Creating project structure"
      plugin="Microsoft.ProjectCreationWizard.Classification"
      completionMessage="Team project structure created.">
      <taskXml>
         <Nodes>
            <Node StructureType="ProjectLifecycle" Name="Iteration" >
               <Children>
                  <Node StructureType="ProjectLifecycle" Name="Milestone 1"></Node>
                  <Node StructureType="ProjectLifecycle" Name="Milestone 2"></Node>
                  <Node StructureType="ProjectLifecycle" Name="Beta"></Node>
                  <Node StructureType="ProjectLifecycle" Name="RTM"></Node>
               </Children>
            </Node>
         </Nodes>
      </taskXml>
   </task>
</tasks>

Back to top

Specifying the Field Mapping File for Microsoft Project

You specify the file that contains the field mappings for Microsoft Project in the properties section of the Classification.xml file. You use the property element to specify the file to upload, which is labeled FileMapping.xml for MSF process templates. This file contains the mappings between fields in Microsoft Project and fields in Team Foundation. This file is uploaded to the database for the team project. The following example shows the syntax structure for this entry:

<properties>
   <property name="MSPROJ" 
             value="Classification\FileMapping.xml" 
             isFile="true" />
</properties>

To customize this file, see Map Microsoft Project Fields to Team Foundation Fields.

Back to top

Classification Plug-in Element Reference

The following table describes the elements that you use to define the initial product areas and iterations. You specify these elements within a taskXml container element in the Classification plug-in file. For information about this element, see Define the Tasks to Process a Plug-in.

Warning

The Css.xsd schema file does not define the property or properties elements. When you upload the process template, the Process Template Manager validates these elements before storing them in Team Foundation Server.

You define areas and iterations by specifying a tree path of nested nodes and children nodes. For more information, see Restrictions on Area and Iteration Paths.

Children

<Children>
    <Node> . . . </Node>
</Children>

Children is an optional child element of Node.

Contains the definitions for children areas or iterations.

Node

<Node StructureType="ProjectLifecycle | ProjectModelHierarchy" Name="NodeName">
   <Node> . . . </Node>
   <Children> . . . </Children>
</Node>

Node is an optional child element of Nodes and Children.

Defines the structure of the tree. Use ProjectLifecycle for iterations and ProjectModelHierarchy for areas. Node names should not exceed 255 characters.

Nodes

<Nodes>
   <Node> . . . </Node>
</Nodes>

Nodes is a required child element of taskXml for the Classification plug-in.

Contains the area and iteration definitions.

properties

<properties>
   <property />
</properties>

properties is a required child element of taskXml for the Classification plug-in.

property

<property name="property name" value="Classification\FileName" isFile="true | false" />

Where the following definitions apply for each attribute:

  • name: Required. Defines the name of the property. The only valid name is MSPROJ.

  • value: Required. Defines the relative path to the field mapping file.

  • isFile: Optional. Specifies whether the property is defined in a file. If the value is true, the file must exist, or process template validation fails.

property is a required child element of properties.

Defines project-related data such as the XML mapping data for Microsoft Project.

Back to top

See Also

Concepts

Create and Modify Areas and Iterations

Customize Functional Areas within a Process Template