My new company implemented TFS about 6 months before I took over the QA Department. Unfortunately I had no say in the setup and subsequent customizations that occured. While I am sure everyone had the best of intentions the end result was a nightmare.
The original plan was to take full advantage of TFS; Sharepoint, VSS, Iterations, Tasks, Requirements and Bugs. They were even going to migrate all existing requirements from Word documents into TFS and link everything up to Tasks and Bugs.
Sounds like a solid plan, with a little hard work and planning, what could go wrong?
Unfortunately this major shift in process was treated like a skunk works project. One QA guy put together a sample installation, got approval and then worked with the Dev team to set something up.
My opinion of the whole adoption phase was that everyone was focused on hammering out (on paper) a series of workflows that felt familiar to what they were used to using. And then when time was running out they tried to hammer custom workflows into TFS.
Here are some of the decisions that were made:
- Heavily customized the CMMI process template.
- All workflows modified
- Added new fields and changed the meaning of existing fields
- Created custom triggers to enforce a very complex 'Assigned To' scheme (Dev, QA , Business)
- Created a single TFS project, using the company name, then created sub projects (using Areas) under that one project.
- Placed all code under a single VSS branch, created one giant build for all code.
- Ignored the recommended SharePoint setup and created a custom hierarchy of projects to store documents in.
- After about 3 months of use they switched the layout around, so now there are ‘historical’ documents in an old area and newer documents in the new area.
Here is the current state:
- Product Managers pulled requirements back out of TFS into new word documents because TFS was too difficult to use.
- Bugs are tracked and assigned to developers using a spreadsheet with TFS IDs.
- There are functional bugs inside TFS with the custom 'Assigned To' workflow logic that was added.
- All of the default Reports were broken, new reports have not been able to be created due to the complexity of the changes.
- TFS is used only to store code/documents and file bugs. Requirements and Tasks are no longer tracked in TFS.
- Everyone thinks TFS sucks are are 100% resistant to making changes or trying to fix the issues.
So this is the problem that I have to fight the unpopular fight to fix. When I get some time I will blog about my proposed solution (I do have one that I am working on) as well as track my progress.