Another common question I’m answering working with scaling tech companies is…

Q. How much of your r&d spend should be focused on platform work?

A. 50%, and most teams are way off what it should be. Let me explain…🧵 (1/21)
2/ This question is a proxy question for many underlying issues…

✳️ Lack of trust in the engineering team
✳️ Lack of understand of your strategy
✳️ Lack of long term thinking and culture
✳️ Lack of understanding of compounding technology investments
3/ This comes up is often in panic situations, “the engineering team says that there’s too much technical debt and can’t work on features”… but the problems started way before.
4/ Let’s step back… what is meant by platform? Its definition has changed over the decades and we can’t talk about platform investments without a shared definition.
5/ Platform used to mean a complete software development environment and underlying subsystem with language, runtime, components and all associated libraries and binaries.

Only the big guys had one, Windows, iOS, Linux, Eclipse –

and then platforms became mainstream.
6/ In the recent decade, a platform is more broad and means anything that you can build upon.

A platform enables you to build things with that were not originally envisaged.

A platform is the foundational layers of your product.

Every company in the 1-N phase has one.
7/ More concretely your platform is a lot:

✳️ Infra that runs your stuff
✳️ Development environment and tools that helps write / test / run code
✳️ System architecture / security
✳️ Key technology choices
✳️ Core abstractions (data model, business modelling)
✳️ API/SDKs
8/ Your platform isn’t just the small set of hidden engineering parts.

The quality of your platform investments will influence some of your most important product features: scalability, speed, quality, flexibility.

🙌🏽 It's the most important product features you have.
9/ Platform work is also the most important retention tool for your engineers.

Give them the tools and architecture to be productive.

👉🏼 And if you don't, they will leave to a team that will.
10/ A way of visualizing your r&d investments is with 3 buckets. Having the right mix is critical. They work together.

A healthy investment distribution is 50% platform, 40% features, and 10% experiments.

You can skew for short periods, but over the long term its fatal.
11/ The feedback loop between investment types is critical.

Feature and experiments inform your platform roadmap, and inversely platform provides leverage to build more features/experiments.

If not balanced, you loose these feedback loops. And the feedback loops guide you.
12/ Platform work isn't all roses.

You can burn A TON of money with wasted platform work.

It’s a huge trap and the larger a company gets the more of a trap it becomes.
13/ Golden Rule of platforms...platforms are extracted from product / feature / experiences.

You can’t build platform hoping “they will come”.

Break this rule and you’ll waste millions in APIs that no one needs or uses.

⭐️ Duplication is better than the wrong abstraction
14/ The most common platform debt domain are data models that become bloated and hard for devs to grok. God objects, mutations and side effects everywhere.

Keep your domain model up to date with your current understanding of the domain. Not that of your past understanding.
15/ The other common low investment is in test suites and automation around development env setup.

I've met teams where it takes 2 days to setup a basic dev env.

Not a joke. This is a tax on every developer you've hired (oh, did I say that they will leave because of this).
16/ Because your platform supports your most important product features you need data about them.

Your CFO will publish detailed financials, you have to track detailed data about speed, scale, uptime

...most engineering teams don't track as well as your finance team does.
17/ Platform work has longer timelines. It's longer to build a subway, then to add a new floor on an existing building.

Make sure you celebrate platform work in progress 🎉.

Have milestones (ideally in prod), don't wait for it to ship fully. Build endurance for longer work...
18/ Unfortunately, many companies celebrate features more than they do platform.

Most PMs will be closer to the features and are generally more outgoing! The engineers are heads-down just trying to make things work :) Work with your PMs so that they see the platform work.
19/ Platform work has an interesting attribute in that the side effects of low investment mean you'll get slower slowly.

It doesn't happen over night.

So you can ignore it for a bit. Then a bit more..and... bam💥. You're asking, why do I have to invest in platform work again?
20/ Building software is hard, there's no silver bullet.

But have a strategy around what you're building and what role it plays short and long term.

Build a tech investment system that reinforces itself.

That's why I suggest you spend 50% of your r&d budget on your platform
21/ ... would love to hear what you think? What mental models do you use to help guide where you spend your engineering time? What did I miss?

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jean-Michel Lemieux

Jean-Michel Lemieux Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jmwind

15 Nov
This is the most common question I'm answering in recent fireside chats...

Q. How do you handle/manage the stress of working in a hyper-growth company where there's always too much to do?"

A. It's a mindset change: problems upgrade but don't go away. Let me explain... 🧵
2/ The reason this problem mindset is hard to develop is our human bias that gets in the way...

From childhood we are trained to see work equate with problems diminishing over time. You finish your assignment, and it's done. You complete your courses, you finish a sports game.
3/ The Agile development process is the worst for this as the coveted "burn down" chart is what you use to see if you're doing a good job as a team.

You equate progress with "less story points". You measure your self-worth with problems going away.
Read 11 tweets
1 Dec 20
Congrats to the entrepreneurs who survived and thrived. @ShopifyEng was here for you. A year of BFCM traffic every day with a $5.1B ending.

So much more to build... I’ve decided to double our eng team in 2021 by hiring 2,021 new technical roles. 🙌🏼

shopify.com/careers/2021 1/ Image
We’ve hesitated to grow too quickly, we’ve moved fast and scaled with a relatively small team. @ShopifyEng has definitely been lean and mean. But from web stores to warehouses, banking, logistics, shop, fulfillment network we are ready to double down and scale bigger. 2/
If you’ve read our engineering blog, you know that we are building the planetary commerce platform for entrepreneurs to start and scale their businesses. Our traffic is doubling every year and we’re redefining the primitives of commerce. 3/
Read 6 tweets
30 Nov 19
How about some nerd stats for #BlackFriday2019 with @ShopifyEng?

128,000 Unicorn workers served 90m unique sessions at a steady 17M RPM (requests/min) throughout the day. Over 1b webhooks sent, transformed 280m webp images at the edge and 34b requests to CDNs. 74m Flows ran.
36% of traffic was http/1.1 and 64% http/2

#BlackFriday2019 with @ShopifyEng
28m transactional emails sent

#BlackFriday2019 with @ShopifyEng
Read 6 tweets
1 May 19
1/ So great, thanks @Eli_White for the being open and honest about how hard it is to build a platform. You prioritized dog fooding and taking the raw/hash feedback about performance and addressing was the right move. Here's why i'm bullish on RN...
2/ Companies that are focused on Apps&Products have to do dev gymnastics to ship anything across the matrix of platforms. It's slow and bad for our entire industry.
3/ The ratio of companies that are focused on Apps&Products vs platforms is 25,000,000:2. Apple and Google being the 2. And they don't care enough about our pains in App land and instead favour their platform winning over developers solving problems quickly for the planet.
Read 8 tweets
23 Apr 19
1/ Compared to web, mobile CI/CD has been in the dark ages. Waiting 15+ minutes for builds, testing PRs hard, and complex app-store submission. But the amazing team of @sanderlijbrink @pepibumur @markrcote @Alexrs95 fixed this for @ShopifyEng. Let me share the story...
2/ Like for web apps, each mobile commit has its own dedicated @buildkite build and to speed up CI build artifacts are shared between parallel testing steps. This takes developer machines and gives us fast and reproducible environments. More later on what this enables.
3/ iOS automation can be particularly tricky. Using a cluster of Mac minis in MacStadium and Anka virtualization, we provide disposable macOS environments to build our iOS apps in a fast and reproducible way. Read more in engineering.shopify.com/blogs/engineer…
Read 8 tweets
22 Apr 18
Has anyone put in place a structured training program for software developers and data to support that it helped prevent basic preventable quality issues?
Most other professions where quality issues result in deaths have improved with training and made mandatory.
For example after a lot of deaths in blue water sailing races that were preventable they instituted a ocean survival course.
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(