Tuesday, August 28, 2007

What the Maasai Can Teach Us About Software Engineering

An article on the Maasai started me thinking about why I like my teakettle better than the microwave. The teakettle is no easier to use than the microwave; it probably takes slightly more energy; and of course, boiled water is boiled water.

However, when the teakettle whistles when the water boils, that whistling is an integral act that stems from the nature of the process. Certainly, someone had to design the whistle and attach it to the kettle. But once this was done, the whistle noise occurs automatically and naturally arises naturally as a side-effect the primary process for which the kettle was designed (i.e. boiling water).

A microwave oven, by contrast, beeps because of a series of processes disconnected from function being performed and of an arbitrary character. Even in a very advanced microwave oven that can sense the water boiling, the chain of events resulting in the beep is still arbitrary.

One problem with software is that nearly all of it has this arbitrary nature. And things become more arbitrary and indirect as one moves up from the hardware, until the entire experience for the user is arbitrary and disconnected not just from the physical hardware, but even from the form and semantics of the software that is creating the user experience.

So how and where to recapture the lost integrity of software?

Unfortunately, I don’t know of any way of doing it at the user level. At the programming level, however, it is still quite possible. The trick is to stop seeing oneself as a designer and to see oneself as an architect in the true sense of the word. In computer science, we have mistaken the meaning of the word architect; it doesn’t mean “really good high level designer.” Architect is from the words “arch tech,” and is Greek for “master builder.” To be an architect, one must build things, not design them.

This is doubly confounded because we have also mistaken the roles of design vs. building. Nothing of value is ever designed, it must be built. Sometimes good things appear to be designed, but only because some builders get really good at doing the building in their heads or on paper.* But trying to design something without going through a building process nearly always results in something that is at best sub-optimal and usually creates more problems than it solves.

Our elevation of the design myth over building also causes us to mistake the meaning of the word building. Building is not a construction process. (Construction is simply one of the operations that enable building.) Building is a growth process, and growth processes are non-linear, non-monotonic (i.e. they involve deletion as well as addition**), and are to a certain extent unpredictable.

As Christopher Alexander said:

“It creates order, not by forcing it, nor by imposing it on the world (through plans or drawings or components): but because it is a process which draws order from its surroundings – it allows it to come together”

“But if course, by this means far more order can come into being, than could possibly come into being through an invented act.”

“It is vastly more complex than any other kind of order. It cannot be created by decision. It cannot be designed. It cannot be predicted by a plan.”

And this is exactly the kind of order that we have forgotten but that Maasai herder and a man living in the house made of trees he cut himself still remember. For them, things “just work.” Literally: “stuff just works,” that is, the stuff itself works by dint of its very nature, not because of arbitrary bits glued on during artificial processes. And that’s what we need to find again in the 21st century, because the Maasai and tree-man are not living in the past, they are also living in the 21st century, and it makes no sense to call them primitive or unsophisticated when it is we who have forgotten things.


*In fact, the idea that things even can be designed is probably a myth that arose from people not understanding how skilled builders work.

** We forget that to put up a building, one often has to put up a scaffolding. We do this because we think of the building (a noun) is the result of building (a verb). But we forget that this semantic separation is artificial and is a trick of our minds. That dismantled scaffolding is as surely a part of the finished building as child’s experiences are part of the adult. Both were left behind in form, yet not in effect, since in both cases the finished product, in its very nature, bears the unmistakable marks of the construction process.

Monday, August 27, 2007

Book Review: A Bright and Shining Lie

A Bright and Shining Lie – John Paul Vann and America in Vietnam
by Neil Sheehan.

I begin this blog with my thoughts about a work by another Neil.*

Exciting and interesting on the whole, with a few tedious sections. More balanced than one would believe based on the title, and than most reviews indicate.

It analyzes the American mistakes in Vietnam unblinkingly, yet doesn't come across as overly cynical. Where the players involved – political or military – had good intentions, it is clear about separating the laudable aspects of those intentions from the situations which made them unrealistic and unattainable.

Sheehan’s views are slanted to the left, and there is a bit of “novelization” involved as he seeks to show how the war is mirrored in the life of one of its protagonists: John Paul Vann. But it’s not too bad, given the politically charged nature of the topic, any book on Vietnam is bound to step on a few toes.** He depicts many of the military and political people involved in the conflict as being seriously concerned for the Vietnamese people as a whole, yet in many cases still blinded by the kind of na├»ve, benignly-intentioned racism common in the post-colonial era.

The book also contains an excellent analysis of how WWII and the French/Vietnamese conflict transitioned into the American/Vietnamese conflict. This shows how the actual problems that made the American involvement in Vietnam an unfortunate quagmire are in many ways a result of things that happened before the war (as popularly defined) even began. By the time the conflict began, it was being carried in part by the momentum of past events and its own inertia rather than the needs of the day.

In a way, two overlapping wars were being fought by three protagonists: the South Vietnamese vs. the North Vietnamese as a continuation of the French/Vietnamese independence conflict***, and the Americans vs. the North Vietnamese as a proxy war between the West and Communism.

One thing many Americans failed to realize is that the Vietnamese peasantry identified with the independence conflict, and really didn’t care much about the Cold War. The Southern leaders were, in this view, seen as representing earlier Mandarins who became corrupted by colonialism, while the Northern leaders were seen as representing the earlier Mandarins who had stayed true to Vietnamese nationalism. In some cases, in fact, this was literally true.

Thus, though peasants would pragmatically support whoever was in their area at the time, they were always somewhat more sympathetic to the North Vietnamese. So, in the South, it became very much an urban vs. rural war – the boundary of every city and base was a war front.

The fact that both the U.S. and the South Vietnamese tended to conduct the war as a war of sortie from cities and bases into the countryside only intensified the urban/peasant polarization and made it continue to resemble the earlier war of independence. The main protagonist, John Paul Vann, for all his other flaws, realized this and saw that the war could not be won as long as this divide remained. He saw many of the ways in which the Vietnam conflict was different from earlier wars and even earlier guerrilla conflicts, and yet missed many other important things.

In summary: the book is not without its flaws and biases, but if studied in conjunction with other sources, it is a valuable contribution to the understanding of the American experience in Vietnam.

And that's what I learned from A Bright and Shining Lie.


*Other than our first names, Neil Sheehan and I are unrelated.

**I think Sheehan is a bit overly critical of the role of the Catholic Church in the time leading up to the conflict. Not that there is no blame there, but I’m sure there are balancing, positive aspects that are ignored. Also, though he mentions the atrocities and illegalities committed by all sides, he seems to gloss over them somewhat more when it comes to discussing North Vietnamese actions.

***Because of the post-WWII history of Vietnam, North Vietnam was very much identified with independence side of that conflict, and South Vietnam with the French colonial. That this identification also split along West/Communist lines was largely the result of an historical accident involving a single individual: Ho Chi Minh.