You have a new project to work on. You are excited about it and can´t wait to start. You code and you code, from early morning until late at night. And then, finally, your prototype is ready! You launch your program, website, web service or whatever. You see the first results, do some fine tuning and that´s it. Programming is such a satisfying and rewarding job! But wait, there´s more…
The dark side of programming
Now, it´s a few days, weeks, or even months later. Your software more or less works, but by now you know that there are a few dodgy parts in your code. You already knew it the moment you wrote that part of the code. You just thought: Lets get it finished, I will improve this part later, for now I just want to get it done!
Well, ‘later’ has just arrived. The thing is, you just don´t have the time or the will to go back to improving your code. It´s already finished, and it works! Until someone complains about some inefficiency, you really don´t feel the need to improve anything, you´d rather work on some inspiring and interesting new project.
I´m pretty sure a lot of programmers have this problem. I think it is a big reason for a lot of problems, bugs, and inefficiencies in software. People have to work on time limits and low budgets. Once the software more or less works, few people really care how. One of the reasons I´m writing this is to make myself more and more conscious of this. It helps me to improve my code right away, and to not be lazy, so later it won´t bite me in the ass.
Going back to old code is about as boring as it gets. You have already solved the main problem, or written the main algorithm. It is the part of programming that borders on administration or factory work. Note to self: Prevent having to go back to rewriting old code, just suck less the first time you write it!