Programming advice from Ancient Rome: "Festina lente"
Studying Latin in high school, I was perplexed by the phrase festina lente (“hurry up slowly”). On its face, it’s an oxymoron, but it became an aphorism – and has stuck in my head for a quarter century – because it expresses a profound truth. We should aspire to achieve our goals quickly but without moving so fast that we trip ourselves or drift off in the wrong direction. We must regularly adjust our course and run slowly enough that we don’t run off a cliff or twist an ankle stepping in a rabbit hole. I mention this because I failed to do this on my PowerMandarin project and am now suffering the consequences. First, the good news: Every change I’ve made to my website has been stored in a “version control system” (Git), so I have been able to roll back in time to February and am now going through all my subsequent changes and re-applying the good stuff. I’ll then go back again and look carefully at possibly problematic changes. But I should have avoided this whole nasty mess. I made two inexcusable mistakes. I’ve read a number of excellent books on how to program (including: Ship It!, The Pragmatic Programmer, Code Complete, Practices of an Agile Developer, etc.). They all stress: 1) Write a solid test suite with broad coverage of your program; and, 2) Change your code in small chunks and test each chunk before moving on to the next chunk. ...