Refactoring

Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies 💡

refactoring.fm
💡 Monday 3-2-1

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies 💡

Edition #17

Luca Rossi
Sep 26, 2022
5
2
Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies 💡

refactoring.fm
Article voiceover
1×
0:00
-5:18
Audio playback is not supported on your browser. Please upgrade.

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:

  1. 🎽 Engineering Management

  2. 🔨 Technical Strategy

  3. 🎒 Hiring & Onboarding

You will also be receiving the regular long-form one on Thursday, like the last one:

  • Career Frameworks – Part 2

To receive all the full articles and support Refactoring, consider subscribing if you haven’t already:

Become a better tech leader today ✨

p.s. you can learn more about the benefits of the paid plan here.



1) 🎽 Good principles are specific

It might seem counterintuitive, but in order to be useful, principles should be specific.

Simple propositions like "we write high quality software" or "we care about customers", are not going to cut it. They are not going to be useful in real life.

To tell whether a principle is good, ask yourself: how am I able to tell if we are not following it? If you don't have a good answer, chances are the principle is not clear enough.

Examples of good principles:

  • Fix problems, even when they are not yours — by Asana

  • We peer review every change — by Skyscanner

  • Psychological Safety — by Artsy

  • Engineers own their impact — by Airbnb

More on creating principles 👇

Refactoring
Engineering Principles ⭐
Read more
a year ago · 23 likes · 10 comments · Luca Rossi

2) 🔨 Tech debt vs product maturity

When it comes to startups and fast growing products, you may hear about taking on debt intentionally, as the result of prioritizing speed and growth over quality.

Regardless of whether this would make for a good strategy, this debt is most often inevitable rather than intentional. Fast growth, in fact, naturally leads to technical debt, because when the product changes at a fast rate, your engineering abstractions get invalidated equally fast.

Such volatility, though, changes with the maturity of your product. For the sake of simplicity, let’s consider three stages:

  • 0 to 1 — you start building a product from scratch, with a set of initial assumptions.

  • Product Market Fit — you figure out what works, double down on it, and scrap the rest.

  • Scale — you grow your business predictably and harden your tech.

The earlier you are on this scale, the more your product needs to move fast, and the more leverage you get by accruing debt.

The later you are on the scale, the more debt becomes a drag that prevents your product from growing. Your scale is such that you get the most leverage by repaying debt.

For early stage startups it might be inevitable and even healthy to accumulate debt early on. At the same time, though, you should create processes to help repay debt from the very beginning.

More on managing technical debt 👇

Refactoring
How to Manage Technical Debt 🦠
Read more
a year ago · 13 likes · Luca Rossi

3) 🎒 How to find agencies that fit

Not all agencies are a good fit for your company, just like you hire only a small share of all the candidates you interview.

The fit between your company and your (potential) partner goes beyond the specific project you have in mind, and is based on more foundational elements.

When you talk with an agency, consider these elements:

  • 🌟 Culture — do they share your values, and you share theirs? Do they feel like people you would hire? Relationships are key — you should always work with people you like.

  • 📱 Product — look at their past work: is it close to what you need? Did they work with other (e.g.) early stage startups? Did they build other (e.g.) marketplaces?

  • 🎨 Design — is their design language close to what you have in mind? Does their process fit your organization? Look at some case studies and how they worked with other companies.

  • 🔨 Technology — do they have experience with the technology you need? Be suspicious of vendors who say they can do everything. Good agencies are specialized in a few things.

  • 💰 Budget — last but not least, consider your budget expectations and constraints. The agency may operate in a different segment than yours (e.g. large corps vs startups) and you may not find a fit.

Answering these questions is not easy. They require you to introspect and develop clarity about your company and your needs. But the more you are aware of your needs, the more you can find vendors who are a good fit for those.

More on working with agencies 👇

Refactoring
How to Work with an Agency 💼
Read more
a year ago · 7 likes · Luca Rossi

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.

Get full access to Refactoring today ✨

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

2
Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies 💡

refactoring.fm
2 Comments
Kenshee
Sep 30, 2022Liked by Luca Rossi

The reading is amazing. Thank you!

Expand full comment
Reply
1 reply by Luca Rossi
1 more comment…
TopNewCommunity

No posts

Ready for more?

© 2023 Luca Rossi
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing