Team Brilliant

Software development as a system

Stocks, flows and feedback loops, and the test for whether you are looking at a system or a pile of parts.

01 layer

knowledge

what it reads before it writes anything

03 playbooks

stands on its own

What is a system?

A system is built from three things.

  • Stocks are what you can see, count or measure at any moment. The backlog of user stories is a stock.

  • Flows change a stock. Product managers adding stories to the backlog is a flow in; developers completing them is a flow out.

  • Feedback loops are what the system tells you after an action.

Loops come in two kinds.

  • A balancing loop says the outcome was bad and the behaviour has to change. Tests failing in CI is a balancing loop.

  • A reinforcing loop says to keep going. QA sending nothing back to development is a reinforcing loop.

How do you know if you are looking at a system or a “bunch of stuff”?

  • Can you identify parts?
  • Do the parts affect each other?
  • Do the parts together produce a result that none of them produces alone?