DEV Community

Cover image for The great mental models (Engineering view)[Book notes]
Jorge Tovar
Jorge Tovar

Posted on

The great mental models (Engineering view)[Book notes]

The great mental models

The Great Mental Models: General Thinking Concepts

"The old saying goes, 'To the man with a hammer, everything looks like a nail.' But anyone who has done any kind of project knows a hammer often isn't enough."

This book aims to give you the ability to change perspective by applying knowledge from different disciplines.

We need to remove our ego be aware of the limits of our perspective, and be close to the result of our decisions.

Maps are not the territory - All models are wrong, but some are useful

Maps as many parts of the software are just abstractions to the real world with some limitations, but at the same time it allows us to navigate easily regarding the purpose of the abstraction

Circle of competence

  • We need to learn at least the basics of the realm we are operating in
  • talk to experts: follow them on Twitter, Open-Source Software
  • Falsifiability: use TDD to validate your assumptions

First principles

Socratic Questioning

  • Origin of the ideas
  • Challenging assumptions
  • Looking for evidence Use the 5 Whys: To debug a software or organization problem

Thought experiment

  • Ask a question
  • Conduct background research
  • Construct hypothesis
  • Test with THOUGHT experiments
  • Analyze outcomes and draw conclusions
  • Compare hypothesis and adjust accordingly

Sometimes the cost of replicating or changing something is just too high. we can replicate some engineering scenarios on our minds and let the magic happens

Second-Order thinking

  • Realize the long term interests
  • Identify the effects of the effects

What are the consequences of bad quality software?
What happens if we add more testers?
We are hiring 100 new engineers... but the onboarding process is poor

Probabilist thinking

  • Bayesian thinking: using a base rate information (taking outside information)
  • Fat-tailed curves: different from bell curves and normal distribution, something to be aware of
  • Causation vs Correlation

In estimation: Do we have a previous model of how long it will take? Can we provide a worst, media, and best scenario?

Inversion

  • Approach situation from the opposite end of the natural starting point
  • Set your assumptions
  • Identify what are you trying to avoid

What if we need to be flexible to a customer request?
Training to increase retention?

Occam's razor

  • simpler solutions are more likely to be correct than complex ones. "When you hear hoofbeats, think horses, not zebras"

Don't over-engineer. Senior developers tend to create simpler solutions

  • Passes the tests
  • Reveals intention
  • No duplication
  • Fewest elements

Hanlon's razor

  • Don't attribute to malice that which is explained by stupidity. It's less likely for two things to be true than one (less)

Discussion (0)