Overall Satisfaction with Team Foundation Server
We are using TFS in our software division as a source control for code and DB objects. It allows us most importantly to keep a history of our code. Secondly, we can do deploys from this environment out to our many environments.
- TFS has an excellent interactive UI for all users to make source control easy to use.
- TFS has the backing of a major company, Microsoft. Updates and the way it is used gets regular updates.
- TFS integrates into Visual Studio.
- TFS has many tools for many different areas in the development life cycle.
- There is no real ability to work offline. You need to be actively connected to it in order to see history.
- Having many hands in the same project/file can cause conflicts that can be hard to resolve.
- having a "master" branch is difficult in TFS, it can be done but it is slow and cumbersome and not an intuitive process.
- Having it setup with RM makes releases better.
- It has been proven to be difficult for remote employees if they lose or have a bad connection to it.
Based on the fact we are Microsoft shop, it makes sense and it has an great integration to RM for code release. At the time it was the best decision for what we needed as a team. If it were up to me, moving to Git would be the right direction. It is less costly and it is better, especially for remote employment or for developers that travel a lot. Since Git is Open Source you can find a community that has developed many good tools to interface with it. For die hards they can use command line.