Sometimes, Whatever Works Is Good Enough

Sahil Lavingia is a young developer who's made a lot of impressive projects, and along the way, he's learned a lesson that a lot of perfectionists can benefit from: Sometimes, whatever works is good enough. That doesn't mean you can't and shouldn't strive to do things well (even things you tell yourself you suck at), but you shouldn't let perfection get in the way of actually doing something. Here's his take:

Photo by David Lytle.

I have found myself constantly uttering the words "whatever works". I say it daily, and think it much more often than that. It has a sort of negative connotation: as long as it works, go with it (even though it may really just be a duct taped solution). But duct tape works!

Small shops and startups have one really big thing going for them: speed. I take pride in the fact that we can build stuff quickly. If it works, it works. If you can get 95% of the way there, in 5% of the time, you'll have months of time to improve your product before any of your competitors or incumbents can react with real product changes. And if you do it well, you can switch-out the backend in the future, without your users noticing.

It's come to the point where if I don't feel I'm hacking together a solution and asking myself what the heck I'm doing I'll take a step back and figure out if I should just go ahead and launch it.

For example, Dayta. I built the first version of Dayta in a week. In later versions, I had to rewrite the entire database solution I had built (think one large array of objects for the entire app… yeah, seriously, but it worked!) and it took tens of hours. But because I hacked together a solution earlier, I was able to complete the app in a week. And more importantly, have the time later on to improve the product later while constantly gaining feedback from tens of thousands of users. "Usage is like oxygen for ideas" - Matt Mullenweg

I suck at a lot of things. Programming is one of these things.

I like designing my ideas, and have the ability to duct-tape it enough to make it work well enough. Sometimes I even have the persistence to follow through and launch something. It looks good from the outside, but behind the scenes my code is atrocious and hacky.

But it works. And users will never know the difference.

Whatever Works [Sahil Lavingia]

Sahil is just a 19-year old kid based in San Francisco. He's working on Gumroad, which makes selling stuff as easy as sharing a link. Previously, he was on the founding team of Pinterest and built Turntable.fm for iPhone. You can follow him on Twitter here.


Comments

    I wouldn't hire him - code hackers are the worst programmers to work with in a team. They come in, crap all over everything then say 'but..... but...... it works'.

    The problem is these hacks don't get fixed - they stay and then they become the bane of your existence because you have to work around a poor design forever more.

    This is the way of the future.

    Boris - I suspect it doesn't matter if you'd hire him, as he'll probably be the one hiring.

    Yerp.. I've done things that everyone else consider impossible simply because of this philosophy. In one instance, I was teased and yelled at because I kept going at my little project.. then, as I knew it would, it worked and those same naysayers suddenly started saying things like "Why didn't I think of that...", simple answer: you told yourself it was impossible. I only hope they learned more than the actual single practical thing was possible but that other things are possible also.

    "We hearitly support this methodology" - The bad guys.

    I'm pretty sure Microsoft, Apple and most other software devs are already in this frame of mind, if they weren't, we wouldn't have virus problems or hacks. Perfect code isn't impossible, it just complicates the situation to nth degree, among other issues.

    Sure its not to the degree of a band aid fix, but by no means is it perfect coding.

    Anyone (well, almost) can usually hack a solution together. I myself have done it at times. Especially when trying to learn a new language or figuring out how to do something. Where wisdom comes is when you say to yourself "yep, that's how its suppose to work, that's my prototype", then use the prototype as a reference, but never let its code enter production".

    LEARN HOW TO CLOSE TAGS FFS. READING TINY ITALIC TEXT ON A 27" IS ALMOST AS ANNOYING AS ALL CAPS.

Join the discussion!

Trending Stories Right Now