Howdy there. I'm putting together a new software team and I'm looking at different tools that overcome previous nightmares I've had with other teams.
Over the last 5-6 years these are some transitions I've gone thru:
SourceControl:
CVS => VSS => SVN
Project Management, Bug and Issue Tracking:
Paper => PostIt Notes => OneNote => BugNet => OnTime
Wiki and Documentation:
Word + Network Share => ScrewTurn Wiki
Builder Automation:
Cruise Control + MSBuild
Now, specially because of SVN and the Wiki situation, I'm looking into starting this team with something fresh. In the past we've had branching nightmares with SVN, and the more we try to fix it, the worst it becomes. The other challenge I have is to find something that is stable and integrated. You can imagine that BugNet+SVN+ScrewTurn+CruiseControl+MSBuild are quite different animals, so integration and synergy is very important; I don't want to be jumpint between 10 different applications to report a bug or assign tasks and review the work completed and look at the repo log.
So, the new team and I have been talking this out for a couple of days now, and I think we've narrowed it down to 2 posibilities:
1. TFS 2010
Pros:
- All-in-One solution. It truly has it all, including a new SCRUM process template.
- Very friendly user interface and SharePoint integration.
- WYSIWYG Wiki and Office Integration.
Cons:
- High upfront costs in hardware and admin time. Software too, but it doesn't affect us because we have an MSDN subscription with free software.
- I'm hesitant about the source control of TFS. SC is file-based and with central repository just like SVN and VSS. I really don't want to fall for the same issues we've had in the past.
2. FugBUgs + Kiln + CC
Pros:
- Kiln uses Mercurial, with all the benefits of distributed source control.
- Minimal upfront costs and planning time to get it up and running. $30.00 per user per month.
- Very friendly web user interface.
- WYSIWYG Wiki editor.
- Very simple issue tracker and project management tools. It would be easy to integrate SCRUM processes.
Cons:
- Lacks builder automation tools for more integrated processes (like TFS). So this will mean we'll have to keep on banging our heads with command line functions and community tasks to maintain our builder workers.
Back in the day, I used Visual Studio Team System 2005 and I didn't take the best memories with me about the system; but the new TFS 2010 seems a very solid bet. FogBugz and Mercurial are kinda like the new kids in the block and they bring fresh thinking to the new processes, but as always this is a double edge sword.
Anybody with solid experience with any of these? Are we missing that 3rd option? Do you have that silver bullet for my problems?
- Tools Integration
1.1. Source Control
1.2. Wiki
1.3. Build Automation
1.4. Project management
1.5. Issue Tracker - Minimize Source Control Branching and Merging conflicts (yes, it is necessary for us to branch out and merge)
- Friendly User Interface (not everybody is CMD hacker)
- WYSIWYG Wiki.
- Learning Curve for developers.
- Time to get it all running VS. Long Term Value.
The new team has 4 team members + 1 Project Manager (Scrum Master) and 1 Product Manager (Product Owner). So we are talking about a relatively small and new team. the scope and projects we'll be working on is large, enterprise applications with multiple projects and branching variations