Site icon Jessitron

Clockwork to Complexity: scale in time and software

In software development, we aim for predictability. At the same time, we deal with unpredictability, surprises in production. It feels contradictory sometimes.

I’m reading a paper: “Toward a Learning Progression of Complex Systems
Understanding” (Yoon, pdf). It looks at ways to teach complex systems. They categorize student responses on a scale from “clockwork” to “complex.”

In the “dynamic process” aspect of systems, these categories are:

As software developers, we get to interact with the system at all these scales!

Is software clockwork? Yes, within one function or process and without surprising side effects.

Is software a complex adaptive system? Absolutely, in a distributed system, in production, interacting with users and with developers as it goes.

Clockwork is the best! … on short timescales, small physical scales (one computer), and without human interaction. For everything else, there’s complexity.

Part of growing from entry-level to senior developer is: get the clockwork nailed, and move on to understanding complexity. Trust me: it gets to be even more fun.

Exit mobile version