Ship fast, refactor later

September 6, 2021 (3y ago)

Ever found yourself spending time trying to make your code more optimised and scale-able, for a project that isn't yet released? Even making small adjustments to your design - this font, that spacing, this colour and that layout? Because I know I am hugely guilty of this.

It wasn't until recently, when I was reading Zach's Engineering Handbook, where he discussed the thought process behind 2 developer mindsets. The first, someone solely focused on their code and making it optimised - using the latest and greatest frameworks. And the second, focusing on their project and building code that gets the job done, and in turn - they're able to ship things faster.

This really hit the nail on the head for me, I've been that first person, spending hours deciding whether a button should be bigger or smaller, red or blue, or even its layout. Yet, I completely look past the fact that my average visitor just plainly won't care - they're coming for the features not my button being small or larger.

Of course, optimising code is certainly a positive thing, however that should be something you focus your time on after you've released if anything. Stop focusing on step 100, when right now you're only on step 2 or 3. I've been guilty of procrastinating about this, when in fact my worries are often eliminated once that time comes to scale.

For example, in a recent business that I just sold, we could have easily spend hours worrying about our data structure being the way it is. There was certainly ways of optimising it further, but - what would it solve? Nothing. Would we ship faster? No. Our site was still lightning fast, yet that could of been a decision that I admit up until recently - I would have sat there debating with.

Don't let silly decisions like that deter you away from shipping fast, when often the benefit is small - and scaling especially is something that shouldn't even be on your mind yet. Often visitors will not even care, they're coming to your platform for the features you've mentioned to them about.

When I was speaking to Arvid Kahl, an entrepreneur who sold his business for life-changing money, and has wrote a series of books to empower others with his advice, this flicked a light bulb moment for me to realise I need to change my ways. In our discussion, one of the things he said was - "focus on conveying your message as clearly and early as you can. Design is important, but not the priority.".

You should focus on getting your product released quickly, start gaining some traction and then work on the small details once the time is right. Your priority should be focused on making your product the best it can be - features wise, not your button or layouts, or even whether your code is optimised or not.