50% of success is choosing the right battles

Success comes from creating value for your customers.

It’s fantastic to use a new technology or design an elegant solution.

But the users don’t care about elegance.

They care about results.

The beautiful thing is that you likely don’t need more engineering resources to get what you want.

You just need to work on the right things.

How do you know what are the right things to work on?

Calculate the ROI.

Spending a year rewriting the app in a new framework because you don’t want to deal with legacy? Probably a wasted effort.

Building a unified billing system that would simplify it across your products? Not worth it.

Custom logistics implementation because you can’t configure Shopify just right? Avoid.

You are probably thinking that these are silly examples.

All of those are projects I’ve been involved in.

The thing is…

You have finite resources.

You can build a limited amount of features.

Investing heavily in infrastructure will destroy your ability to develop your product.

Building your implementation of a supporting domain (Billing, Logistics, Data Analytics, etc.) is a money pit.

Trying to eliminate all tech debt is fighting windmills.

Productive engineering means balancing tech debt, infrastructure, scaling, hiring, and features.

You need to get the balance right to get ahead.

It’s easiest to cut (projects, features, code).

It’s a bit harder to reprioritize.

It’s much harder to augment.

Spending time on finding precisely what is worth working on is money well spent.

A small team working on the right solutions can outcompete a much larger team thrusting in the dark.

P.S. How do you decide what to work on? Let me know.

Yours,

Taj

All writing