I’ve had a discussion a few days ago with a friend about code refactoring. I think that most of the problems in IT emerge from the fact that almost everybody follow to the following pattern:
– Does it compile?
– Yes, but…
– Then ship it!!! Now!
I consider code refactoring a very important step of the development process, especially when dealing with strict deadlines and short iterations. When you receive today the specs for a project and the project manager tells you that the deadline is yesterday, you don’t have the time to properly implement all the design patterns, write documentation,
Unfortunately I have seen a lot of projects where nobody bothered to refactor the code as it was deemed uneconomic – “How will we explain this to the customer? Paying twice for the same thing…” – but most of the time the customer ends up paying several times more, because the development process becomes really slow, the deliverables become extremely buggy and the number of billed hours grows exponentially.
Or I just have a lot to learn about business practices and this is the desired way of doing development 🙂 Who knows? Because I’ve seen this happening way to often.