A lot of people struggle with legacy code because it’s hard to understand. It’s not expressive. One way to reduce the gap between code writer and code reader so that they reach an understanding is to write expressive code indeed. In all cases, you need to be able to read code quickly. The more expressive, […]
In the previous post, I went through the most efficient method I know to find the source of a bug. Here it is, summed up: 0) Don’t start by looking at the code 1) Reproduce the bug 2) Do differential testing __2a) Start with a tiny difference __2b) Continue with larger differences 3) Formulate hypotheses […]
Do you like doing maintenance as a software activity? Most people don’t. Maintenance is often associated with trudging through lines of code with the debugger in a desperate search for bugs, in software that someone else wrote. All in all, maintenance gets the reputation of being an unrewarding activity, with low intellectual stimulation and not […]
Feeling like the codebase you’re working on is poorly designed? Wish you could focus on writing good code, rather than trudging through mud code all day long? Would life be easier if only the legacy codebase had a clearer structure? If you answered Yes to any of those questions, be aware that you’re not alone. […]
Have you ever struggled to understand a codebase that was bigger than you? Most of us go through this experience more or less often in our career, and this is not a simple thing to do. Chances are you’re in this situation right now. During one occurence of the Software Craftsmanship meetup somebody was asking for advice […]
If you’re working with legacy code, chances are some of the areas of code you’re in charge of have a design that is less than ideal. But if you’ve been working with it for a while, you may be able to navigate this code with ease, and maybe you don’t even see its little weirdnesses […]
When I write those words, I’ve been working 9 years in software development. Those years have taught me technical stuff, but also a few things that are not about code itself but that leads to good code, and to more. Those non-technical things aren’t taught at school or in C++ books. Nevertheless, I consider them […]
With my team we finished a large project that consisted in replacing an old technology by standard C++ patterns across our codebase. This was the largest project I’ve ever worked on. We were the four of us and it took us several weeks to root out all the usages of this old technology. In the […]
I’m assuming that, if you’re reading this, you are aspiring to become a good developer. But what is a good developer, to begin with? Let’s reflect on what we need to do in our jobs as software developers to identify what is important–and therefore what we have to master in order to become “good developers”. […]
Coronavirus is now transforming our lives one a day-to-day basis. As I write these lines, it is killing hundreds, infecting thousands, and scaring billions. Countries are locking down, the stock market is in free fall and all events are getting cancelled. On my end, I’m currently fighting the spread of the virus by: washing my hands […]