profile

Understand Legacy Code

Piles of Tech Debt, no tests, no docs, short deadlines… But you are not alone! Join me and get regular tips, tricks, and experiments to turn unfriendly codebases into insightful ones 💡

Featured Post

💡 Refactoring… but at scale!

Hello Reader 👋 I hope you are doing well today! I recently finished reading “Refactoring at Scale” by Maude Lemaire, while on a nice family trip to Toronto, Canada 🍁 Honestly, I found it quite good. It's packed with interesting insights and good advice built from concrete real-life experiences. It has become one of the few books I would recommend to someone dealing with a huge codebase, dozens of engineers constantly molding it, and pressure to keep delivering business value to customers....

Hello Reader 👋 I hope you are doing well today! Do you often find yourself fighting with the intricacies of legacy code or navigating through convoluted programming structures? In his popular “Refactoring” book, Martin Fowler collects an impressive catalog of moves that can transform the way you approach code maintenance and evolution. If you haven’t read it and are unsure what to expect, I’ve written down a high-level summary of what you will find here. Hopefully, that gives you a better...

Hello Reader 👋 I hope you are doing well today! If you had a magic wand, what would you do with the tangled legacy codebase you are dealing with? For many developers, the answer will go along the lines of: Kill it with Fire!!1!Let’s rewrite the whole thing on a modern stack. Hopefully, Marianne Bellotti, the author of the book with such a provocative title, has better options for you. I've read it cover to cover and I will share with you my personal highlights here. P.S. here’s a shareable...

Hello Reader 👋 I hope you are doing well today! For the past few weeks, I have been reading different studies about developers and how they interact with unfamiliar codebases at work. Today, I would like to share one that I found particularly insightful… and painfully close to my own experience. The title: “It’s Like Coding in the Dark”: The need for learning cultures within coding teams— Catherine Hicks, Catharsis Consulting (2022) PDF source If you prefer to read that online, I wrote an...

Hello Reader 👋 I hope you are doing well today! Next week, I will animate a hands-on workshop at DDD Europe. For 2 hours, I will teach 30 people how to craft their own automated refactorings. And since my head is deep down into "refactorings" these days, I thought it would be interesting to share a few handy moves with you today! Just before we dive in: if you are a late bird who wants to join me and attend DDD Europe next week, use this special link to get a 10% discount on the tickets. It's...

Hello Reader 👋 I hope you are doing well today! In this email, I want to talk about tests and software architecture—soon enough you realize that both are connected. Unit tests, Integration tests, Integrated tests, mocks, fake, stub, etc. It's very easy to get confused and involved in debates with folks that have very different views of what exactly is a "unit". Moreover, dealing with Legacy Code is quite different than starting fresh. Rules may be different here. Right? OK, so buckle up and...

Hello Reader 👋 I hope you are doing well today! Today, I'd like to discuss about a concept that works at different level of software development: the Proximity Refactoring. The core idea is: what changes together should stay close together. It's about cohesion. And you can think about that deep down in the code… or very high, at an architectural level. If you prefer to read that online, I wrote a blog post for you. Refactoring Legacy Code can be a daunting task. Sometimes, Technical Debt is...

Hello Reader 👋 I hope you are doing well today! Today, I want to quickly explore the advice of deleting dead code. It's a good and popular one. Yet, it doesn't address one concern: how do you retrieve the deleted code? I'll show you how to. If you prefer to read that online, I wrote a blog post for you. Before we dive in, there is something cool I want to share with you: MenderCon is back on May 10th 🤘 What's MenderCon? It's a virtual unconference for people who enjoy working with existing...

Hello Reader 👋 I hope you are doing well today! As I told you last time, I'm experimenting with AI assistants these days. I want to see what they can or can't do when it comes to legacy codebases. There are shiny promises that go like "AI will refactor the code for us". But how reliable are these? Let's find out… This article is the follow-up of "Can AI help me write tests on Legacy Code". Now that I have tests in place, I'm gonna use Rubberduck to help me refactor that code! To be honest, I...

Hello Reader 👋 I hope you are doing well today! These days, I'm experimenting with AI assistants. I want to see what they can or can't do when it comes to legacy codebases. There are shiny promises that go like "AI will refactor the code for us". But how reliable are these? Let's find out… This article is probably the first one of a series. I'm gonna try out the Rubberduck VS Code extension. Interestingly, the source code is open! Thus, I've started to contribute. But in this article, I'll be...