TargetProcess: User Guide
Iteration #Zero
— I want to try Scrum, should I start with an agile project management tool?
— No, you should not. Use basic tools first: whiteboards, sticky notes, markers. We recommend to learn agile first, then adopt a tool if you need one.
— When I really need a tool?
— If you have a distributed team (or many teams). It is really hard to adopt agile development without a web-based tool in this case.
Agile Development Processes
TargetProcess is an Agile Project Management software. You can't run a Waterfall project with it, but it fits perfectly to popular Agile processes like Kanban, Scrum, Extreme Programming and others.
It is really hard to define agile development process these days. Is it just a common sense process? Is there a set of principles to clearly distinguish between agile and not agile process? It's hard to say. To give you a brief overview, we will describe 2 most popular agile processes in this section.
Scrum
Scrum is the most popular iterative agile project management methodology in software development. Quite often Scrum is used with Extreme Programming engineering practices like TDD and refactoring for better results.

First, you need to create Product Backlog: a list of user stories or features you want to implement in the future.
Then you select a set of user stories to implement in the next Sprint (Sprint is the same as Iteration, it's a time box, usually of 1 to 4 weeks). The goal of the Sprint is to release a working software. Yes, it might be hard to release anything in 1 week, but it's possible. Some companies do daily releases. It seems to be a miracle, but it's true.
There are some practices that help run Sprint.
- Daily meetings where team members answer the following questions: What have you done since the last Scrum meeting? What has impeded your work? What will you do between now and the next Scrum meeting?
- Burn down chart shows sprint progress and it is the only tool in Scrum to track development.
At the end of the Sprint development team releases software and run Retrospective meeting to discuss problems and brainstorm process improvements.
— Michael James
Kanban
Kanban visualizes the development flow and clearly shows bottlenecks. You can start Kanban process in 3 steps:
- Visualize development flow via Kanban Board (use whiteboard or a wall to setup Kanban Board).
- Put user stories on Kanban Board.
- Limit Work In Progress (WIP).
Here's how Kanban Board looks in TargetProcess:
That is it. No need to estimate user stories, prioritize backlog, plan iterations. Even no daily meetings. To track progress it is required to calculate Lead and Cycle Time and use Cumulative Flow Diagram.
Kanban is the simplest process you can start with. Many people think that it's better to use an iterative approach such as Scrum first. Others recommend Kanban as the first agile process. The truth is - it heavily depends on your context. E.g. if you do greenfield development, Scrum may fit better. However, if project is in the support phase, Kanban will work perfectly.
— David Anderson
Customize TargetProcess
TargetProcess is a very customizable tool. You can create a unique development process for any project with customizable:
- Practices
- Workflow
- Terminology
- Custom Fields

Scrum
Let's setup Scrum development process.
Practices
Go to and select required practices.
Workflow
Let's setup a workflow for Task. By default Task has 2 states: Open and Done. We will add In Progress state. Navigate to . Click Add New State.

Role dropdown sets the responsible role. In this case Developer will be responsible for Task if it is in In Progress state.
Save changes and Open state to specify In Progress as a Next State after Open. Then edit Done state.
You may change workflow for User Stories, Tasks, Bugs, Features and Requests the same way.
Terminology
Scrum has unique terminology. Let's change Iteration term to Sprint. Go to .

Save changes. Now if you apply Scrum process to your project, you will see the term Sprint everywhere.
Custom Fields
The final thing is to setup custom fields. Click . Let's say you are using T-shirt size estimates.
You can easily create a custom field to specify user stories size:

Save this custom field. We are done with Scrum process setup. Now you may add project and select Scrum process for the new project.

My Unique Process (for Retrospectives Management)
Let's use TargetProcess for some exotic process. For example, to manage retrospectives in TargetProcess.
The Retrospective process will have only a few entities:
- Retrospective - retrospective event for an iteration.
- Idea - improvement idea proposed at retrospective meeting
- Task - one step to implement/run the idea
- Improvement Area - high-level area of improvement like "better code", "faster cycle time".
Practices
We need just 2 practices for Retrospective process.

Workflow
First, let's add a new role responsible for ideas and action items in Retrospective process. Go to .

Workflow should be modified for this process. The Idea entity will be represented by User Story. Go to . Modify workflow as shown on the picture below:

Then switch to Task and add In Progress state.

Terminology
Click tab and change the following terms:
- User Story → Idea
- Feature → Improvement Area
- Release → Retrospective

Retrospectives In Action
Eager to see how this process works? Let's create a new project.

Now add several Ideas via . And here is the power of Retrospectives management. You can see a high-level picture on Kanban Board:

and track low-level details for each Idea on Task Board:

As you see, TargetProcess works well for activities such as Retrospectives. You can be very creative and use it for other areas, not only for software project management.
TargetProcess Structure
Here is the structure of TargetProcess entities. You can have Projects, Releases and Iterations. Then you can create Features, break them to User Stories, then break User Stories to Tasks.
You can assign Features, User Stories and Bugs to Release and User Stories and Bugs to Iterations.
It is impossible to assign Feature to Iteration. Feature is a high-level requirement. You should split it to User Stories and assign User Stories to Iterations.

You can have various entities in a Project. Note that Tasks can't be created without a User Story.

Start Project
We are going to quick start a new project, create a project team and fill the project with user stories.
Click . Fill project name and save it. Go to list and add several people to the system. You can envision this list as a repository of all available people that can be assigned to projects.
Now let's setup a project team. Click , select people you want to add and click Add To Team button.

You can also specify roles for people in this project
and set allocation. If someone joins project team for a limited time, it is recommended to set End Date, showing the end of this allocation.
Add or Import User Stories
You can store requirements as Features or as User Stories in TargetProcess. For the sake of this tutorial we will use User Stories only.
First, let's add a user story, and then export several user stories from a CSV file. Click Add → User Story and type user story name.
You can also set other parameters:

So far we are not going to assign story to release or bind to feature. Our goal is to create a simple project backlog. You can add stories one by one, but it'd be faster to import them.
Create a simple list with several user stories in Excel and save file as *.csv. You can download and use this template if you want.
| Name | Business Value |
|---|---|
| As a user I want to purchase the service and see no advertising | Must Have |
| As a user I want to delete my account | Great |
| As a user I want to disable plugin when required | Great |
| As a user I want to automatically filter search results based on credibility level | Good |
| As a user I want to be alerted when credibility level is below 50% | Nice To Have |
| As a user I want to register via a form | Nice To Have |
| As a user I want to register using my Twitter account | Nice To Have |
Go to .

Click Next and set mapping between columns in CSV file and user story properties.

Click Next and let TargetProcess import all user stories into the project. Then go to list and see all imported user stories.
Prioritize Backlog
You have a list of user stories, now you may want to prioritize them to put most important user stories on top. It will help you plan release and iterations. Usually most important user stories are implemented first.
- Product Backlog is a list of customer requirements for an entire product.
- Release Backlog is a list of user stories, features and bugs that should be implemented in a certain release.
- Iteration Backlog is a list of user stories and bugs that should be implemented in a certain iteration.
Go to , filter list to see Backlog and use drag-and-drop to re-order user stories.

It is important to note that user stories order (priority) and business value are compeltely independent. It means that user story with Nice To Have business value is to be implemented first.
You can prioritize user stories in any release/iteration same way.
You can select several projects and see combined backlog with user stories, features and bugs from several projects. Then you can prioritize items in the backlog. Let's specify that a user story from the first project is more important than a user story from the second project.

Now you are ready for release planning.
Plan Releases
The purpose of release planning is to define what will be shipped in the next release. Usually release has a goal, start/end dates, and a set of user stories with rough estimates.
First, we will add a new Release. Click . Specify release name, set release start and end dates and save it.
Now click . This screen shows project backlog on the left and releases timeline on the right. Use drag-and-drop to assign stories from backlog to the release.

You can plan releases for several projects on one screen. Just select required projects in the projects top menu.

Iterative Development
Scrum and Extreme Programming are iterative development processes, while Lean/Kanban is not.
The idea is pretty simple: we should break all work into time boxes, say, of 2 weeks. Why? There are several positive moments in this idea:
- Control scope and prevent scope creep. It is not allowed to add new work into iteration in general, thus you have fixed scope for 2 weeks.
- Measure velocity and predict release date with good accuracy.
- Fast feedback. You may react and improve something or just cancel project minimum loss in case of total disaster.
In general it looks like a good idea and huge step forward in comparison with Waterfall approach. Let's see how TargetProcess will help you to run iterations.
Plan Iterations
One way to add iterations is to generate them when adding a new release. Another way is to click .
Then you need to plan iteration: assign user stories that are to be implemented. Click and use drag-and-drop to assign user stories to iteration.
You see iteration velocity on the screen and you can control iteration scope. There's no need to have an exact velocity match. It is more about team commitment. For example, you may have an 80 points velocity, but team may commit to ship 100 points in the next iteration. If this is a team decision, Scrum Master should not interfere, but just accept it.

You can plan iterations from several projects on one screen. Select required projects and cumulative Backlog with stories from all the projects is shown on the left side of the screen. The current iteration from each project is on the right. You can plan or re-plan iterations as you want.

Track Daily Progress
What is the best way to track daily progress? Ask developers! The most accurate method is to ask each developer daily how many hours were spent on a task and how many hours still remain. It is easy to track time in TargetProcess with Time Sheet functionality.

With these time records, you can see a fancy daily progress report. Click . Color coding represents the state of a task or a user story. If the row is green — there are no problems with implementation. If time remaining is increasing, there will be red boxes. Yellow is a warning about incorrect estimate. It means that task had been estimated e.g. at 8 hours, but took 12 hours to complete.

You can see all the tasks from current iteration or current release in this report.
Use Task Board for Daily Meetings
Daily meeting is a useful way to receive fast feedback and boost communication in development team. A typical daily meeting consists of 3 questions that everybody should answer:
- What did I finish yesterday?
- What I am going to do today?
- Do I have any problems?
You can use TargetProcess Task Board to run daily meetings. In this case you need to have a large TV screen that everybody can see. Ideally this should be a touch screen, but you may setup laptop as well and use it for some actions.

You can select a person who started talking on the drop-down and see all his tasks. You can change task states, update remaining time and re-assign tasks right there. Then you can select another person and so on.
Understand Burn Down Charts
There are 2 types of burn down charts in TargetProcess: Release and Iteration. Iteration Burn Down shows progress for a single iteration. You want to see progress for current iteration mostly. Here is an example of iteration burn down chart:

Yellow bars represent work to do: 68 hours were assigned to current iteration initially. Green bars represent completed work and you can clearly see that progress was not good during the first 4 days of the iteration. Red bar shows added effort. A new user story with 27 hours of effort was added to the iteration today. This is not a planned effort, so it is marked as red. Moreover, baseline shifts down and the total iteration effort is now 68 + 27 = 95 hours.
Despite this fact, the iteration is still on track and most likely all the user stories will be completed on time, since work to do is below the ideal line. Forecasted work to do is represented by gray bars. They are below the ideal line as well.
This chart clearly shows that we are doing OK. How will it look in case of troubles?

Work to do is above the ideal line and it is clear that with the current progress the development team will not complete all the planned functionality on time. Moreover, new work added today is represented by the red bar! It is unacceptable to add more work when development team is already out of track.
Release Burn Down chart is easy to understand if you already know how Iteration Burn Down works. The only difference is that it shows Iterations on X-axis and progress for the entire release.

Kanban
Kanban is becoming more and more popular in software development. It is really easy to start with and it is very un-obtrusive in the begining. TargetProcess supports Kanban nicely. As you know, there are 3 steps to get started:
- Visualize development flow via Kanban Board.
- Put user stories on Kanban Board.
- Limit Work In Progress (WIP).
Let's see how you can do that in TargetProcess.
Use Kanban Board
First thing you should do is define your development workflow. For example, you may have a separate Testing phase for each user story or even "create automatic regression tests" phase. All that phases are steps to produce complete user story.
The idea of Kanban Board is simple — it visualizes user story implementation flow and shows what is in progress, possible bottlenecks and what is planned for the nearest future.

A basic workflow may look like Backlog → Planned → In Progress → Done.
We at TargetProcess currently have much more complex workflow:
Backlog → Planned → In Development → Coded → In Testing → Ready to merge → Merged → Done.As you analyze your workflow, you need to define it in TargetProcess. Check Customize TargetProcess section.
Now let's customize Kanban Board to set the correct columns order. Click Customize icon in the top right corner of Kanban Board.

The hardest part is to set correct limits for columns. Initially you may set limits quite arbitrarily. For example, if you have development team with 6 developers and 3 testers, you may have 3 limit for In Development column and 3 limit for In Testing column. It means no more than 3 user stories are allowed to be in In Development state and 3 In Testing state, so the total Work In Progress (WIP) limit is 6.
You can specify limits for Kanban Board in TargetProcess via section.

With time it will be required to modify and tune limits to enable development flow without bottlenecks.
Now you have your Kanban Board, what's next? You can fill backlog and move some user stories and bugs to Planned state. It means development team will start working on them as soon as possible, based on Priority (Rank). You can prioritize user stories in Planned state. Go to and filter stories by Planned state.

Now you are ready to start development. Developers should take several user stories and move them to In Development column. Limit should be observerd all the time. And then things start moving as usual: implemented story is moved to Coded state, then to In Testing state, then maybe back to In Development or into Done state. You observe bottlenecks and make process improvement decisions during retrospective meetings or right away via stop-the-line events.
Limits help to streamline development flow and detect bottlenecks. For example, if you have limit 5 for In Testing state and there are 10 user stories in this state right now, it is clear sign of a bottleneck.
Track Progress With Cumulative Flow Diagram
There are several ways to track progress in Kanban. First, it's Kanban Board itself. The other one is Cumulative Flow Diagram which can be used nicely to identify bottlenecks and team velocity.

This chart shows user stories breakdown by statws for a particular week. The light blue area represents work to do. The yellow area shows work in progress (WIP) and the green area — completed work.
You see that development velocity was slow between March-7 and April-24, but then it jumped up significanly. Also we see some bottlenecks (large WIP). It's fairly easy to hold a retrospective meeting and identify root causes for bottlenecks and slow velocity. Cumulative Flow Diagram just reveals problems, but not their exact reasons.
Track Lead and Cycle Time
Lead and Cycle time are very important metrics in iteration-less development. In fact, they are the only metrics to measure team improvement in terms of velocity. Here is the difference between cycle and lead time.

If you are in product development, most likely lead time is not as important as cycle time. And remarkable information can be carried out from cycle time observation.

The blue line represents cycle time for user story, while the red line shows cycle time for bugs. The chart above shows how cycle time has changed from month to month.
First, we see that cycle time has been very unstable. It changes from 7 to 21 days for user stories. This is a clear sign of significant unevenness (or mura — a type of waste in lean) and something should be done about it. Second, there's a correlation between cycle time for user stories and bugs. We see simultaneous spikes where cycle time for user stories is larger.
Short cycle time is a good goal to strive for. It makes for a faster delivery, stable releases and other benefits. Cycle time chart helps to track these changes.
If you create custom software, lead time is also a very interesting metric, especially for customers. Short lead time means faster reaction to customer requests. Lead time chart is very similar to cycle time chart actually.
Track Bugs
Bugs are inevitable in software development. They are found by customers (bad) or by testers (better). They should be planned and fixed. And you should know how many bugs are there.
TargetProcess supports bug tracking practice. You can add bugs, prioritize bugs, plan bugs to releases and iterations, view quality reports.
In Bugs List you can change bug states, assign bugs to developers and testers, edit bug (change severity, release/iteration, effort).

Bugs are similar to User Stories in TargetProcess. You can prioritize them in area. Let's say you have several bugs and user stories. You might want to set priorities exactly like that: fix this bug first, then implement this user story, then fix 3 bugs, then implement that user story.

You can assign bugs to releases in . Some bugs found by end users can be treated as user stories and can have their roadmap. You might want to fix them soon in the next release or postpone till later releases.

You can assign bugs to iterations as well in .

There are several charts that show bugs progress and dynamics. Bugs Dynamics chart shows how many new bugs are found each day and how many bugs are fixed. It helps to define whether product is ready for release in terms of quality.

Another interesting chart shows bugs trends in a long-term perspective. Below we see that from August to January open bugs count increased from 225 to 401. Then bugs count dropped to 288 and remained pretty stable.

If you want to focus on bugs in the current iteration, Task Board is the best place. You can see all the bugs attached to user stories on one screen and handle them: assign to developer and tester, update remaining time, change bug state to Fixed or Closed.

Manage Test Cases
Test Cases (or Acceptance Tests) are an important part of development process. In TargetProcess you can create Test Cases, add them to Test Plans and execute them in Test Runs. Let's review all the steps to run test cases.
First, you need to add or import test cases into TargetProcess. Then you need to create a Test Plan. In fact, it is just a group of test cases. For example, you may have a test plan like "Email Module" and include all the test cases that are related to email module. Or you may create test plan "Iteration #1.2 testing" and include all test cases that will be executed in iteration #1.2 to this plan. It is up to you how to organize test cases in test plans.
Second, you need to assign test cases to a test plan. Go to , click link for your Test Plan and select action.

Select test cases and assign them to the test plan.
Third, create Test Run. Go to , click link for your Test Plan and select action.

Here you should select a release or iteration for the Test Run. Also you can select an exact Build in the iteration or release. This Test Run will appear in testers ToDo list and tester will be able to run it right from his ToDo.
Now we are ready to execute test cases. Go to and click the link. Test Runner helps to execute test cases fast. You can verify test case and click Passed or Failed button. The next test cases are loaded automatically, so there's no need to remember which test case you should run. Also you can reorder test cases in the list on the right.

As usual, there are some reports that show test cases dynamics and quality. Go to section and click Test Cases by User Story report. Select the required release and check quality of all the stories in this release.

Test Runs by Release/Iteration/Build report shows state of a selected test plan by iteration or by build.

Lightweight Test Cases Management
That was a quite heavy approach to test cases management. Sometimes you need something simpler, no test plans and no test runs. You may want to just add test cases for a user story and run them fast. You can do that right on user story view page in tab.

Provide Support via Help Desk
You have released your product and now want to provide first-class support. It means fast reaction time and complete traceability from initial request to solution. TargetProcess provides everything you need to setup and run your support help desk.
Setup Email Integration
Most often customers and leads will use email to communicate about problems and ideas. TargetProcess has tight email integration and can create requests from incoming email. Let's setup email integration.
First, let's enable SMTP. This will allow you to send emails to customers from TargetProcess. Go to and mark checkbox for Email Notifications. Specify correct parameters of your SMTP server.

Next, we need to configure incoming emails for some project. Go to Projects list, click Edit for the project and mark Enable Inbound Email Integration checkbox.

Specify correct parameters of POP server. It is important to mark two checkboxes: Check email automatically and Create requests automatically. In this case all incoming emails will be converted to requests, and you'll be able to handle all of them in a single Queue.
Handle Incoming Issues & Ideas
Now you're done with email integration. So how TargetProcess powers help desk? Here is the process:
- Customer sends an email with a problem.
- Request is created automatically in TargetProcess.
- You read this request in Queue and add a comment as a reply.
- Customer receives email and replies back.
- New comment is created exactly for this request based on customer's feedback.
- You reply back with a solution and maybe you close the request. Or you can create a bug or a user story right from the request.
As you see, there is no need to check email as you have complete request threads right in TargetProcess. Go to to see all incoming requests.

When you want to dig into details and reply to a request, click the request name.

As a support person who handles questions, issues and ideas, you don't need to check email anymore. Review requests and reply via comments.
Let's look at some other cases. Customers send new ideas quite often. Obviously, you can't implement all the ideas and most of them do not require feedback from support. It is actually Product Owner who is responsible for ideas management. In this case you can quickly convert request into an idea and it will disappear from the Queue.
Some requests are bugs essentially, and you want to create bugs from them. Click link and add a new bug. It will be associated with the original request and developers will clearly see who has the problem. Now they can communicate about this bug with customer. When bug is fixed, they can quickly notify customer about the fix.

If bug is an important one, you can quickly assign it to current iteration or switch to urgent state. Actually, there are various approaches to how you can handle urgent bugs. TargetProcess does not enforce a single approach, it is up to you.
Help Desk Portal
TargetProcess provides a separate application for communication with customers: Help Desk Portal. You can setup Help Desk Portal on the same server with TargetProcess. Customers can:
- Post requests/ideas/issues.
- Vote for requests.
- View requests with statuses, related bugs and stories, and discuss them via comments.

Check Help Desk Portal Installation Guide [pdf] and Help Desk Portal User Guide [pdf] for more details.
Create Custom Reports
TargetProcess provides a powerful engine to create custom reports. Go to and click .
In general, custom reports provide an interface to extract data from database and present it in lists. For example, you can extract all open user stories that have zero estimated effort.
First, select process and entity type for the report. This is an important step, since you're not able to change process in a saved report. Then select entity type for the report.

You can have many columns in the report, in fact almost all entity properties are available. Expand related entities to include more columns. You might want to see entity state for example, in this case click Entity State group and mark Name checkbox.

You can filter by entity properties and by properties of all related entities.

Summary columns allow to extract data from related collections. For example, you can create a column that shows the number of failed test cases for user stories.

You can embed one report into another with Inner Lists. It means you can create a report for Tasks and include it into a report for User Stories.

Click Save & Run Report. There are several possible actions:
- Group and sort entities by any column.
- Inline edit entities.
- Export report to Excel.
- Print report.

Integration
TargetProcess is extensible. You can write your own plugins or use Web Services API to integrate other tools with TargetProcess.
Out of the Box Plugins
TargetProcess provides out of the box integration with a number of popular tools and platforms: Visual Studio 2008/2010, Eclipse, Subversion, JIRA, Bugzilla, Perforce, Selenium, NUnit, JUnit, TestTrackPro, Team Foundation Server.
Here are the guides to all available plugins:
- TargetProcess Visual Studio 2008 Add-In Guide (PDF)
- TargetProcess Eclipse / Mylyn Connector User Guide (PDF)
- Subversion Integration Guide (PDF)
- Perforce Integration Guide (PDF)
- TFS Integration Guide (PDF)
- SourceSafe Integration Guide (PDF)
- Bugzilla Integration Guide (PDF)
- JIRA Integration Guide (PDF)
- TestTrackPro Integration Guide (PDF)
- Selenium, NUnit and JUnit Integration Guide (PDF)
- Bug Pain Calculator User Guide (PDF)
Plugins and Web Services API
You can create use Web Services SOAP API to integrate with TargetProcess.
Here is the list of documents for developers:
- Web Services Developer Guide (includes C#, Java and PHP examples, PDF)
- Plugin Developer Guide (PDF)
- TargetProcess API (CHM)
- TargetProcess Web Services API Examples (Source Code) (C#, Java and PHP)
- Business Entities Description (ZIP)
- TargetProcess NHibernate Mappings (ZIP)
Check Plugins section for all plugins' source code.
References
Prioritizing the Product Backlog a nice overview by Peter StevensRelease Planning a short and informative guide to release planning
Commitment Based Planning
Kanban Development Oversimplified an outstanding introduction into Kanban
Using Cumulative Flow Diagrams by David J. Anderson
Mura, Muri, Muda? Jim Womack explains 3 types of waste in Lean ↑ top