As techies, we’re accustomed to writing neat code, respecting best practices, following guidelines and asking for clear requirements each and every time. But this shines a bad light on us when we try to go the entrepreneurial route. It doesn’t matter if we’re building the next <insert-social-media-network-name> or that we’re building Uber but for <insert-weird-made-up-industry-name>, it has to be perfect. If possible, it has to be even better than the thing we’re cloning. We all know those developers from Facebook store their passwords in plain text… we’re going to encrypt everything thrice! What all of this does is kill “done” and “good enough”. And more often than not, good enough is all we need to validate a market, to see if there’s potential, or to serve that market directly. Working in corporate taught us that products should be launched feature-complete, zero-bugs, sound architecture, scalability in place and with all the bells and whistles. This was also my thinking until I read "Remote: Office Not Required" and "Rework" by the duo behind Basecamp — David Heinemeier Hansson and Jason Fried. It’s in one of these books, where I first encountered the expression “build half a product, not a half-assed product”.