Hey, Luca here 👋 welcome to the Monday 3-2-1 ✨
Every Monday I will send you an email like this with 3 short ideas about:
🎽 Engineering Management
🔨 Technical Strategy
🎒 Hiring & Onboarding
You will also receive the regular long-form one on Thursday, like the last one:
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.
1) 🎽 When to pair program
Pair programming is best when it allows you to:
Produce high quality software
Share knowledge
For this reason, as Kent Beck says:
Pairing works when there is sufficient uncertainty in the problem to be solved and the approach to solving it.
Vice versa, pairing doesn't bring much value for mechanical or trivial tasks that both members could accomplish by themselves.
If the work doesn't require taking decisions, and there is no learning involved, you might as well avoid pairing.
More about pair programming 👇
2) 🔨 The Fermi paradox of internal tools
A few months ago I stumbled upon this tweet by Camille:
This is basically the Fermi paradox of internal tech.
Let’s take aside your core tech, as you are always going to build by yourself what makes you unique and is a core asset to your company.
But when it comes to operations and internal workflows, SaaS products and low-code solutions are so advanced today that building bespoke code is an exception to the rule.
So to reframe the great filter question: if this tool should be useful to other businesses too, why hasn’t anyone built it yet?
Three answers come to my mind:
🔍 Solutions exist but you don’t know them — this is common, because looking for good tools to buy / integrate is harder than it seems. In my experience, your best strategy about it is to nurture your network so you can eventually ask peers what they do in similar scenarios.
🩹 You can duct-tape it — maybe there isn’t anything that works out of the box because it is easy to build it with Zapier and a few automation tricks. You can also try Make or Parabola for different automation flavors.
🙅 You don’t really need it — If you can exclude the first two solutions, and it is not related to your core business, you should really ask yourself why no one else needs this — as Camille points out. Don’t be the Glass Sword man.
More about paradoxes and internal tools 👇
3) 🎒 Invest in your outbound strategy
Outbound means reaching out to candidates directly. This is a crucial channel to invest in because the best people are usually not in the market. They just don’t send CVs.
So, where do they come from? Three ideas 👇
🙋♂️ Your product community — in case your product has an active community, you may reach out to the most promising members there. This is one of the top reasons to build a community for your product, especially if the product is developer-focused.
💬 Other communities — hang out and be active in communities where you can find potential new hires. This, eventually, builds trust and makes outbound easier. Several people have been hired via the Refactoring Community already!
🐦 Social media — LinkedIn and Twitter are great places to build relationships and contact promising candidates. Contrary to popular belief, such outbound is not all spam. If you invest in your online presence and build good interactions, you will find good opportunities over time.
And that’s it for today! If you liked the article, 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) ❤️ Share it — Refactoring lives thanks to word of mouth. Share the article with your team or with someone to whom it might be useful!
I wish you a great week! ☀️
Luca