The world rests on the back of a great elephant.– probably from William James
The elephant stands on the back of an even greater turtle.
“What does the turtle stand on?”
Oh, another turtle. It’s turtles all the way down.
How far is all the way down?
Maybe the quantum level. Here, quarks experience unfamiliar forces like the strong and weak nuclear interaction. These quarks form particles in the nucleus of an atom.
Atoms who meet cares a lot about electrostatic forces. How many electrons in the outer layer? What other atoms and compounds are nearby? This determines how atoms combine into molecules. Carbon atoms have 4 electrons (leaving 4 free spots) in their outer electron layer, so they’re good at forming big molecules: proteins.
In protein interactions, shape matters. Then proteins combine, construct more proteins, and build up into cells.
Cells interact by passing messages. Cells combine into tissues, which (in mammals) draw on supply systems like blood vessels for what they need, bones for structure, nerves to signal distress.
Organs, in their interactions, somehow support consciousness.
Then we have people.
People, individuals, who interact with language and combine to form teams. Teams that might build software.
Software, that is composed of programs interacting through messages over a network.
Programs, that are composed of objects (in Java), which contain functions calling functions.
Functions, composed of expressions and statements, which are expanded by the compiler into constituent machine instructions.
Machine instructions, executed in silicon. Silicon, like carbon, has 4 electrons spots in its outer electron shell. Like carbon, it is abundant in the Earth’s crust. It combines well into transistors, which combine into CPUs that execute machine instructions.
Of course, it’s more complex, with more layers than this.
At each level of scale, things work differently. We think differently.
When a cell combines proteins, it doesn’t handle each quark.
When we touch a button in a GUI, we don’t consider each machine instruction.
The forces and abstractions that matter are different.
Quantum forces matter to quarks and atoms. Electromagnetic forces matter to molecules and proteins. At macroscopic scales, we work with gravity.
Machine instructions interact through registers. Functions interact with the call stack, and through shared memory. Programs interact with network calls.
When we try to scale an abstraction past the level where it works, we get problems.
Functions only work within a process. When you try to scale them out, you get RPC (remote procedure calls), and that is a mistake. Data across the network has different problems than data in shared memory.
You don’t change the amount of fatty tissue in your abdomen by changing the amount of fat you ingest. Person-level decisions don’t translate to tissue behavior.
When a communication strategy well for a team of five people, that doesn’t mean it works for a company of five hundred.
People form teams, and teams form organizations, and organizations form companies.
Developing software as an individual is different from developing it in a team. My head is ruled by perception and action. My team flourishes on relationships. Like network calls, communication is not reliable; we check for understanding frequently, and consciously maintain common ground.
The original agile methods of pairing, daily checking in, and regular reflection in retrospectives work well for teams. There’s no reason to think the same techniques will work at the organizational level.
The forces, considerations, interactions, and abstractions are different at every level of scale, both downward and upward.
A casual manner of speaking builds relationships within a team. Within an organization, some of that helps, but so does a clear agenda. The farther up the scale of social systems, the more formal and deliberate the communication. Misunderstandings are easier across diverse contexts, and checking for understanding is much harder. Writing skills are crucial at wider levels.
As much as I enjoy the phrase “turtles all the way down,” I must admit it doesn’t work. It’s never turtles all the way down. It’s different animals at every level.