These wrangles over system seem mis-focused. Moreover, they seem part of the surface of the elephant i’ve been trying to describe. A system is inherently an abstraction. It compresses, filters, selects, features from an experienced reality. We formulate systems for at least 3 reasons.
First, so we can establish commonality. That is, we can use one system to describe a bunch of "different" local realities. We can say, "yes, that’s python and the web, that’s c and the pacemaker, but with a little abstraction they are the same." second, we use systems to "reason downwards". Up from local maps to system, reason about system, down from system maps to local. We use this particularly when we encounter some new local reality and we need help knowing what to do.
And third, of course, we do this because we are humans and we can’t not do it. One could no more stop abstracting local realities into systems than one could stop extracting local oxygen into lungs.
But there are risks associated with an over-emphasis on this system-making system-applying behavior.
The elephant i’m feeling about trying to describe is there, in the systematizing. I just overheard someone asking a (perfectly good) question about how one would apply Scrum in a given setting. I see people asking these questions all the time. It could be about any scheme for getting folks to make code together successfully.
I never apply scrum. Or XP. Or Kanban. I never apply anything.
And we can readily convince ourselves that it’s just a simple misuse of language. They just mean "how can I help in this situation?" but at some point, one begins to suspect that the simple misuse of language represents a far deeper misunderstanding.
Students of perception are familiar with this. The naive model says that we "perceive" the world, like a video recorder. And as you wade into perception, you quickly realize that, if we do record our experience, it’s a fairly low-fi recording. So they downgrade the fidelity of the recorder. And the more we investigate, the more we have to downgrade that fidelity.
Guess what, tho. At some point we’ve downgraded the recorder’s quality to the point where it’s misleading to call it a recorder.
So with our usage of these systems, is where i’m headed.
The design patterns movement was subverted, corrupted, marketed, generally turned into a money-losing nothingness at least as fast as XP. But one thing I really liked about the intellectual underpinnings of that movement was its steadfast resistance to global systematizing.
Every pattern was local. Every pattern tried to describe the forces at play, to express the multiple equilibria that could be achieved. "Observer", bless it’s little dependency-reversing heart, is not better. Unless, of course, you have a dependency you want to reverse.
The systems, Scrum, XP, Kanban, lean startup, ad infinitum ad nauseum, all seem to jerk us into betters-ville.
And they do their gunfights in bettersviile. But bettersville isn’t local. It isn’t contextualized. It isn’t faithful to any reality.
When I hit the ground at a site, I don’t apply XP. I help identify heartaches. I help open paths & minds to their resolutions. I take steps. And only a complete fool would suggest that the steps I propose aren’t informed by XP et al, as well as by my personal experience, not to mention the transmitted experience i’ve surely mangled from my mentors and teachers.
But I am not putting in a system any more than a perceiver is a video-recorder.