Solution layering

Frequently when developing a solution to a complex problem, an important skill is deciding how you can chunk the solution into layers of progressive complexity. You want to start with a Minimum Viable Product that avoids many of the complicated edge cases, and gradually add nuance and accuracy over time.

For example, a predictive maintenance job planner might be layered something like:

  1. Jobs with a regular calendar schedule
  2. Jobs with a predictable set of triggers based on events (e.g. whenever a plane is at an airport), where you have a data source for the events
  3. Jobs with set of triggers based on usage (e.g. every 10,000 hours of flying)
  4. Jobs predicted based on historical job patterns
  5. Jobs predicted based on ML models of breakage from other input data (e.g. condition sensors)

At each layer you are adding more complexity and value, but you can build a lot of the MVP infrastructure and user interactions with just the first layer, before you spend time on more advanced ML models.

Simplifying games

One way to train for this kind of breakdown is by taking games and trying to simplify them into a version you could teach an absolute beginner, then consider how (and whether) you’d re-add rules to approach the full game. (I also think this could be a good interview question, to see how someone thinks about approaching complexity.)

An example for chess might be:

  1. The core concepts are piece movement and taking pieces. Win by taking king instead of checkmate. Simplified piece movement for pawn (1 square only, no diagonal taking) and knight (2 squares without hook).
  2. Re-add correct piece movement for pawns and knights.
  3. Re-add check, checkmate, stalemate.
  4. Re-add complex rules (en passant, castling, pawn promotion).

An interesting note is that check and checkmate are a convention; rarely do they substantially change the game vs the “win by taking the king” paradigm. (I think stalemate, i.e. not in check but can only move into check, is an exception.) So do you really need to re-add them, or is the game OK without them?

This contrasts to some other rules like pawn promotion that clearly can have a much larger influence. Similarly in soccer, the offside rule is notoriously tricky for beginners to understand, but removing it would potentially change tactics significantly, with attackers crowding the goal square waiting for a Hail Mary ball in. It is useful to practise thinking about which rules or features fall into each camp - i.e. are they a rough edge you can remove without impact, or are they necessary complexity within an MVP?

Another example of simplification is my attempt for D&D. This may not seem especially simple but is a distillation of hundreds of pages of original rules.

Super Simple D&D