Our role as a Startup CTO is to build something from nothing and fast. We're super eager to get going, diving in and building the solution to the problem your business is trying to solve. You're there with your co-founder or CEO designing what the first version of your product looks like. It has amazing features, looks great and solves all your customers problems at a touch of a button. Here's the problem, you've over engineered the product before you've even started.
Your first version of the product should be as close to no code as possible. You have no idea whether anyone wants the product you're building, you have very little to no money and even less time. You need to quickly validate your idea, otherwise bin it and move on.
Let me give you an example.
You have a great idea to build an app that allows people to manage their money across multiple bank accounts, it'll give them insight into their spending behaviour and encourage good money management. You're super excited and you can clearly see what this will look like. You start by building v1 of the app that integrates with a handful of banks and provides general categorisation of transactions. You get v1 shipped and in the hands of the customer, but you find out that what you built isn't what the customer wants or needs. The time it took to build v1 is gone, you've lost weeks of time. I've been there, and it sucks.
Here's what v1 should have been. A spreadsheet template.
A simple spreadsheet template that people could download, enter their spending and display some top level spending categories is all that v1 should have been. You'll be able to build that spreadsheet in a day and get it in the hands of your customer instantly.
I found this out the hard way
Back in 2019 I was building v1 of the Collctiv app, I was super excited and motivated to get the first version in our customers hands. 8 weeks later I'd created v1, it was brilliant. You could sign up, create a group, invite your mates, create an event, pay for the event and have full chat messaging with end-to-end encryption. On paper it was everything our customers needed.
Then came the day to put it in our customers hands. Our beta group of testers was a rugby team, 20 guys preparing for a pre-season friendly using our app to pay for match fees. Literally testing in the field.
All they have to do is download the app, create an account, join the group and pay. That's it, or so I thought.
Downloading the app was the first problem, poor signal in the field slowed download times, not to worry everyone is happy to wait a few minutes. Next, sign up, some people pause to think of a password to use that they'll forget in 5 minutes because I've been too pedantic about how strong the password needs to be. OK they're in, now to join the group, the group admin just pings them an invite via the app. People start to get confused, do they search for the group? Do they create their own? Will I get an email or will it appear in the app? Instantly I start to see major issues, everyone is confused and doesn't know what to do.
We help everyone to join the group, this takes a while, particularly with the rubbish mobile reception. Now the last step, to pay. This should be easy, just tap the event and hit 'Pay'. By this point I'm bricking it, I've just seen 20 people struggle to download and signup, now I have to watch them try and pay with all of the security prompts that come with online payments.
I notice a bug in the pay area of the app that’s causing everything to stop working. Frantically I'm updating the back end systems to fix the bug. The bug's fixed, great, everything should be fine now. People become distracted and start exploring the chat area and send Gifs, emojis and messages. I need to bring them back on task. One by one we go round and get the team to pay their match fees.
We got there! But wow we've got a lot of work to do.
The first version of the app did far too much and was way over engineered and yours is too. We all do it the first time.
The week after I ripped out half of the code base and stripped it right back to its core solution, receiving payments from a group of people.
A hard lesson and one I'll never forget.