All writing

On Systems Thinking

· systems, engineering

Junior engineers think in features. Senior engineers think in systems.

The difference isn't intelligence or experience. It's the mental model. Feature-thinking asks "how do I implement X?" Systems-thinking asks "what happens to the rest of the system when X exists?"

Developing systems-thinking takes deliberate practice:

  • Read postmortems — for the chain of causation
  • Draw the diagram — before you write code
  • Ask "what happens when this fails?" — for every component
  • Think about time — data gets stale, caches expire, clocks drift