Technology/Bureaucracy Impedance Mismatch
Posted by Daniel Lyons Tue, 16 Sep 2008 19:15:00 GMT
People often talk about the relational/OOP impedance mismatch. There’s another one, the technology/bureaucracy impedance mismatch.
When we, the technologists, show up to solve a problem, we’re interested in modeling the problem domain and working out a good database, user interface, and set of functionality to accurately capture, simplify and streamline a given process. We try very hard to come up with a design that directs the user to the information they need and make it easy for them to do whatever it is they need to do. For example, if they need to make a selection, we’re going to use a combo box. The form will validate what they’re doing and ensure that the data coming in is very high quality.
The purpose of bureaucracy, as Reid put it, is to manage people’s inefficiency. If users of your bureaucracy aren’t able to accomplish their tasks, the bureaucratic solution is training, supervision, and more paperwork. Even if the problem is the paperwork you start with.
So when we arrive at a bureaucracy, the mismatch from our point of view is, we are being asked to model pointless tasks. Many of the processes we look at streamlining are intrinsically useless. There is no need to ask for certain pieces of information interactively; they can be looked up instead. The solutions to poor data quality in paperwork—repetition and redundancy—create inefficiency electronically, and reduce data quality in the process by giving opportunities for errors.
The perspective of the bureaucracy is also negative. Many tasks which would be trivial to automate, from their perspective, we are simply unwilling to automate. We have a very difficult time comprehending their desire for complex authorization schemes, largely because we know how easy they can be compromised. Bureaucracies are accustomed to the imperfections of systems and their own members; our perspective tends to be more black-and-white, seeing security as either perfect or worthless.
Bureaucracies do not shy away from complexity. In fact, they tend to get mired in it and produce more of it. Mutually exclusive rules can exist in a bureaucracy, because the rules are created and enforced by people—there is no program to determine whether or not the rules make sense. Bureaucrats find it annoying when we come back and say that modeling a process is impossible when they’ve been doing it fine for years. Our perspective on complexity is simply hatred; we’d rather model a simpler problem which is similar than a complex one. Indeed, we will spend great resources searching for a simpler one to avoid a complex one. (Unless we can involve another language, of course).
Bureaucracies are also extremely political. They get very involved in tracking people and their station on the hierarchy. Compare to almost all digital systems, which just have users and admins. The bureaucrat must ensure that every user of their system is aware of their relative stations. Bureaucracies work because every member in the group knows either who handles a particular problem or who will know this information. To them, this is a necessary feature to delegate work and ensure that questions get answered by the right people. To us, it is a giant, overly complicated system of maintaining people’s bragging rights over seniority.
It’ll be interesting to see which philosophy is more relevant at the end of the 21st century, if there is any change at all.

Someone’s been doing work for the State again, I take it?
Bureaucracies at their best exist to institutionalize knowledge. That is, if Mary, the handler of Form XYZ123.456 (revision 432.10), gets hit by a bus, Rick, formerly of department ABCD, can be dropped into her seat and take over with a minimum of disruption to The Almighty System. This is important, for example, so that people can trust they’ll get their Social Security checks on time.
As you’ve pointed out, this can lead to technically contradictory rules and dizzyingly complex reporting and approval matrices that are difficult to model in a computer system.
The art of doing client work for Big Bureaucracies is to strike a balance between pushing them to rationalize their processes and just sucking it up and giving them something that works the way they expect it to without completely selling your soul.
Yep, most bureaucracies suck. Most code sucks, too.
Smart people can do great things with either one. My instinct is that neither is fundamentally more broken than the other. —D
“It’ll be interesting to see which philosophy is more relevant at the end of the 21st century, if there is any change at all.”
Interesting question. Care to define ‘relevant’ in this context?