Monday, May 2, 2005

Progressive Revelation or Experimental Theology

"My mind is full of words." - Marques Bovre

Unlike Marques I can't get them rolling in any sensible way. In plain language, the following will read like random spew, so I understand if you blow it off.

In Phillip Pullman's alternate world where the action in The Golden Compass takes place, he refers to physics (particularly the harder bits) as "Experimental Theology." In Neal Stephenson's Baroque Cycle he reminds us that in its infancy we called science "Natural Philosophy." It seems we lose our way when we take the meta out of metaphysics. The science of unconsidered consequences is fodder for a great deal of speculative fiction and real world pollution.

Today I read the first couple of chapters of the Larman book and the first chapter of Object Thinking by David West. I feel like I stumbled into a seminary. The theology is all so new to me that I can't yet tell if people are agreeing or arguing.

"Do the works of love." - Jan Krist

The thing with religion is that it works with you where you are. The thing that is good for you to do as an acolyte may be hateful heresy when you become more advanced. Of course there's no lack of people to condemn you in either state.

Work out your design with fear and trembling. Phillipe Kruchten gives fair warning, "Programming is fun, but developing quality software is hard." These guys all emphasize the importance of thinking.

A man I love says he sees the Old Testament as a record of God's progressive revelation to a people who were growing more complex. In the garden was simple community with one simple rule. Next came redemption from slavery and ten simple rules. In our foolishness we immediately expanded these to hundreds of helpfully specific rules. God reframes the problem again and again, trying to restore communion.

In the beginning was the monolithic program. It did not scale well. Then came "datacentrism, software engineering, object orientation, patterns, and extreme programming." In each case the people tried to take the new idea and create a monolith. It's a complexity issue.

David West says, "Software development is a social activity." As a solitary programmer I have to reframe this or admit defeat. Here's the grace: coding is the smallest part of agile development, any good object thinker will do. I may be the only object programmer in the bank, but there are several other smart people who work in other departments. The trick is in convincing them to help me. Perhaps I will be buying some lunches.

I am so new to this. These sound like great ideas. They look simple in the examples. It is a great kindness that they talk about how hard the work is.

You can't avoid the feelings of looking at religious inscriptions when you see the Agile Manifesto values and principles. As one outside that faith, "Simplicity--the art of maximizing the amount of work not done--is essential," seems very Zen.

It is equally hard not to be mindful of Jaques when you read the principle, "The best architectures, requirements, and designs emerge from self-organizing teams." Or more cynically when you read, "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale."

As usual I don't know where I'm going with this. It's just that I feel like I finished my first class, audited a bit of the second, and then walked up the hall about three or four doors and found instruction that makes perfect sense until you try to do it yourself. It really is hard.

On the plus side, it turns out that a liberal arts education may have prepared me to be a better programmer.

Posted to Work Life at May 2, 2005 9:49 PM
Comments

Nicely put.

Posted by: Forrest at May 3, 2005 4:26 PM