Arrange Act Assert

Jag Reehals thinking on things, mostly product development

Why great products need strong foundations

12 May 2021

You've probably heard someone quote Norm Kerths' Prime Directive during a retrospective

Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.

In my experience, engineering teams doing their best at that time inevitably end up having to shoehorn features as requirements change or new information becomes available.

In this post, I'll discuss why great products need strong foundations.

A solid product foundation

A solid product foundation can:

A poorly architected product can kill any motivation for innovation as there will be a significant amount of effort required to make improvements. Engineers may choose the easiest rather than the right thing to do.

When a team has to accommodate changes that don't fit existing patterns, conventions and standards, the harder it will be to keep things simple, consistent or easy to follow.

The more complex a product architecture, the less accurate the estimation becomes as it is harder to know the side effects of changes.

Once a team cannot release confidently, the business will find it hard to adapt to the market or user needs.

This is more than technical debt

I've used this shopping bag analogy with clients I've worked with.

To begin with, you take a shopping bag to the shops to pick up two orders placed by your partner. At the counter, a staff member gives you the first order containing three things you put into the bag.

Three items in a bag

Then you are given the second order containing another three items that you also put into the bag.

Six items in a bag

Not ideal, but you can live with that.

Maybe you can take the hit and file it under technical debt.

The staff member then hands you three additional items that were also in the second order.

They are awkward to fit into the bag.

If you've had known about the items at the start, you would have organised your bag differently.

You have two choices.

You could add the items. However, the cost of doing so means you can't use the handle making everything you do next awkward and challenging.

Nine items in a bag covering handles

Or you could take the time to empty your bag and organise things so you can carry them home.

Nine items in a bag fitting nicely

What should teams do?

One is a long term win. The other is a short term win for which the consequences are unknown, and the precedent for 'temporary fixes' has been set.

Stakeholders, product managers etc., should trust engineers in what they think is the right thing to do before a complete rewrite is required or it becomes problematic if not impossible to add value to a product.

product leadership agile