← Home
· 2 min

The Skill of Not Using Unnecessary Technology

When I build a feature, I end up thinking about the future. I often worry whether the technology I chose will hold up once users grow and traffic increases.

Applying technology that isn't needed yet, slowing development down and making maintenance harder, is commonly called technology-oriented development.

Its opposite is called customer-oriented development: an agile style that applies the simplest technology possible to solve problems quickly and get feedback.

Logically, though, technology-oriented development and customer-oriented development are not opposites that trade off against each other.

For example, if customer-oriented development focuses only on solving problems quickly, maintainability drops over the long run and development costs can only accelerate through the multiplier effect of technical debt. So this orientation cannot be treated as an absolute good.

It is worth taking apart what each term means and examining it again.

The narrative around technology-oriented development is really focused on performance and cost savings. It prepares for the load and cost that will grow in the future.

The narrative around customer-oriented development leads to fast release and improvement and value creation.

Gathered in one place, the keywords are:

  • Performance
  • Cost savings
  • Fast release and improvement
  • Value creation

Performance and cost need to grow along with usage, which keeps rising over time. In other words, the target changes depending on when it is demanded.

Fast release and improvement, and value creation, are different: they are demanded now, so what matters is whether they are met right away.

Here is my own definition of a good development philosophy that combines them properly.

  • Introduce abstractions so that switching technologies is easy when usage grows.
  • For your future self and your colleagues, introduce a system that makes it possible to evaluate when to switch technologies.
  • With that as insurance, implement with the simplest and fastest technology that meets the requirements at hand.

Comments 0

Be the first to comment.