EncapsulationAndTrust

 

Computer science, when applied to the solution of nontrivial problems, is the art of complexity management. Unlike textbook exercises, real-world tasks don't factor via mathematical tricks into simple recursive patterns. Important human jobs are messy, with lots of special cases and ugly trade-offs. Programs to do such jobs are complicated affairs, not things that a single person, however clever, could write alone.

A key tool for complexity management is encapsulation — packaging parts of a solution into units, with well-defined functions to perform and limited interfaces to the rest of the program. All modern computer languages support encapsulation through the use of subroutines, functions, or similar constructs.

Encapsulation is a valuable metaphor for human interactions too. People are hugely complex, but for many jobs they can do their part without close supervision. Humans have well-defined interfaces with their fellows through language. "A word to the wise is sufficient" to convey critical information. We need not develop neurophysiological models of our colleagues' brain states in order to collaborate.

But for the strategy of encapsulation to succeed, it's essential to have trust. If a computer subroutine claims to compute the square root of its input, but once in a while returns a badly erroneous answer, we can no longer view it as a "black box" and rely on it in critical circumstances. Instead, we have to look inside it and debug it, or replace it with another chunk of code. Similarly, if interpersonal communications break down — if someone lies to us, or doesn't keep promises, or can't understand us — then we can't trust the other party, and we can't succeed in our joint endeavors.

Trust isn't a one-shot affair, either. It's a matter of reputation, based on repeated interaction, verifiable honesty, and a willingness on both sides to forgive occasional mistakes. Trust grows organically, the way a tree grows. With steady cultivation, over time the roots of trust extend deep and wide, so that a relationship can survive even the most stressful crisis.

Sunday, July 25, 1999 at 22:10:00 (EDT) = 1999-07-25

TopicProgramming - TopicThinking


(correlates: PartOfTheProverb, ThreePhoneCalls, SwayingMusicians, ...)