??? Bypassing Technical Debt
Douglas Squirrel
Make tech insanely profitable with new provocative ideas every Monday in my Insanely Profitable Tech newsletter (see Squirrel Squadron in Contact Info)
This is an extract from the a previous edition of the Insanely Profitable Tech newsletter - my weekly firecracker to the Squirrel Squadron packed with provocative thoughts and tips. To get the full version - it’s all free! - just sign up here: https://squirrelsquadron.com/
There’s a stretch of road in my town that doesn’t make any sense. It’s not near any points of interest, there are no houses or shops there, and I rarely see many other vehicles using it. But it’s wide and fast, as if the builders expected lots of daily traffic. Checking the history, it looks like it was first a country road, then when demand for travel to Dover and the Continent skyrocketed after WWII, it was given a patriotic name and extended into a bypass to handle the load and keep drivers off local streets. But since then it’s been supplanted by a huge motorway, and now, except when that route is blocked, there’s not much reason for anyone to cruise down Churchill Avenue.
If you look closely, we’re surrounded by vestigiality: snakes have hind legs, your computer keyboard is designed to avoid typewriter jams, and Britain has an official door-knocker to prevent a recurrence of our 1642 civil war. Leftovers like these are evidence that our forebears were smart, but not precognitive: nobody would spell the word “knight” like that if designing English spelling from scratch, but Chaucer wrote it as he heard it, unaware of coming changes like the Great Vowel Shift. The odd relics we trip over made sense to those who created them, and per Chesterton, we should always ask why a fence is there before removing it.
领英推荐
This is why, as I’ve evaluated hundreds of tech organisations around the world, I’ve learnt to cringe when I hear about a “total rewrite”. It’s easier to write code than to read it, so engineers are always keen to create the “right” design, to clear away the strange workarounds and odd constructions of their predecessors. But binning your software and starting over is a classic mistake, known to be foolish since Netscape tried it last century. It’s healthy for developers to make incremental changes that address the “technical debt” they’ve inherited, so long as they don’t down tools entirely; there are excellent techniques with names like “Strangler Fig” that allow them to organise that improvement work while continuing to deliver frequent value to users. Any programmer who tells you “refactoring” the code will take months doesn’t understand what that term means, so send them to me for some re-education–and a reminder that the human body, surely at least as complex as your software, has somehow managed to muddle through despite its useless tailbone, superfluous appendix, and inconvenient wisdom teeth.
Let me know your thoughts, and don’t forget to sign up to get the next one direct to your inbox with even more content!