I recently stumbled across the following question on Quora:
What are the best examples of software bugs that became features (a.k.a. misbugs)?
And here is my favourite answer:
This is from an anecdote by Ken Demarest, one of the original developers who worked on Wing Commander I on the PC…
… we were getting an exception from our EMM386 memory manager when we exited the game. We’d clear the screen and a single line would print out, something like “EMM386 Memory manager error. Blah blah blah.” We had to ship ASAP. So I hex edited the error in the memory manager itself to read “Thank you for playing Wing Commander!”
Some software engineers would consider this an awful hack – and they would be right. Some would find nothing of it. Let’s not talk about the latter ;-). One of the lessons my former boss taught me in the beginning of my career is that sometimes it is needed to do the quick solution the business requires – even if you consider it dirty. The term technical debt was invented for this reason I believe and if used carefully, can be a powerful tool.
When deadlines are pressing, you may not have a company to work for tomorrow if you don’t fix a problem today. Sometimes the only solution possible is a hack like the above. This keeps you in business and gives you a chance to fix it later – and if you don’t forget this, technical debt can be a powerful tool to use. If you do, it will slowly but steadily destroy your codebase, once the broken windows effect sets in.
One difference between a good software engineer and a great software engineer is that great ones know when to use this tool. And they will make sure to clean up eventually.