I'm a firm believer that perfection doesn't exist and even less so for a new startup. When it comes to startups, I think the "Done is better than perfect" mantra fits perfectly. And if a startup holds that mantra close to heart, it should result in something that resembles Mark Zuckerberg / Facebook's "The Hacker Way".
I can remember when we were working on WooThemes V1 (back when the mothership was still easy enough to handle & we could DIY everything), we had to create a membership & payment processing backend. This wasn't something that we could create from scratch (we didn't posess the skills), so luckily we weren't tempted to do so.
This meant that we had to look for alternatives, which lead us to using aMember instead (aMember wasn't so sexy back in 2008). We ended up hacking this into the rest of our installation and over the years, we kept the hacking going, adding more & more less-than-ideal code to it.
We kept this going for about 3 years, until we ripped aMember out completely in August last year and replaced it a brand new user dashboard (which we developed from scratch). The problem was that the new user dashboard took us 16 months to complete and as things stand now (6-odd months later), the dashboard isn't 100% what we'd like for it to be. Yet.
This is however already enough validation for our initial decision not to pursue a custom-built backend when we launched: it would've resulted in us delaying Woo's V1 launch by 16 months.
Don't reinvent the wheel, go open-source, hack & stop looking for perfection.
I guess the above line sums up perfectly. Here's some advice on bootstrapping the technical side of your new startup:
- Stop searching for perfection and forget about being idealistic. It doesn't exist in startups. Getting to 99% is easy, but finding that last 1% somewhere is incredibly hard.
- We live in an age where there are so many great open-source or cheap, paid alternatives available for everything: jQuery library, stock graphics, Twitter Bootstrap etc etc. Don't try to reinvent the wheel, when one of these solves 90% of your problem. You're wasting time & money (neither which a new startup can afford).
- Hack stuff together. Your code doesn't need to be pretty and you can worry about scaling later on. It just needs to work for launch.
Looking back at the WooThemes journey, these are things that are still evident today. We're 4 years old, boast more than 150 000 users and have more than enough revenue to throw money at our imperfections. Yet somehow none of these imperfections have impeded our business significantly. And that's important.
Imperfections are just that and most things in a startup can be better. Imperfections are also mostly inefficiencies to an extent and that's probably where WooThemes have felt the pain of our imperfections most (it generally translates to an increased demand on support). But again: it hasn't prevented us from growing the business.
Would you rather have a perfect or profitable / growing business?