This website is, and always will be, a backup to my advice to clients to just get something live. For some people, Getting It Live is such a huge blocker, psychologically, that projects can drag on for months before going live. Everyone ends up frustrated at trying to tweak something until it's perfect but guess what! I have put well over 100 websites live and they are never perfect. But. Guess what number two:
It doesn't matter.
- Websites aren't carved in stone. That's one of the best things about them
- Software is never perfect
- You will never trust something that is perfect first time
Number one is obvious. If something is broken; push a fix. Easy. Number two is a little more nuanced. But look at your app store updates; Facebook pushes an update every other day. They have some of the smartest minds in the world (I know; what a waste) working on that software, but it still needs updates?! Because software is made by people, and people aren't perfect. If Facebook is willing to accept that, it's probably fine for you to, as well.
And finally, and most importantly. So important that it gets its own paragraph. It is impossible to trust something that is right first time. I have been making software for nearly two decades, and if something works first time, I break it just to make sure it actually ran. Read that again. When you do things right, people won't be sure you've done anything at all. If a tree falls and no-one's around to hear it, did it make a sound? I'm serious here; it's impossible to trust something you haven't seen fail first. It's the fundamental principle of test driven development. If you didn't watch your tests fail before you started work, why did you write them in the first place?! Invent scenarios to break your ideas. You are your harshest critic, and that is a huge asset. Scrutinise your ideas, and try to defeat yourself.
Get your thing live. Above all else. Get it live. I cannot stress this enough. Get it live. Just do it. Get it live. It might feel wrong, and you might be worried, but it will help you realise that "done" is better than "perfect". "Perfect" is unattainable. Strive for it, but don't be imprisoned by it. You will know if it could go live. If it can do the one thing you need it to do; get it live.
The best piece of advice my dad ever gave me was that you start learning to drive after you pass your test. To contrive that to serve my point: your software can only reach its potential when it's live. You are not your users, so don't pretend you know what they want/need. Give them the best thing you can make, then let them tell you how to do it better.