Getting Started with Iteration Planning
Summary
The Agile Planning component provides a new way to assist you with planning and executing development iterations. Because iteration planning is based on work items targeting a certain iteration, planning becomes interactive, live and fun.
Introduction
Teams following agile software development methods typically divide their release schedule into a series of fixed-length development iterations of two to six weeks. Planning involves scheduling the work to be done during an iteration and assigning individual work items to members of the team. To be effective and to reflect the team’s position and direction, plans need to be accessible to everyone on the team and to change dynamically over the course of the iteration. The Agile Planning component provides tools to assist you with the planning and execution of development iterations. The approach is simple: Iteration plans are derived from work items matching certain criteria. Considering iteration plans as a set of work items gives the following useful characteristics:
- Plans are live:
- Changing work items changes the plan. Closing a work item marks the work item as done on the plan, without need for further explicit actions.
- Changing the plan changes the corresponding work items and vice versa, or creates new ones.
- Plan structure is dynamic. An iteration plan can easily be regrouped by owner, work item category, work item duration or any other criterion that is available on work items.
- Plans are available to everybody on the team.
The purpose of this document is to help you get started using the Rational Team Concert Agile Planning tooling and its user interfaces like the Iteration Plan editor, the My Work view, the Team Load section, and the Work Environment page of the User editor.
Prerequisites
We strongly recommend to first read the following documents:
This document also assumes that a Jazz server has been set up and you have access to it. Because work items exist only in the context of a Project Area , you have to connect to an existing Project Area before creating any work item. You can use the Rational Team Concert JUnit Example Project wizard to create a sample database. To do so follow the steps in the Setting up the Rational Team Concert JUnit Example Project.
Creating a New Iteration Plan
- From the Java perspective, switch to the Team Artifacts view
- Expand the current project area an select the Plans item
- To launch the
New Iteration Plan
wizard, select New > Iteration Plan in the context menu - The New Iteration Plan wizard helps you to create an iteration plan. Choose a project area and team area to specify who owns the plan. Select an iteration to define which work items belong to the plan.
In the picture below all work items for the JUnit team area targeted for the iteration4.4rc0
are on the plan. - Press Finish to create the plan. The newly created plan will open after creation, however it is always accessible via the Plan folder in the Team Artifacts view.
It is essential that the process area owning an iteration plan defines meaningful iterations and categories. Use the Project or Team Area editor, to define iterations and work item categories. The picture below shows how to define a sequence of iterations with corresponding start and end dates. The Work Item Categories page of the same editor allows you to define work item categories.
See also the sections Project Area Editor and Specifying Start and End Dates for Iterations in the Getting Started with Jazz Project Areas and Process document.
Note that you may create an iteration plan for iterations without start or end dates. However, without start and end dates it cannot determined if a team is ahead or behind its scheduled work. Progress computation will be based on the number of open and closed work items which is usually less significant.
The Iteration Plan Editor
The iteration plan editor provides support to manage three different kinds of information:
- Context information like important dates or high level dependencies to other components. This information is captured on the Overview page in an unstructured way using an artifact-aware text editor. Users can include links to work items, iteration plans or work item queries. Other information relevant for an iteration plan like test plans or retrospectives can be captured on additional attached pages.
- The actual work in terms of work items planned for this iteration. Planning the work is done using the Planned Items page.
- Progress information to see if the team is on track and will hit the iteration target. The iteration plan progress can be tracked using the progress bar in the iteration plan editor’s header on using the progress bars on the group folders. In addition a progress trend can be seen using the Charts page.
To open an iteration plan, double click on it in the Team Artifacts view or choose Open from its context menu. The picture below shows the Overview page of JUnit component’s 4.4 plan:
Overview Page
The Overview page provides an artifact-aware text editor to capture unstructured information. To edit the Overview page, turn it into edit mode by pressing the Edit button in the local tool bar. The editor supports a wiki-syntax which supports commonly used commands for headings, text styles, links, listings and tables. For reference check the following quick guide, the text editor’s content assist (Ctrl+Space
), or the Wikicreole webpage.
= Heading 1 == Heading 2 === Heading 3 ... ====== Heading 6 | Heading 1Heading 2Heading 3…Heading 6 |
* Bullet 1 ** Bullet 1.1 *** Bullet 1.1.1 |
|
# Numbered 1 ## Numbered 1.1 ### Numbered 1.1.1 |
|
**bold**, //italic//, __underline__, --strike-through-- | bold, italic, underline, strike-through |
red##text color##, ##background color##blue, yellow##text & background color##blue | text color, background color, text & background color |
[[Defect 9]] | Defect 9 |
[[Defect 9|Click here!]] | Click here! (Work Item link with custom label) |
Additionally, artifact links are created by dropping a work item, iteration plan or work item query onto the editor. Alternatively, work item links can be created by enclosing their name and id in double square brackets, or by using the Insert Work Item Link action from the context menu. To create a new work item, select some text and run the Extract Work Item action. This will create a new work item having a summary containing the selected text. The target iteration and category are set according to the iteration plan.
Planned Items Page
The Planned Items page lists all work items that match the team area and iteration specified for the plan, e.g. all work items in the JUnit team area targeted for 4.4 m2:
New work items can be added to the iteration plan in several ways:
- By altering a work item in the Work Item editor so that the team area and target iteration match the iteration plan’s target iteration
- By dragging a work item form the Work Items or the Team Artifacts view onto the iteration plan
- By creating new work items directly in the Planned Items page by either executing the Add Work Item action from the context menu or by pressing
Ctrl+Enter
when an element is selected. This will create a new work item below the current selection.
The Planned Items page also supports in-place editing of work items. To change the work item type, estimate, priority or owner of a work item click on the corresponding icon. A context menu pops up offering the appropriate values to set. To edit the summary of a work item, press Alt+Enter
or select Edit Summary from the context menu. In addition work items can be assigned to adifferent iteration, category or owner using similar actions from the context menu.
Work items can be arranged into a hierarchy to decompose larger work items into smaller work units. Creating a hierarchy can be done in three ways:
- By dragging the child work item onto its future parent
- By pressing
Tab
which will make the selected work item a child of its visual sibling above - By using the actions from the context menu.
To filter the information presented in the Planned Items page use the corresponding show and exclude actions from the page’s sidebar. The sidebar also offers actions to sort and group the work items. Further actions are available to easily reach the backlog for a component, unplanned closed work items (these are work items which were marked as resolved during the iteration but do not have the target set) or next iteration plans.
See Effective Iteration Planning for a more detailed discussion about the Planned Items page.
Charts Page
Depending on the used process the Charts page shows a chart of the done work. For a project following the Scrum process the chart is a burn down chart, for a project following the Agile process the chart plots closed versus open work items.
Note that this page may not be available, depending on your license and the Jazz server edition being used.
Additional Pages
To capture additional information such as a test plan you can add additional pages to an iteration plan. Press the Add Page button in the local tool bar to create a new attached page. These pages provide the same editing capabilities as the Overview page does. The picture below shows the JUnit plan and the dialog to create a new attached page to capture a test plan.
Progress and Load Bars, and why estimating your Work is important
The Agile Planning tooling features two different kinds of bars: Progress Bars and Load Bars. They provide information about the work load of team members, help to distribute incoming work and help to track the progress on different work item groups.-
Load Bars show how much work is assigned to a user and whether she is likely to complete her assigned work or not. Work load information is displayed in the Team Load section, the owner mode of the Iteration Plan editor and the My Work view. A load bar shows the following information:
- The ratio of remaining work time and upcoming work (horizontally)
- The percentage of estimated open work items (vertically)
The load bar in the picture above shows a situation where the upcoming work exceeds the remaining work time. The user is overbooked by 13 hours, resulting in a partly red bar. The status label shows the corresponding numbers: ‘101 hours of upcoming work versus 88 hours of remaining work time’. All work items have been estimated: Estimated: 100%.
-
Progress Bars reflect the progress of a team, a user, or other grouping elements (work item tags, work item categories, …). They can be found in the iteration plan header and on the group elements of the planned items page. A progress bar shows the following information:
- The ratio of resolved and total work, and, if iteration information and work assignment are available, a projection of the earlier ratio onto the ratio of spent work time versus total work time (horizontally)
- The percentage of estimated open work items (vertically)
The picture above shows a progress bar with projection. It is read as follows: ’24 out of 59 work hours are done’ and, taking into account the total and spent work time, ‘you are ahead by 4 hours’ (visualized by the bright green rectangle). Again, all work items are estimated (Estimated: 100%).
In both bars the percentage of estimated open work items is visualized. This is because load and progress bars derive their information from work item estimates. For example, upcoming work is the sum of estimates of all open work items. The same is true for progress bars and resolved work. Hence, the more work items are estimated, the more accurate these values are. To visualize the importance of estimates, the percentage of estimated open work items is drawn as a fill level. A bar grows in height, revealing more of the actual load or progress information, when more work items are estimated. For more information see: Explaining Progress and Load Bars, and why estimating your Work is important.
Team Load Section
The Team Load section is part of the Team Central view and provides information about the work load of a team for an iteration. Its purpose is to reflect the individual work load of each team member and assist in distributing work among team members.
Open and Configure the View
The default layout of the Team Central view already includes the Team Load section. When customizing other Team Central layouts, the Team Load section can be added from the view menu. Use the Sections > Team Load context menu action. To show the Team Central view, you can either switch to the Work Items perspective or choose Window > Show view > Team Central.
Configuring the Team Load section is easy. Drag a team area or an iteration plan onto the Team Load section, or choose a team area and an iteration using the configuration dialog.
Note that you can either explicitly set an iteration (e.g. 4.4 m2
) or configure the Team Load section to stick to the current iteration. When dropping a team area, the current iteration is used, when dropping an iteration plan, the plan’s team area and iteration is used.
Distributing Work among Team Members
If you are a team lead, you can use the Team Load section to distribute work items among your team members. It does not only tell you the work load of each team member, you can also assign work items to a user by dragging them onto the corresponding bar. Use the different ‘Show’ context menu actions to query the work items assigned to a particular user or to list her recent or current work. Furthermore, from the section’s open action you may open or create a corresponding iteration plan.
The My Work View
We saw that the Iteration Plan editor assists a team in planning work for an iteration. In contrast, the My Work view assists an individual developer who works on one or more iterations, e.g. development and maintenance.
In particular, the My Work view helps you organizing your work:
- By providing a view on all the work items you own.
- By assisting you in creating and maintaining reasonable personal plans for the current iterations.
- By putting your current work plan at your fingertips while you are working.
- By showing your newly assigned work in an inbox.
- By keeping you up-to-date, showing changes to owned work items.
- By helping you find relevant work items using a powerful filter mechanism.
- By offering an easy way to create tasks for yourself – always in context.
- By managing not yet planned work or work items targeted for future iterations.
- By making your work plan automatically visible to the team.
Open and Configure the View
The view is available by default in the Java perspective. Additionally, it can be found in the Work Items category of the Show View menu.
The My Work view is scoped to a project area. If you are connected to more than one project area, you need to select one before being able to use the view. In case you have only one repository connection, it will be selected by default. You can always change the project area context later, use Select Project Area… from the view’s setting menu. Other than that, no configuration is necessary.
While it is not necessary to create iteration plans in order for the My Work view to work, iteration plans and this view are closely related. The contents of your My Work view will automatically be visible to the team using the relevant iteration plans.
Basics
The My Work view consists of three sections:
- Inbox: Work items that were newly assigned to you by someone else show up in this section.
- Current Work: Work items planned for a current iteration are shown in this section. The planning can be refined by specifying the sequence with which you intend to resolve your work items.
- Future Work: Work items planned for a future iteration as well as incomplete work items planned for a past iteration are shown in this section. The work items are grouped by iterations.
The My Work view shows a concise label for each work item, including only the most important information such as its work item type, its summary and the work item id. To open a work item in the work item editor, double-click the work item, press enter while it is selected, or click the work item ID next to the summary.
It is possible to edit some of the work item’s attributes, such as the estimate, the priority and others, directly inside the My Work view. Changes applied to work items within the My Work view, including estimating and planning, will be automatically saved after a short delay if the modified work item is not being modified in another editor. By deselecting Automatically Save Changes in the view’s menu, no changes are saved automatically anymore. All modified work items in the My Work view can be saved at any time by pressing the save button in the view’s tool bar.
Planning the Current Work
The My Work view helps you planning a current iteration. It allows to specify the order with which work items are resolved. You can think of your incomplete work items as a working list where you start at the top and work your way through to the bottom. At any time you can insert new work at any position in your working list, rearrange the order or remove work.
By estimating work items, you enable the My Work view to calculate the projected time you will be able to start working on any work item in your working list and the time you will be completing it. The planned time is calculated by accumulating the estimates of the preceding work with respect to your working hours and absences. When adding new work items into your working list, the planned time of the inserted and subsequent work items are updated immediately.
If you choose not to estimate work items, a default estimate of zero work hours per work item is assumed. This, of course, reduces the accuracy of your plan considerably; this is why the My Work view warns you about planned but not estimated work items.
You can estimate work items directly within the My Work view. Clicking on the estimate icon will pop up a menu with a set of predefined estimates and a More… action to specify the estimate in a dialog. Alternatively, you can estimate work items in the Work Item or Iteration Plan editor.
Managing your work, such as adding, rearranging or removing work items, is possible by using Drag’n’Drop or the Plan for context menu action.
All your work, planned for the current iteration but not yet added to your working list, is grouped together in the Imprecisely Planned Work group. Work items in this group are sorted by priority or modification date.
Inbox
Work items that are newly assigned to you by someone else are first shown in the Inbox section. This section helps you to be aware of new incoming work.
Just select Accept in order to accept the work and show it in the Current Work or Future Work section, depending on which iteration the work item is currently planned for.
See Making best use of the My Work view for a more detailed discussion about the My Work view.
Configuring your Work Environment
We have already seen how iteration plans are created and managed using the Iteration Plan editor, how the Team Load section is used to load balance the work between team members and how the My Work view is used to plan your individual work. Until now, we have employed the Agile Planning tooling using some reasonable assumptions about your teams work capacity and yours as well. If not otherwise configured, all agile planning tools use a standard work week consisting of five days per week with a working time of eight hours per day and a fixed work end time.
In order to improve the accuracy of your planning activities, the User editor provides several features to better describe the way you work.
Scheduled Absences
Creating and managing scheduled absences helps the agile planning tools in automatic planning of work items during the current iteration:
The Iteration Plan editor shows the scheduled absences in Planned Time group mode. The My Work view shows the scheduled absences in the Current Work section.
Work Days
Besides scheduled absences, the User editor allows you to customize your work days as well. This is particularly useful if you only work part-time or have an otherwise non-standard work week.
Having your work days specified in the User editor helps to further improve the planning accuracy.
Work Assignments
Most developers do not only work for one team, they work in different teams and possibly on different development lines as well. The Agile Planning tooling offers the user to exactly specify work resources assigned to a particular team and development line combination:
The User editor will automatically distribute your work resources evenly over all team areas and development lines you are working on. If the distribution does not match your actual assignments, you can redistribute among the work assignments.
Work Location
You can also specify time zone and regional settings to match your current work location:
This information will help the Agile Planning tooling to use correct calendar information while planning your work.
Scheduled absences, work assignments and work week specifications are accounted in the entire Agile Planning tools, including the Iteration Plan editor, the My Work view and the Team Load section.
Browsing Iteration Plans in the Rational Team Concert Web UI
The Agile Planning tooling provides a read-only web user interface which can be used to browse iteration plans without having Rational Team Concert installed. The Agile Planning web user interface is the preferred place if you would like to:
- Quickly get an overview about all currently relevant plans
- Browse an iteration plan (including the Overview page and other attached patches) without having to start Rational Team Concert
- Tracking overall progress over several teams and development lines
Browsing Iteration Plans
To start browsing any iteration plans, go to the Iteration Plans site of the Rational Team Concert web page. The page initially loads an overview of all current iteration plans.
Use the links in the left navigation section to show your relevant iteration plans or to get an overview about all available iteration plans. If you would like to come back to an iteration plan you have already browsed, you can use the links in the Recently Viewed navigation section to quickly reopen it. As an alternative, you can also use the search box in the top-left corner of the Iteration Plans page to find iteration plans containing certain text in its name or associated iteration.
Displaying an Iteration Plan
Iteration plans are displayed in a web-based editor. However, editing plans in the web user interface is not supported by the Agile Planning tooling. The Iteration Plan allows to access the Overview page, the Planned Items page and, depending on your user license and Jazz server edition used, the Charts page.
The Overview page of an iteration plan contains context information like important dates or high level dependencies to other components (see Iteration Plan editor section). It shows the same content as in the Rational Team Concert development environment.
The Planned Items page lists the work items planned for the associated iteration. The Planned Items page in the web user interface follows its counterpart in the Ration Team Concert development environment and provides support for grouping, filtering and displaying work items.
To open a work item in the work item Web UI editor click on the work item summary text of the ID link at the right. If you hover over any progress or load bars, the Iteration Plan editor shows additional information about the quality of planning in an information box.
Customizing the Agile Planning Tooling
The Agile Planning tooling allows you to define top-level work item types and specific settings of your project’s work environment. To do so, open the Project Area editor by selecting Open in the context menu of the Team Artifacts view.On the Process Configuration page select the Project Configuration > Configuration Data > Iteration Plans configuration data. This configuration data provides two options: Top-Level Work Item Types and Work Environment.
Top-Level Work Item Types
A top-level work item type denotes a work item type that covers more information than a single implementation task. Usually, such work items describe work units on a high level of abstraction and can be broken up into further tasks and child work items in general. In terms of planning, it is particularly important to track the progress of top-level work items, since they reflect the work to be done during an iteration in a condensed and high-level way. The Iteration Plan editor has special representations for these work item types to account for this. Instead of estimates, it shows the overall percentage of completed child work items. Top-level work items which are not estimated do not lower the quality of planning value (they are not counted as not estimated) because the real work usually happens in child task which will be estimated instead. In the Folders group mode, top-level work items reside in the Top Items group.
Any work item type can be selected to be a top-level type in the Project Area editor.
Work Environment
The User editor allows every user to define its own work environment, including work days, work assignments, and absences. If users do not customize their work environment, a default work environment is used. This default work environment can be edited using the Work Environment configuration option. You can set the work hours per day and the work days per week you normally work.In addition the work environment values will be used to normalize estimate values entered in the Work Item editor, the Iteration Plan editor or the My Work view. So the value
1 w
equals in hours work days per week multiplied by work hours per day as specified in the work environment project settings.