I'm evaluating Microsoft Team Foundation Server for my customer, who currently uses Visual SourceSafe and nothing else. They have explicitly expressed a desire to implement a more rigid and process-driven environment as their application is in production and they have future releases to consider.
The particular areas I'm trying to cover are:
Configuration management (e.g.,
source control)
Change management (workflow and doco
for change requests, tasks)
Release management (builds and
deployments)
Incident and problem management
(issues and bugs)
Document management (similar to
source control, but available via
web)
Code analysis constraints on check-ins
A testing framework
Reporting
Visual Studio 2008 integration
TFS does all of these things quite well, but it's expensive and complex to maintain, and the inexpensive Workgroup edition doesn't scale. We don't get TFS as part of our MSDN subscription.
Those problems can be overcome, but before I tell my customer to go the TFS route, which in itself isn't a terrible thing, I wanted to evaluate the alternatives. I know Subversion is often suggested for its configuration management/source control, but what about the other areas? Would a combination of Subversion/NUnit/Wiki/CruiseControl/NAnt/something else satisfy all of these requirements? What tools do I need to include in my evaluation?
Or should I just bite the bullet and go with TFS since we're already invested in the Microsoft stack?