Startup CTOs: Things you wish you’d done differently?

This came up recently on a mailing list of CTOs: If you had to start from the ground up again, what/where would you invest more or less time? (thanks to Klaas Ardinois for posing the question).

This is a particularly good question because:

  1. CTO’s lives are all about strategic quandaries, seeing the wood for the trees, making long-term decisions with far-reaching impact, etc.
  2. Startups rise and fall relatively quickly (5-10 years) giving you the chance to repeat the process end-to-end multiple times in a career, giving multiple datapoints for each “thing” you did
  3. Engineers’ decisions play out over months, where CTOs’ decisions play out over years … but the Tech industry moves so fast that “years” is enough time for things that were ‘correct at the time’ to now be ‘very foolish’.

… so any CTO who isn’t periodically re-assessing multiple years’ worth of their playbooks is … in a lot of trouble.

Top regrets / warnings / re-thinks

Each startup is unique, each situation, so the specifics here may be less useful than the aggregate – unless you have the luxury of speaking to each individual CTO about the subtleties of their experience. So I collated results from about 60 responses – freeform responses from people and my own post-mortems – and then converted them into the major recurring themes I was seeing.

FrequencyCategoryNotes
Very highBuy, don’t buildRemember YAGNI; “mainstream” is great when its not your core business; etc.
Very highCustomers drive your decisionsFinding strong customer (product) / market fit is the only thing that matters for new businesses
Very highAvoid tech-for-scaling / choose boring firstBoring, common, easy-to-build is best until your customer numbers are large; tech you know (but dislike) will get you further faster in the early days
HighHire cleverlyNarrow/specialised/over-skilled teams do poorly – diversity is more pragmatic (remember: startups often pivot!)
HighStart DevOps earlyThe efficiency gains vastly outweigh the upfront costs
MediumBudget conservatively – funding and leannessStartups only truly die when they run out of cash; don’t run out of cash
MediumAutomate frequentlyGoldilocks: not too much (over-engineering), not too little (lost opportunities for speed)
MediumCreate a positive cultureEveryone should FEEL valued (remember: startups often pivot! Unexpected/non-expert viewpoints often needed!)
LowPrioritize for low reversal-costMake decisions based on what you can rapidly undo/reverse, not on what you (think, based on current weak data) is correct
LowWYSIWY{Product}Anything a customer sees is part of your de-facto product, whether you want it to be or not; the login page, the ‘forgot password’ flow, etc
LowStart monitoring earlyChoosing what data to collect for engineering (not just marketing), analysing it, automating the responses
LowTriage problems, only worry about the top 1%Only a few decisions each year in a startup really matter, so focus on those
LowIgnore Tech DebtUntil you have P/MF, don’t worry about Tech Debt

Some worth highlighting…

It’s sensible to pay extra attention to the things that other CTOs bring up most often. But it would be foolish to think that their importance/priority is directly proportional to their frequency. I want to highlight a few based on my personal experiences.

“Start monitoring early”

The love of monitoring in tech industry is extremely new (it’s barely a decade old!) and it hasn’t sunk-through to many engineering teams, managers, and leaders yet. I expect that this question asked in 5 years time we’ll see this one rise much higher: the people who came to CTO roles via monitoring-heavy companies, or picked it up early themselves, will be eclipsing those who came late to the party (who’ll be saying “why oh why didn’t we do monitoring more aggressively, sooner?”).

“Low reversal cost”

In my opinion this is far more important than its frequency would suggest – but it’s more of a ‘CEO tactic’ than a CTO one, which probably explains the relatively low showing. If you only get – say – three things right strategically at a startup then I’d strongly suggest this should be one of them.

“Ignore tech debt”

After living through many startups this one is close to my heart: (in startups specifically) we’ve never regretted ignoring tech debt, and many times we’ve spent large amounts of resource on reducing/preventing it only to see little or no benefit in the long-run (usually because the CEO changed direction, the product got thrown away, the tech got thrown away when we invented a 10x faster solution … or the company itself got wound up).

“Hire Cleverly”

This is a pet topic (I’ve been writing a book on the subject for years – almost finished now!): when interviewed about their success, most CEOs from old Public Companies down to new Unicorns all say that “hiring” is one of the top factors – if not the most important factor – in their company’s success. At the same time: most CEOs spend little or none of their time actually doing / improving it.

Hiring is both complex and simple, but the one thing it isn’t is quick/free: you have to invest time and energy, no matter what approach you take. Otherwise you’ll – like most CEOs – still have “Should have hired better”, “Should have hired more intelligently”, “Shouldn’t have made so many poor hires” on your ‘things I wish I’d done better’ 10 years from now, 20 years from now, etc.

“Automate more”

Most of the items in the list are obvious “do more of this = get better outcome”, but Automation is one of the stand-outs where it’s easy to do too much (the big-brother here is “Buy, don’t build” – very easy to get that wrong! But people talk a lot about that already).

I called it the Goldilocks item for that reason. Beyond the obvious cases – things you’ll only do once (don’t automate it!), things you do every day (do automate it!), there is a broad grey-area which takes a lot of skill/experience to navigate. Engineers with less than 5-7 years experience tend to struggle here in deciding when / when not to.

Subscribe to the mailing list to get a message when I publish new articles.