TFS integrates well with Visual Studio and offers many great features for Scrum, Agile, and CMMI. Integration with git rather than TFSVC gives you the flexibility to use a top-notch distributed version control system while automatically hooking into your backlog.
The new build stuff in TFS 2015 has improved our build strategy immensely.
I am always encountering problems with TFSVC and we have so many projects that the team is afraid to convert to fully to git. Here are some of the issues I've encountered recently:
* TFSVC: Commits through Visual Studio regularly complain that the commit failed and code was auto-merged, so try again (no indication of what was auto-merged)
* TFSVC: Auto-generating version numbers from changesets (via MSBuild Community Tasks TFSClient) often results in a 'tfs.exe exited with code 100' error and the only fix is to build projects serially
* TFS Web Access: Clearing cookies in Chrome after TFS2015 Update 1 results in TFS being unusable for me in Chrome, so I have to use IE (which I hate)
* TFS: TFS doesn't intuitively associate Code Reviews, Changesets, and other Work Items, making it a huge pain to report on these as a whole
* TFS: Customizing process templates is a huge pain. For example, we've added code review tabs to user stories and tasks to track collaboration and the only way to hook up code reviews to these items is as a 'Related' item
* TFS: While vso plugins are 'getting there', it is still a struggle to integrate a lot of the open source community tools we use (karma, protractor, cucumber, etc.)
* TFS: Configuring new agents and their 'system variables' is not well documented
* TFS: In general TFS requires a lot more overhead than using GitHub Enterprise as I did with a previous employer. However, TFS gives you reporting, built-in proprietary testing tools, and a slew of other things you wouldn't get immediately with GitHub.
* TFSVC: From a development perspective, I spend more time getting TFSVC to do what I want it to do than I ever did with git
Be sure to check out GitHub or BitBucket and determine whether you really need more than an issue tracker and distributed version control system. Sure, TFS and its integration with Visual Studio allow you to "suspend" your work and persists your open windows, tabs, files (everything) to the server so you can get back to it after doing something else... but do you need that? You could go with Visual Studio Online or Atlassian Jira/BitBucket and have maybe 85% of the functionality with less headaches.
We use TFS to track change management, code quality, collaboration, continuation integration and build automation.
With the new build system in TFS 2015, we've converted monolithic unrepeatable builds which developers struggled to maintain into clear and concise customizable build steps. We've also condensed multiple unrelated build process templates into a single much cleaner template which better represents our processes across projects and teams.
TFS 2015 has helped to improve our software quality more than earlier versions of TFS.