Every software development firm struggles with picking the right tools. There are differences of opinion on what will work best for a team and how that team interacts. But sometimes, the tools that a team begins with gets replaced by a better alternative. For us, this was switching from TFS to Git. Both are source code repositories, but for us, they weren’t created equal. We switched over to Git after Microsoft made migrating over extremely easy and we’ve been in love ever since. For this blog, we’d like to discuss the top three reasons why we made the switch.
Easier Branching – When using TFS, one needs to exercise caution because one’s code can impact everyone else’s as soon as a check-in is made. With the way Git handles commits, developers can commit often before pushing the code to the main repository. With feature branching, team members can work on multiple features at the same time without fear of ruining each other’s work. Branching does exist within TFS, but from our experience, it’s more prone to errors. With easier branching, our developers can take more calculated risks since their work won’t hurt anyone else. It’s also space consuming and in software development, space needs to be well spent. Just like any other industry, mistakes cost time and time costs money.
Distributed System – The distributed nature of Git allows for flexibility amongst team members. The entire repository lives on everyone’s machine as well as the server, which allows branching to be a painless experience. Team members can all work independently from one another and sync up the changes back into the repository. Another major plus is if the server with the repository goes down, there’s no need to worry; since each user has a complete version of the software their local version is essentially a full backup of the code base. Unfortunately, TFS doesn’t operate as a distributed system.
Unified Platform – Git is a cross-platform product, meaning no matter what type of computer one codes on, they can get the job done. Since TFS is a Microsoft product, the program only works natively on Microsoft machines, making our lives difficult. It’s also technologically agnostic, which means it works with other coding technologies as well. When we were using TFS, we had to maintain different source code platforms for our different teams and their technologies, which led to confusion and frustration. Now we just maintain one platform, making the lives of everyone involved much easier.
TFS may be the source code repository of choice for other organizations, but here at Small Footprint, it made us work harder, not smarter. Git allows easier branching, which is key to creating the features a product needs without destroying the hard work of other team members. The distributive nature of Git ensures that easier branching is possible, but it also guarantees that nothing disastrous will occur since every machine involved in a project has a backup. Finally, with Git being a unified platform, we can solely focus on coding and not maintaining separate technologies for our diverse set of teams across the world. These three benefits of switching over to Git has allowed Small Footprint to develop exciting and innovative products more quickly and efficiently than if we were still using TFS.
Posted first at Small Footprint.