Ship Fast, Refactor Later
Ever found yourself spending time trying to make your code more optimised and scalable for a project that isn't yet released? Making small adjustments to your design - this font, that spacing, this colour, that layout? I'm hugely guilty of this.
It wasn't until recently, when reading Zach's Engineering Handbook, that I understood the thought process behind two developer mindsets. The first is someone solely focused on their code and making it optimised - using the latest and greatest frameworks. The second focuses on their project, building code that gets the job done, and in turn shipping things faster.
This really hit the nail on the head. I've been that first person, spending hours deciding whether a button should be bigger or smaller, red or blue, or its layout. Yet I completely looked past the fact that my average visitor just won't care - they're coming for the features, not my button size.
Optimising code is certainly positive, but it should be something you focus on after you've released. Stop focusing on step 100 when 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 the time comes to scale.
For example, in a recent business I just sold, we could have easily spent hours worrying about our data structure. There were 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 have been a decision I'd have sat there debating about.
Don't let silly decisions like that deter you from shipping fast when the benefit is often small. Scaling especially shouldn't even be on your mind yet. Visitors often won't care - they're coming to your platform for the features.
When speaking to Arvid Kahl, an entrepreneur who sold his business for life-changing money and wrote a series of books, this flicked a lightbulb moment for me. He said: "Focus on conveying your message as clearly and early as you can. Design is important, but not the priority."
Focus on getting your product released quickly, gaining traction, and then working on small details once the time is right. Your priority should be making your product the best it can be feature-wise, not your buttons, layouts, or whether your code is optimised.