Recently at Learning Tree, we wrote a training course on Team Foundation Server (course 1816, Agile Software Development with Team Foundation Server). It seemed natural to use TFS to manage the course writing process.
We used the online version of TFS, called Visual Studio Online to manage this project. Visual Studio Online was perfect for two reasons. First, it is free for up to five users (and a course development team is that small). Second, all the members of the team work in different locations, thus everything needs to be accessed online. (See the post “What is Visual Studio Online?” for more information.)
We created a team consisting of the three people (the author, technical editor and product manager). Every task must be assigned to a team member. We also added a team member named “1816 Team”. This is for tasks that need to be done by the team collectively, not done by an individual.
Defining Team Members
At Learning Tree we have a number of milestones when developing a course. We have a course planning meeting. A few weeks later there is an alpha meeting. Then, there is the beta of the course, and lastly there is the first run of the course. Before the end of each of these milestones there is a long list of tasks that need to be accomplished.
These milestones provided natural iterations for the project. These iterations and their start and end dates were entered when defining the project.
The next step was to add everything that needs to be done to the backlog. Each item is assigned to a team member (or the team collectively) and an estimate of effort is assigned to each item as well. An example backlog item is shown below.
Adding Backlog Items
To accomplish a backlog item, a number of specific tasks need to be done. So, each backlog item is divided into tasks. Like backlog items, tasks are assigned to team members and their effort is estimated. An example is shown below.
Dividing Items into Tasks
Each backlog item is assigned to an iteration. This is just a matter of dragging and dropping each item into the appropriate iteration using the online tool. The final results look as shown below.
This might seem like a lot of work, but in the grand scheme of things it’s not a big deal. All tolled maybe we spent a couple hours on this. It’s also something that can evolve; at any time items can be added, removed or changed.
The obvious question is, “why would I want to do all this?” First, it makes it easy for team members to know what they need to do. Second, it helps the manager know whether the team is on schedule or not.
In addition to the backlog, there is a Kanban board view of the project. The Kanban board graphically depicts what each team member is working on, what they have finished and what they have left to do. Each team member just needs to drag items into the appropriate column and update the work remaining for each item as they do their work. The Kanban board can be organized either by team member or by backlog item. See the screenshots below.
Kanban Board Organized by Team Member
Kanban Board Organized by Backlog Item
Team Foundation Server makes it easy to manage and track work on any type of project, and this is just a small sampling of the capabilities of TFS. Visual Studio Online makes getting started with TFS easy, and for small teams it is free. To learn more about TFS you may be interested in the following Learning Tree courses