"TFS Lite" for WSS v3
In my previous post, I introduced my "TFS Lite" SharePoint site template that I've been using for years as a simple scenario/task/bug/risk/milestone tracking "application" with various projects and customers. In today's post, I'll discuss some of the important changes in Windows SharePoint Services (WSS) v3 that impacted TFS Lite, such as the fact that all SharePoint lists now support versioning, not just the Issues list, as was the case in WSS v2 and SharePoint Portal Server (SPS) 2003.
As I noted in the earlier post, the Work Items list at the heart of TFS Lite was originally based on the Issues list in order to maintain a history as items are modified. When you are dealing with sensitive items like bugs and risks, a simple snapshot of the latest item simply won't do. You need traceability to determine who said what and when. Granted, there are times when I wish I could "undo" or "rollback" a change to a list item -- for example, when I enter comments on a bug like "Fixed in 3.0.220.0" but neglect to change the Status to Resolved. However, dealing with goofs like that just comes with the territory when you need a detailed audit history of every change to an item.
When working with the previous versions of WSS and SPS, the various views used to render snapshots of the Work Items list specified Current is equal to Yes in order to show only the latest version of each work item. Since any list in WSS v3 can now inherently support versioning, it is no longer necessary to base the Work Items list on the Issues list, nor is it necessary to include the Current is equal to Yes criteria in each view.
The other significant change in WSS v3 that impacted TFS Lite is the way related items are entered. In WSS v2 and SPS 2003, the Issues list allowed you to simply type in the ID for a related issue to associate two or more items together. Furthermore, in WSS v2 when you added, for example, issue 1 as a related item to issue 2, then when you viewed issue 1, you would see issue 2 as a related item, and vice-versa. The net result in WSS v2 was that if you related issue 1 to issue 2 and then subsequently related issue 2 to issue 3, then issues 1, 2, and 3 were all interrelated. This is not the case in WSS v3.
In WSS v3, however, when you add issue 1 as a related item to issue 2, the related item only shows up on issue 2 (in other words, issue 1 does not show that it is related to issue 2). Also note that the user interface changed from a simple textbox in WSS v2 (in which you simply type the ID of the related issue) to a pair of lists in WSS v3 (in which you select one or more items in the list on the left and then click Add > to associate them to the current item). These changes can be considered good or bad -- depending on your perspective.
If you like the fact that you can now associate multiple issues at a single time (and also view the title of each item when selecting related issues), then this is great. However, if you liked the "bidirectional association" in WSS v2 or if you have many items in your list (say, around 2,500) then:
- The user experience of having to select from a list containing thousands of items leaves much to be desired.
- There is definitely a performance impact when you create or edit an item (since SharePoint has to fetch all items in the list to allow you to possibly associate any one of them to the current item).
With these WSS v3 changes in mind, let's "upgrade" the TFS Lite site template accordingly...
Here is a step-by-step guide for creating the TFS Lite site template for WSS v3:
Create a new site collection using the Team Site template.
Optionally delete the Tasks list that is automatically created as part of the Team Site template (since a "task" is simply a work item where Category = "Task").
Create a new list called WorkItems based on the Tasks list and select Yes for the Send e-mail when ownership is assigned? option.
Rename the WorkItems list to Work Items. (I prefer to avoid spaces when creating lists to avoid "garbage" in the URLs as a result of URL encoding.)
Enable versioning on the Work Items list to create a version each time someone edits an item in this list.
Add the columns specified in the following table:
Column Name Description Type Required Additional Information Default Add to Default View Category Choice Yes Choices: - Bug
- Quality of Service Requirement
- Risk
- Scenario
- Task
Bug Yes Area Choice Yes Choices: - Project
- Project\Area1
- Project\Area2
- Project\Area3
Yes Iteration Choice Yes Choices: - v1.0
- v1.0\M0
- v1.0\M1
- v1.0\M2
- v1.0\RC1
- v1.0\RC2
- v1.0\RTM
- v1.1
- v2.0
- v2.0\M0
- v2.0\M1
- v2.0\M2
- v2.0\RC1
- v2.0\RC2
- v2.0\RTM
- vNext
v1.0 * Yes Triage Choice Yes Choices: - 1 - Needs Review
- 2 - Investigate
- 3 - Reviewed
- 4 - Recommend Approve
- 5 - Recommend Reject
- 6 - Approved
- 7 - Not Approved
1 - Needs Review Yes Priority ** Choice Yes Choices: - 1 - High
- 2 - Normal
- 3 - Low
2 - Normal Yes Severity Choice Yes Choices: - 1 - Critical
- 2 - Important
- 3 - Nuisance
- 4 - Useful
4 - Useful Yes Status ** Choice Yes Choices: - Active
- Resolved
- Closed
Active Yes Comments Multiple lines of text Yes Append Changes to Existing Text: Yes No Exit Criteria Indicates if the work item is a key deliverable for the iteration or milestone. If the field is set to Yes, the work item displays in the project summary view. Yes/No (check box) No No No Blocked Indicates if the work item is blocked in some manner. If the field is set to Yes, the work item displays on the project summary view. Yes/No (check box) No Yes KPI Key Performance Indicator representing the status of a key deliverable or milestone. Choice Yes Choices: - Green
- Yellow
- Red
- Complete
No CreatedFilter Calculated field used to filter recently created items (for example, to show items submitted during the last week). Calculated (calculation based on other columns) Formula:=Created+7The data type returned from this formula is: Date and TimeDate and Time Format: Date Only No ModifiedFilter Calculated field used to filter recently modified items (for example, to show accomplishments over the last week). Calculated (calculation based on other columns) Formula:=Modified+7The data type returned from this formula is: Date and TimeDate and Time Format: Date Only No Configure the following views:
View Columns Sort Filter Group By All Work Items - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Blocked
- Assigned To
ID
My Work Items(default view) - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Blocked
Severity
Status is not equal to ClosedAndAssigned To is equal to [Me] Priority Active Bugs - ID
- Title
- Priority
- Severity
- Area
- Assigned To
Severity Status is equal to ActiveAndCategory is equal to Bug Priority Resolved Bugs - ID
- Title
- Priority
- Severity
- Area
- Assigned To
Severity Status is equal to ResolvedAndCategory is equal to Bug Priority Open Issues - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Assigned To
Severity Status is not equal to ClosedAndBlocked is equal to Yes - Category
- Priority
Open Scenarios - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Assigned To
Severity Status is not equal to ClosedAndCategory is equal to Scenario Priority Open Tasks - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Assigned To
Severity Status is not equal to ClosedAndCategory is equal to Task Priority Open Work Items - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Blocked
- Assigned To
Severity Status is not equal to Closed - Category
- Priority
Project Checklist - ID
- Title
- Category
- Status
- Priority
- Severity
- Area
- Assigned To
- KPI
- Priority
- Severity
Status is not equal to ClosedAndExit Criteria is equal to Yes - Iteration
- Category
Create a new document library named Pages and select Web Part page as the document template.
In the Pages library, create a new page called ProjectSummary.aspx using the Header, Footer, 3 Columns layout.
Create and configure the various project summary Web Parts based on the underlying Work Items list:
Web Part Columns Sort Filter Group By Item Limit Project Summary - KPI
- Title
ID
Iteration is equal to v1.0\M0 * 100 Top 10 Issues - Title
- Assigned To
- Priority
- Severity
Blocked is equal to Yes 10 Accomplishments (Last 7 Days) Title
Modified(descending) Status is equal to ClosedAndModifiedFilter is greater than [Today] Category(Expanded) 20(Display items in batches of the specified size.) Priorities/Milestones Title
ID Status is not equal to ClosedAndExit Criteria is equal to Yes Iteration(Expanded) 100(Display items in batches of the specified size.) (Optional) Modify the Project Summary Web Part to display an image corresponding to the designated KPI value (using SharePoint Designer and a tiny bit of XSLT as described in my previous post).
In the Links list, add a link to the Project Summary page.
Figure 1: Project Summary "dashboard"
You might be wondering why I chose to base the Work Items list on Tasks instead of just creating a custom list from scratch. Aside from the fact that the Tasks list saves me from having to create a few columns, the real reason is to automatically e-mail team members when a work item is assigned to them. If you simply create a custom list and add an Assigned To column, you'll find that the option to Send e-mail when ownership is assigned? is conspicuously absent from the Advanced Settings page for the list.
You certainly don't have to implement the list this way. Alternatively, you could choose to use alerts instead and have people "subscribe" to changes in the My Work Items view. However, I chose a "push" model instead of a "pull" model to ensure people are always alerted right away when they are responsible for working on something.
You also might be wondering how work items can be related to each other since I chose not to base the new Work Items list on the Issues list. Given the change in behavior in the WSS v3 Issues list for related items, I recommend simply adding a section to the Description field name named Related Items and then insert hyperlinks to other items. The primary reason for this is to avoid the performance impact as the number of work items grows large.
Important: There appears to be a bug in WSS v3 (and MOSS 2007) where the Web Parts on the Project Summary page are not configured with the correct views after creating a new site from the attached site template. Consequently you will need to spend a few minutes reconfiguring the Web Parts using the settings specified in step 10 above. The Web Parts are created, but the columns, sort, filter, and group by settings revert to the default values. Fortunately it only takes a few minutes to workaround this bug.
[Update (2008-04-08): The issue noted below by Dragan has been corrected. The fix is described in a subsequent post. However, as I originally suspected might be the case, the KPI images that I use in the project dashboard view are only available in MOSS 2007. Consequently you will need to substitute your own images (or simply revert to displaying the status as text).]
Comments
Anonymous
April 07, 2008
PingBack from http://blogs.msdn.com/jjameson/archive/2008/04/01/tfs-lite-for-wss-v2.aspxAnonymous
April 07, 2008
The comment has been removedAnonymous
April 08, 2008
Shortly after publishing my previous post covering "TFS Lite" for WSS v3 , Dragan Panjkov noted thatAnonymous
April 08, 2008
Dragan, Thanks for identifying the issue. The problem has been fixed. Let me know if you encounter any other problems. JeremyAnonymous
April 09, 2008
It is OK now! Is it possible to set project summary page in wss as welcome page (similar to MOSS Publishing)? I don't have much experience with wss, but I have with MOSS publishing sites.Anonymous
April 14, 2008
Mashup Virtual Earth und SharePoint Wunder der Welt Suche Search Custom Security Trimmer for Novell NetwareAnonymous
April 23, 2008
Complementing the Work Items list that I described in a previous post , we use a blog site (creatively