A intellectually curious software engineer's blog.

Explorers and Exploiters

In broad terms, a recommender system:

  1. Has a set of options to suggest
  2. Ranks those options according to some criteria
  3. Returns those options in ranked order

But this process is not exclusive to recommenders. Humans make decisions in a similar way.

Continue reading →

Engineering for Reversibility

In a letter to Amazon’s shareholders, Jeff Bezos wrote:

Some decisions are consequential and irreversible or nearly irreversible – one-way doors – and these decisions must be made methodically, carefully, slowly, with great deliberation and consultation. If you walk through and don’t like what you see on the other side, you can’t get back to where you were before. We can call these Type 1 decisions. But most decisions aren’t like that – they are changeable, reversible – they’re two-way doors. If you’ve made a suboptimal Type 2 decision, you don’t have to live with the consequences for that long. You can reopen the door and go back through. Type 2 decisions can and should be made quickly by high judgment individuals or small groups.

This put two questions on my mind:

  1. Which software engineering decisions are reversible or irreversible?
  2. How can we make our decisions more reversible?

Continue reading →