Monday 3-2-1 โ Story points, measuring tech debt, tech requirements in job posts ๐ก
Edition #5
Hey, Luca here ๐ย welcome to the Monday 3-2-1 โจ
Every Monday I send an email like this with 3 short ideas about:
๐ฝ Engineering Management
๐จ Technical Strategy
๐ Hiring & Onboarding
I also send an original long-form article every Thursday, like the last one:
Before we jump into this weekโs ideas, I want to let you know that I am working on a survey about "The State of Engineering Careersโ.
The goal of the survey is to better understand how engineers and managers think about their careers, in these uncertain times. How they want to grow; how they choose companies; what they care about the most.
I do this for two main reasons:
It is highly relevant to my job โ I want to keep writing about things that matter to people.
I believe this is an important topic โ so I will create a detailed write-up + commentary on the survey results.
You can find the survey below โ it would be fantastic if you were able to answer it (it should take ~5 mins).
1) ๐ฝ The 6-step process to assign story points
Since story points look arbitrary, many people struggle to assign them.
Here is my own process to get started, in 6 steps ๐
๐ Start small โ If you are starting from scratch, take a story that looks smallish and assign 2 points to it.
โ๏ธ Compare โ measure other stories by comparing them to similar sized ones (or to the initial one). Donโt bother to be precise, just say "this looks twice as complex", or "this looks similar".
โก Be fast โ do not spend more than a few minutes to size a story. Spending more than that brings diminishing returns.
๐ Use an exponential scale โ (1, 2, 4, 8, 16), because relative sizing works better, and you don't really need more precision. In alternative, you can use Fibonacci's (1, 2, 3, 5, 8, 13)
๐๏ธ Keep stories small โ if you have to go over 16, just assign a provisional "Epic" to it, and split it into multiple stories later. As a rule of thumb, you should be able to deliver any story within an iteration (e.g. two-weeks cycle).
๐ค Involve your team โ if you have a small team (<10 devs), involve everyone in sizing stories (e.g. with planning poker). Otherwise, involve a few team representatives.
More on estimating projects:
2) ๐จ Assess tech debt with the Riot scale
When it comes to assessing tech debt initiatives, I am a fan of theย system used by Riot.
They use three main metrics:
๐ฃย Impactย โ business metrics impacted by the debt, or the value you unlock by repaying it. Crucial for the ROI equation.
๐ธย Fix Costย โ a rough estimate based on some feasible solution. For the sake of prioritization, there is no need for it to be accurate. Simple t-shirt sizing (e.g. S, M, L, XL) is fine.
๐ฆ ย Contagionย โ this answers the question: โif this debt is allowed to continue to exist, how much will it spread?โ. Itโs a great angle because, in this regard, not all debt is created equal.
The contagion metric is particularly powerful because it informs on how impact and cost change over time.ย Bill Clark, former EM for League of Legends, explains this well:
If a piece of tech debt isย well-contained, the cost to fix it later compared to now is basically identical. You can weigh how much impact it has today when determining when a fix makes sense.
If, on the other hand, a piece of tech debt isย highly contagious, it will steadily become harder and harder to fix. Whatโs particularly gross about contagious tech debt is that its impact tends to increase as more and more systems become infected by the technical compromise at its core.
More on technical debt:
3) ๐ Keep tech requirements loose in job posts
I believe tech requirements in most job posts today are too prescriptive. I prefer to keep them loose, for two reasons:
Brilliant people in tech come from various backgrounds you can't really anticipate. It doesnโt make sense to โ e.g. โ enforce a degree among requirements.
Brilliant people learn what they don't know faster than most of us realize.
The best approach is just to describe our stack, architecture and challenges, and allow people to apply even if they don't match everything.
As an example, I love these bits from this Stripe job post ๐
More on writing job posts:
And thatโs it for today โ I wish you aย great week! ๐ If you liked the article, consider doing any of these:
1)ย โค๏ธย Share itย โ Refactoring lives thanks to word of mouth. Share the article with your team or with someone to whom it might be useful!
2) โ๏ธ Subscribe to the newsletterย โ if you arenโt already, consider becoming a paid subscriber. That also gives you access to theย communityย and theย curated library.
p.s. 30-days money-back guarantee, no questions asked!