The kernel of strategy, evergreen notes, and when to hire engineers š”
Monday Ideas ā Edition #70
Hey, Luca here! Welcome to the Monday Ideas š”
Every Monday I will send you an email like this withĀ 3 short ideasĀ about making great software, working with humans, and personal growth.
You will also receive a long-form, original article on Thursday, like the last one:
How to Run Great 1:1s in 2023 š§āš¤āš§
To receive all the full articles and support Refactoring, consider subscribing if you havenāt already!
p.s. you can learn more about theĀ benefits of the paid plan here.
šŗ QA Wolf (Sponsor)
Manually end-to-end testing? Here's why you should switch to automation:
Test all user flows in 3 minutes
Freedom to run your suite whenever you want
Increased confidence in releases and time to focus on other priorities
The list goes onā¦
So why wouldn't you? Time and resources. In-house teams typically take 2 years to reach high coverage. And you need at least a few automation engineers to build, run, and maintain a test suite. Not anymore.
QA Wolf offers a cost-effective approach to get 80% coverage in just 4 months. And, they include unlimited parallel runs on their testing infrastructure + 24-hour maintenance and triage.
1) š® The Kernel of Good Strategy
Last month we read Good Strategy / Bad Strategy within our community book club. The bookās most important chapter is about finding the kernel of your strategy.
For the author, any good strategy is made of three pieces:
š©ŗĀ Diagnosis
šŗļøĀ Guiding Policy
šĀ Actions
Letās see all three:
Diagnosis š©ŗ
Any strategy starts with a clearĀ definition of the challengeĀ that the company faces. In many cases, figuring out this is the hardest part of all.
Different people often have different views on what the problem is, and it may be hard to reconciliate those views to converge on a single diagnosis. Still, it is your duty as a leader to narrow down the scope and focus on whatās most important.
To make this more practical, I will make an example drawn from my startup experience. This is not to brag ā for the sake of this piece I amĀ cherry-pickingĀ something we did right, out of theĀ manyĀ things we did wrong.
My startup, Wanderio, let people compare and book all modes of transport ā flights, trains, buses, ferries ā to get to a destination. People loved the product, but we always struggled to bring in good traffic and find effective acquisition channels. For many reasons:
Incumbents in the travel space (e.g. Expedia, Booking, Skyscanner) all have great brand awareness. Most people, when it comes to planning a trip, go straight to the services they know best.
Paid acquisition channels are mostly out of reach because of 1) the enormous spending by big players, and 2) low customersā LTV because of equally low margins in the travel space.
SEO on major destinations is likewise dominated by incumbents.
Good retention and word of mouth are tough because people travel on average 2-3 times a year. Even if they had a good experience with us, many people would simply forget about Wanderio when it was time for their next trip, several months later.
So this was our unenviable diagnosis. Now, once you converge on a diagnosis, you should outline a guiding policy š
Guiding Policy šŗļø
A guiding policy is aĀ clearly articulated approachĀ to deal with the challenge identified by the diagnosis. It should draw upon the organizationāsĀ sources of power and focus your efforts toward objectives that meet the challenge.
In our case we figured out that, by coveringĀ secondaryĀ modes of transport like buses and trains, we were good at serving minor destinations that are not served by flights. In Italy, >50% of people live in areas that are not close to airports, so this looked like an opportunity. Also, most travel incumbents are flight-only, so they canāt really do SEO / ads on small destinations.
So, we would never be competitive on top-of-the-line searches like āhow to go from Rome to Parisā, but we could beĀ extremelyĀ good on thousands of minor, long tail searches, which were totally out of reach for our competitors.
So, it was time for action š
Actions š
After you define your guiding policy, you should plan aĀ set of actionsĀ that accomplish it.
In our case, we built an engine to generateĀ thousands, and eventuallyĀ millionsĀ of SEO pages about how to go fromĀ AĀ toĀ B, for every pair of cities above a certain size in Italy, our domestic market.
The strategy worked, and we eventually grew our organic traffic to ~2M sessions / month.
You can find the full summary and review of the book in this recent article š
2) š±Ā 500 Evergreen notes
Three years ago I read How to Take Smart Notes, and it changed forever the way I think about knowledge. In particular, I loved the idea of creating a growing body of atomic, evergreen notes about my knowledge, from which to draw for just about anything.
So whenever I write a new article, I take its most important points and store them as individual notes on Notion:
I implemented my own ā very lightweight ā version of theĀ Zettelkasten method, explained in the book.
As of today, I have amassed 500+ notes that I use in two main ways:
š” Monday Ideas ā for writing the free Monday emails ā like this one! ā I just take three ideas from my notes.
š¦ Social media ā all my social media posts come from individual notes.
It seems like a nerdy thing, but itās probably been the best investment I ever made for Refactoring.
I covered my whole process for writing and growing Refactoring in this recent piece šĀ it is one of my post popular ever!
3) š¼Ā Signs you should hire more engineers
One of the things I struggled the most, as a CTO, was figuring out when it was the right time to hire more engineers.
What are the signs you need more of them? And when is it that you should hang on, instead? In my experience, you hire developers to improve some of these dimensions: quality, throughput, and health.
Letās see all three š
Quality š
You should hire for quality when you have a large skill gap on something, and that clearly hinders growth.
Whatever such skill is, before you hire you should know your way around it just enough to being able to:
Build an initial iteration ā it is rare that you can only bring value with top-quality execution.
Learn what good looks like ā to being able to evaluate the work done by future hires.
Throughput š
You hire for throughput when your growth is slowed down by pure bandwidth.
In my experience this is trickier to judge than quality, because your team may be slowed down by factors that do not get better with size.
Technical debt, bad prioritization, confusing organizational structure, are all systemic diseases that you will not solve by throwing more resources at them ā you will arguably make them worse.
Counterintuitively, the best time to hire is when your team is in great shape and firing from all cylinders. That also helps with morale and retention. If thatās not the case right now, focus on fixing what doesnāt work first.
Health & growth ā¤ļø
As your team gets larger, there are other, second-order factors you may consider in your hiring decisions:
1) Pairs and key dependencies ā it is inevitable for a good while to have singletons, that is, people who are the only ones working on something ā either a function (e.g. mobile dev) or a product area. Singletons are bad in the long run for two reasons:
They are single points of failure ā you are in trouble if they leave, and you are vulnerable to promotion/raise blackmail.
Their growth gets limited ā both technical skills and motivation benefit from working in pairs. Code quality does, too.
2) Mentorship & seniority levels ā mixing seniority levels by hiring, for example, more interns and junior developers, creates healthy team dynamics and provides growth opportunities for more senior folks š
More hiring tips in this past article š
And thatās it for today! If you are finding this newsletter valuable, consider doing any of these:
1) āļø Subscribe to the newsletterĀ ā if you arenāt already, consider becoming a paid subscriber. You can learn more about theĀ benefits of the paid plan here.
2)Ā š»Ā Read with your friendsĀ ā Refactoring lives thanks to word of mouth. Share the article with your with someone who would like it, and get a free membership through the new referral program.
I wish you aĀ great week! āļø
Luca
Thanks for sharing. I am also a big fan of the book, Good Strategy / Bad Strategy. Definitely one of the best out there.
I'd be curious about your Evergreen notes template / setup. It's probably not something you can easily share.
Is it as simple as one database for all notes, and then a separate database for articles, books, etc? (The column in your screenshot says article, but I assume you take evergreen notes from books, too?)