Category Archives: Software methodologies

When should you rewrite an application from scratch ?

Recently, I had to work on an old C++ builder 4 (1998) application. The IDE couldn’t be installed anymore on Windows 7, there were global variables and singletons everywhere, client-based compilation directives, no separation between UI, business logic and data layer, no class isolation, memory leaks all over the place, compiler failure as soon as the source code got too big, dependencies on obsolete COM objects, etc. A nightmare. It looked like the perfect example of an application that should be rewritten from scratch, and it made me wonder when is it a good time to completely rewrite a product ?

Short answer : Never.
Continue reading

Questions to ask before a code refactoring

“Refactoring is the process of taking a running program and adding to its value, not by changing its behavior but by giving it more of these qualities that enable us to continue developing at speed.” – Kent Beck

A new developer gets his hands on an existing source code, and soon your hear this complaint : “Code is a mess, it must be refactored !” Sometimes, that’s true, and some other times, that’s a great recipe to end up with a code as bad as – or even worse than – the initial code. To decide if a refactoring is required, here are ten questions you should ask yourself (or the developer asking for the refactoring): Continue reading

Hints for efficient project postmortems

Project postmortems help improving a development process. But before planning one, ask yourself why you need it, and what will be the consequences of doing it or not. There’s nothing worse than collecting people’s feedback, and then ignoring it. If you are not ready to take actions to improve things, just don’t do a postmortem. Else, the following tips may help you get the most from your project postmortem : Continue reading