Single Issue Branching
While version control software is not new, products like Git have truly revolutionized how software companies build software. The concept is simple: allow developers to collaborate while writing code. Modern software is complex with many moving and interconnected pieces. With version control developers can work on those pieces independently and then merge their changes back into a repository or collection of code that all the developers on that project can contribute to.
Over the life cycle of a software project it is useful to take advantage of a feature of version control called branching. Branching makes it easily possible to simultaneously maintain multiple versions of the software. When it comes to branching there are many different strategies that software development companies employ. For example some companies, in addition to the primary production branch (the software that is in live operation) there might be branches for testing, staging, development etc.
Why is this important? Imagine a developer makes a change to your software application. If that change was made in your production branch then every user currently using the software would be affected by the change. Now imagine that change fails. Every user is affected by the failure. Now contrast this to using a branch is dedicated to quality control. The change is made tested, fixed and tested again in the quality control branch before it is ever copied over or deployed to the live production system. It’s easy to see how this could make for much happier users.
At Ticomix we have spent years perfecting our branching strategy to maximize our efficiency and to minimize errors and downtime. We use two primary branches called Master and Live. Master branch is a collection of current development, providing us an area to handle quality control through software testing that is done both internally by our software testers and externally by our clients. The Live branch is the code currently being deployed for production use.
And here is what we believe is our secret sauce, something that sets us apart from many other software development companies. Our developers create additional branches and follow a strategy we have named “Single Issue Branching”. Our strategy is to treat each bug and feature request as a single issue. Each of these issues then get their own branch. The developer makes this branch by branching it from the Live branch. So their starting point is the code that is currently live in production.
Once the developer completes their work they merge their single issue branch into the Master branch. Once in the Master branch the quality assurance happens and the changes are completely tested and verified to be working. Finally then the single issue branch can then be merged into the Live branch meaning that the developer’s work would then be live in the production application.
Why does this matter? It matters because it means that we can deploy any given change, any issue, any bug, any feature…independently of any other. This is truly a game changer. The speed at which we are able to not just fix things that are broken but also to provide new features is astounding. Instead of waiting for a group of features and bug fixes to come out in the next version, your users are able to see these enhancements immediately. With many traditional strategies you could be subject to long waits and costly delays as you stand by for the completion of every single change that is currently in progress to not only be completed but then to also be fully tested.
Want to learn more about how Ticomix can streamline your software development? Contact us today to start discussing your next project.