Use Git, no matter what
Picking the wrong tool to store and manage code can be the most costly mistake a business can make. If you are a developer, or if you manage developers, pick tools that make life easier.
I worked for a company that had used Visual Source Safe - until VSS corrupted itself and lost all their data, a few months prior to my hiring. Even the replacement they moved to, a product called SourceAnywhere, was not any better. It just sucked up time and caused frustration.
###Then I found Git
It started out guerrilla style, where I would use Git to do my work, and every now and then when I finished implementing a feature or fixing a bug, I would open up SourceAnywhere and check in the changes.
My boss realized how Git had improved my workflow, and made the decision to switch over to GitHub to host all our development. The ability to reference issues from commits, do code reviews with pull requests, and all the other awesome features of GitHub pushed developer productivity to new heights.
Leaving GitHub for TFS
I changed jobs in November of last year, to a company that used Mircrosoft’s VSS replacement, Team Foundation Server.
To put it bluntly, TFS is destroying your development capacity.
TFS is probably one of the worst tools I’ve ever seen, because
it reaches down into a developers IDE and locks you out of files
that another developer is working on.
Want to make a small change to the
<head> section of an aspx file?
Too bad! Your buddy has it checked out.
To the TFS gurus: Yes, you can change the locking settings to stop this, but the merge tool is so bad that locking the file is preferable.
Git-TFS makes TFS irrelevant
By using Git-Tfs, I sidestep all the headaches of TFS. No more files being set with the read-only flag! No more locked files! No more crappy merge tool! Make changes to the code while not connected to the TFS server!
Even though Microsoft claims to have fixed lots of bugs and improved the mergetool in the upcoming release of TFS, it’s still a centralized model, and a piece of software with an abysmal reputation.
Why wait for improvements, when the open source community is writing tools that will release you from the grip of TFS?
Derek Hammer puts it succinctly:
For developers, tooling can inspire almost religious dogmatism and fanaticism. This is understandable. We work with these tools for a significant portion of our lives. Choosing the right tool for the job can decrease stress, increase productivity and make legitimate impacts on us.
If you are part of a large company that uses TFS and are tired of fighting with it, consider moving to Git and using Git-Tfs to track changes and push work back in.