26 Oct, 2017 Switching Our Source Code Repositories 26 October 2017 Matt Lewis Head of Operations As a busy digital agency, with multiple projects in progress for numerous clients all the time, not to mention also running multiple projects for the same clients at the same time too, the importance of version control cannot be overstated. Version control ensures we have chronology and accountability for the work we do. In the past, we had used Microsoft Team Foundation Server (TFS) as version control for our source code. However, due to license limitations we had limited accountability due to a limited number of users, so despite many of our projects requiring input from multiple different developers, we were unable to differentiate between which developers had made a commit whilst working on any given project. This problem was also becoming more and more exacerbated as the scale of our clients’ budgets and project work continued to grow. So, with this existing limitation, an impending upgrade on the horizon and our workload ever increasing, we decided it was time to research some of the alternative version control solutions on the market. Our implementation of TFS also had a limited user interface (UI) making it very difficult to manage, so this presented a good opportunity to tackle this problem as well. After careful deliberation, we decided that it definitely was time to move on and so we said goodbye to Microsoft TFS and hello to Git and BitBucket. Now, after running this new solution for some time, we decided it was time to share some of the key benefits that persuaded us to make the move, along with some subsequent business benefits. The Benefits of Switching to Git and BitBucket. Most importantly, there are various software programs that utilise Git commands in order to provide a dedicated user interface that makes the data in our source code repository so much more readable; we chose SourceTree. Moreover, as Git tracks all the changes made to the source code of a project, and SourceTree reads and displays this information, we can use SourceTree to view a timeline of a particular project and all commits made against this project. This gives us much greater visibility of the history of changes; such as who made a change, when and to which branch of the project, so we now have full accountability and project chronology. Git also allows “branching”. This basically means that we can create a copy of a project at a certain point in time and make changes to it without affecting the master version of the project. This allows multiple developers to be working on the same project, on different features, in parallel. These two key factors: chronology and accountability allow us to determine cause and effect more easily and efficiently when clients need answers about their website’s performance, functionality or usability. Great Development Efficiency As well as the improved features and functionality of the source code repository itself, there are also several business benefits that also came along with Git and BitBucket. For example, when we used TFS, it sat on our internal company server, and despite keeping backups of that server, it was problematic if the server ever went down. Today, our BitBucket solution is cloud based. This means we can work anywhere, anytime so our development schedule isn’t disrupted and our developers aren’t tied to just working in one location. It also has fewer overheads, reducing ongoing maintenance and energy costs to our business. Finally, unlike with TFS where we all updated a single instance of a project over time, BitBucket has allowed us to work in a much less linear fashion and we can now do controlled feature releases without the worry of conflicts between each other’s work. All in all, our development team can now work more efficiently, more easily and more effectively and that’s great news for our clients.