Rewrite, refactor, or reinvent? Lessons from 6 software rewrite stories (2019)
I briefly worked in the (Swedish) public sector, was on a team tasked to replace an old system written partially in Cobol and partially in some IBM-tech nobody understood anymore.<p>The system was <i>huge</i> and poorly understood, and a lot of people used it to do most of their work. Extremely critical system for the very fabric of society.<p>There had been several previous attempts at replacing it. They&#x27;d sort of fizzled out along the way, so they were stuck with several half-finished iterations of replacements that were in used in parallel with the old system.<p>This was it though. Hundreds of people. Micro services. Modern JS frameworks. C4 architecture and hexagonal design and cloud native and every goddamn buzzword that&#x27;s appeared in a programming blog the last 10 years. Just get it all in there! Everything the cool start-up kids were using needed to be apart of this. It wasn&#x27;t clear exactly how it was going to better, but it sure was gonna be <i>modern</i>.<p>I didn&#x27;t see the project through but I could see where it was heading clear as day.  It was only a year in and maintenance was already becoming a problem.  Shit was falling apart.  It was a nightmare to debug.  Nobody knew how the heck all the services quite communicated.<p>I&#x27;ll eat my shoe if they don&#x27;t spend the next 25 years fixing leaky pipes with this microservice mess bolted onto the previous iterations as an even more grotesque programming-cronenberg.