On days that I teach, I take the train into Chicago and then walk from Ogilvie Station up to the Loyola Watertower campus. Generally takes me about 30 minutes. Yesterday, as I was mulling over what to write here, I came to an intersection. The “Don’t Walk†sign was lit and several other pedestrians were waiting patiently. I looked both ways, saw that there was no oncoming traffic, and continued on my way.
It always strikes me as odd that Chicago pedestrians simply comply with the traffic signals and don’t adjust their behavior to the actual environment in the moment. I used to think it was simply because I learned to be an urban pedestrian in New York City, where getting from train station to office on foot was a blood sport.
I don’t think I can be accused of being a scofflaw; someone who is merely rebellious by nature. If anything, as an eldest child, I am a rule follower. Courtesy of my parents and a string of enlightened teachers, however, I also learned that rules are elements of larger systems. In good systems, there is a deeper logic; rules exist to advance the goals of the system.
One choice is to simply comply with the rules and assume that the goals of the system remain relevant and the design of the system matches the realities of its environment. In stable and slow-changing environments, that is a reasonable strategy. Waiting for the traffic signals to change doesn’t hurt, although it might slow the world down a little bit.
There is another choice, which is to look at the design logic driving whatever system you are engaged with. This is the dangerous path you set people on when you start teaching them how to program. Programs are the explicit rules for realizing the design goals of a bigger system.
The differences between a working computer program and a working organization are differences of degree not of kind. As you learn to see how rules, information, structure, and goals interact, you learn to see the commonality that unites systems across disparate environments. It can take time to work out the value and the limits of the analogies, but it gives you a path.