I like to think of myself as a perfectionist. I like going back and forth re- evaluate all the possible options and come up with the cleanest, best, perfect alternative (I can think of) out there. If you are like me and you got to maintain someone else’s bad code, this is gonna be a real nightmare. You just want to scratch everything and start over again. Unfortunately, management people doesn’t think so and you don’t get the luxury of times you need. All they want is you get it fixed and ship the product as soon as possible.

I thought it is what makes me a better developer but in the end, getting a shippable product is what matters.

Sometimes, it’s just better to use a bit of dirty, tricky code to make it works. Sometimes, you just need a bit use of dirty code if it is what it takes to get the product out of the door.