When working on a project, I constantly find myself at odds with…myself. It’s a battle between the engineer in me wanting to write ideal code and the entrepreneur in me who just wants it working. The engineer wants ideal code, while the entrepreneur is fine with it being hacked together as long as it works great.
I go through phases where the engineer takes over. There’s an itch that has been irritating him for weeks, maybe even months, and damn it, he’s going to scratch it. He starts writing some kind of framework, or refactoring some code, or implementing some new, fascinating approach he read about, or working on a cool, new feature that is out of scope. At the same time, from the back seat, the entrepreneur starts nagging for updates on the overall progress of the project. Unfortunately though, scratching these itches rarely moves the project forward, so the entrepreneur is relentless. With every line of code, the entrepreneur is becoming more and more irritating. Eventually the nagging is more irritating than the original itch, so the engineer drops his tangential coding and resumes hacking the project forward.
When I only had client work, I allowed the engineer to scratch a few itches per project. It improved my code base, often saving me time on the next project, and increased developer happiness. Sure, the project price was set and I would make more money by just hacking, but I valued developer happiness and it was worth the tiny cost.
But now in the throes of building a new business, I can’t afford to let the engineer take over at any point. A founder’s time is expensive and any time spent working on the business should be moving it forward. A balance is needed between the engineer and the entrepreneur. Neither should take over completely. The entrepreneur keeps things moving forward and the engineer ensures that hacking doesn’t create a complete disaster.
New businesses need to hack things together so they can start generating revenue as soon as possible. Adii shares a great inside story on this. WooThemes hacked together their membership and payment processing backend when they started. And hacked away at it for three years, until they were in a better position to rewrite it. The engineer cringes at the idea of hacking away at crappy code for three years, but the entrepreneur slaps him, quoting WooThemes’ success.
Fortunately, I’ve found that the entrepreneur’s nagging is much more intense when there’s no revenue, which makes it easier to keep the engineer in check. That’s not to say the engineer doesn’t try to take over as often as before. He does. But the mere threat of intense nagging sends him back to hacking.
Vote this up on HN: