Discover more from Refactoring
Monday 3-2-1 – estimates goals, integrating agency work, good vs bad perks💡
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 be receiving the regular long-form one on 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”, together with my friend Tobia from Epicode.com
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 three goals of estimates
Estimates, like all metrics, are only useful if they are actionable. So you should ask yourself: how are your decisions affected by them?
Estimates have three main goals:
🥇 Prioritization — you need to decide which features to develop first, based on the highest value / cost ratio.
🍱 Allocation of Resources — you need to set a budget for a project, or a team. You may want to know if you need to hire more people, or work with an agency, or how much of your team allocate on that.
🤹 Coordination — you have multiple projects that depend on each other, and you need to schedule things in a way that nobody gets stuck.
Surprisingly, there are many cases where you don’t need any of these.
Let’s say your team works autonomously on a specific product area. You have a PM that collects feedback from users and provides ideas for new features, and these get delivered continuously. You do this week after week.
In this case, do estimates move the needle in any way? Probably not.
So you can just do some very light triage (e.g. S, M, L sizes) and focus on keeping cycle time low.
Less numbers, more work.
2) 🔨 Integrate agency work with that of your team
One of the crucial aspects of long-term success of software projects build with agencies is how you integrate them with your team.
In that respect, the worst you can do is to make the agency develop a big project in isolation, and then have a big, final handoff to your team that will have to maintain it.
Your team will not want to touch it with a stick.
Instead, involve your team early on to build ownership and alignment.
Here are a three ways you can do it:
✅ Discuss best practices — explain how you write code to make the new project as close as possible to it your existing work.
🔍 Do code reviews — make your engineers do code reviews for new features developed by the agency. Especially in the initial weeks.
🚚 Release incrementally — have small releases that can be tested with customers and your engineers. Many mini handoffs are better than single big handoff.
Most of this requires time, and people hire agencies exactly because they don't have enough time and resources. However, consider this as an investment that 1) reduces the work you will have to do later, and 2) increase the chances of success of the project.
More ideas on working with agencies 👇
3) 🎒 Advertise perks only if they are good perks
Talking with tens of companies about their job posts on the Refactoring board, there are recurring questions about perks.
– Should we add them to the job post?
– Do they bring value?
– What perks should we include?
My take is simple: include a perk in your job post only if it is really good.
A good perk checks at least one of two boxes:
🌟 It is meaningful — it should be relevant to your culture, reinforcing / encouraging substantially some of your values. For example, for a remote and async culture, it is meaningful to give a generous budget for a home workstation.
💸 It is valuable — famously, Whole Foods gives 20-30% in-store discount to all their employees.
Bad perks are the opposite of meaningful and valuable — they are arbitrary and cheap.
They make candidates suspect you are using them to compensate for a position that is not interesting enough, or well-paid enough.
Bad perks are free snacks, gift cards, or paid birthdays off.
In this case, no perks is better than bad perks. Plenty of great companies do not advertise them in job posts, and it's fine!
The focus here is on "advertise". It can be great to have paid birthdays off. You just don't need to write it in the job post.
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!
p.s. 30-days money-back guarantee, no questions asked