Refactoring

Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies πŸ’‘

refactoring.fm

Discover more from Refactoring

Weekly, practical advice on writing great software and working well with humans.
Over 49,000 subscribers
Continue reading
Sign in
πŸ’‘ Monday Ideas

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies πŸ’‘

Edition #17

Luca Rossi
Sep 26, 2022
5
Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies πŸ’‘

refactoring.fm
2
Share
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
2 years 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
2 years 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
2 years 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

5
Share this post

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies πŸ’‘

refactoring.fm
2
Share
2 Comments
Share this discussion

Monday 3-2-1 – good principles, tech debt vs product maturity, choosing agencies πŸ’‘

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

The reading is amazing. Thank you!

Expand full comment
Reply
Share
1 reply by Luca Rossi
1 more comment...
Top
New
Community

No posts

Ready for more?

Β© 2023 Refactoring ETS
Privacy βˆ™ Terms βˆ™ Collection notice
Start WritingGet the app
Substack is the home for great writing