What is Bit Rot?
Bit rot is a technical term for the natural deterioration of software. Bit rot is like tooth decay. At first, it is not noticeable and everything seems inconsequential but if you look closely you can see it, and if you ignore it the downhill spiral accelerates until one day you look up and realize you are in the software graveyard of the world.
The question for any software company quickly becomes “What are you doing today to ensure you stay relevant?” To be honest, we are doing a lot…
How to avoid Bit Rot?
You can’t. Bit rot happens, it is just a fact of life. Every year Google Chrome is going to release 4-6 updates to its browser, Apple is going to update their iOS platform, Hackers are going to exploit security flaws, and companies will scramble to release security updates to patch the holes. In short, the software world is constantly pushing forward, and if we don’t keep up with these small incremental changes, over time we will be left in the dust.
Our Approach to Bit Rot
At Gazelle, we have decided to dedicate the entire month of December, every year, to cleaning up bit rot. An entire month might sound extreme but the consequence of not doing this is far too great. We choose December for a few reasons:
- Fixing bit rot requires a structured plan – If you don’t set aside time every year to do this, other priorities will inevitably creep up. This is an easy task to justify setting aside when we have lots of other new features we want to develop. But if we do that, over time we will end up spending more and more time chasing preventable bugs as the product deteriorates.
- Starting fresh every January is a really good feeling – Having a clean slate at the beginning of the year enables us to better plan next years development schedule. We have a lot of improvements planned for 2018 and having the bit rot behind us enables us to accomplish more than we otherwise would be able to achieve.
- Most software updates happen over the summer – Apple, Microsoft, Google, Facebook, and many of the libraries we use inside Gazelle usually release their annual product updates between May-August of each year. By waiting until the end of the year we are able to address everything at one time.
- New bugs get resolved within the user community – When big companies release new products, it is rare to not have any bugs. Immediately following any major software update, you expect to find bugs. By being patient we allow the user communities of each product to flush out any bugs and give the companies time to respond with additional updates. By the time December rolls around most of these bugs have been resolved and our confidence in utilizing the updated product increases.
- Coordination around the Holidays – With the holidays comes vacation time and varying degrees of availability. As a team, focusing on bit rot in December is nice because we don’t need to coordinate as much and it lets us work with our own schedules giving flexibility around the holidays.
Our Philosophy of Software
At Gazelle, we believe the right way to build software is to plan to support it for the long haul. For us, that means we are planning to provide support until the end of the Internet. This is a crazy big idea that we will cover more in another blog post, but when this is your mindset you do things like dedicating an entire month to doing all the boring but necessary things to ensure the future viability of your product remains strong.