This is my tweetstorm on key aspects to focus on when you’re building a SaaS service. It details how features that seem critical may not actually be that important. Experiment to see what your actual customers are demanding, and focus 100% of your effort on that. It’s okay to acquire technical debt along the way
1/ @Google SREs released a free book on Building Secure and Reliable Systemshttps://t.co/qr725ptjpQ
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
It's a great book, but not all the requirements of a huge international company with 100,000 employees will apply to your company
Carefully pick & choose what's relevant to you
2/ Sometimes you need to see what your customers actually care about (e.g. better security vs shiny new feature)
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
Based on their desires, toiling to improve reliability/security may lead to a secure service which runs out of cash before it can make moneyhttps://t.co/uy9ZZFLEX2
3/ Unpopular opinion:
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
This is what Zoom did. They deprioritized security in favor of the features _their customers_ voted for with their wallets.
Reliability and Ease of use were the two biggest ones
Back then anyways
Not working on security was a form of Technical Debt
4/ And now it's time for them to pay off that Technical Debt since their customers are actually asking for that now
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
(and again voting with their wallets)
But note that Zoom was unlikely to even reach this stage if they hadn't placed their bets where they did the past few years
5/ Deliberately choosing what "best practices" you spend your time and effort on implementing and which ones to ignore for later is how you get Technical Debt
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
And like Financial Debt, it can be good for you as long as you weight the costs carefullyhttps://t.co/GfH5xNl83a
6/ Tech Debt buys you Time + Opportunity
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
Spend it on MVPs, validating your solutions are what your customers actually care about
And then go sell it to themhttps://t.co/GgVV6lJI1Q
7/ Part of that is validating that what you're building is a thing you customers will actually yank out their wallet for and throw it at you
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
(Nice-to-have's don't cause this effect)
A common Failure Mode: Confusing your Users for your Actual Customershttps://t.co/WWxnxWpqHd
8/ This process of focusing all your efforts on exactly the things your customers actually want is what @b0noi calls User Oriented Development Processhttps://t.co/8OpJfuikKk
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
("User" means "Customer" there)
9/ Another common Failure Mode:
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
Trying to scale waaaay beyond what's actually neededhttps://t.co/lWAfdxjZsH
10/ So what to focus on? It depends on *your* situation!
— Zain Rizvi 💻🔬 (@ZainRzv) April 9, 2020
If your customers care most about security, focus on that
If they want reliability, give them that
If they just want to watch cat videos then move fast & break things
Your job is to: Offer, Discover, Adjust, Repeat