So at work I’ve been going through the process of defining processes, and have seen many a power point and visio diagram cross my desk that just makes me want to scream. It seems that within any large bureaucracy a process is only as good as the number of pages it takes up when printed out. The number of twists and turns required to get any complex development project done is already fairly large, but when we pour on even more and more layers of paperwork and sign-off and approval, it only makes a bad situation worse.

Although lip service is given to improving processes, it seems that direct criticism of a proposed process is seen as a mark of the luddite – anyone who would dare criticize this great 50 page process power point presentation must surely not be interested in how much time you can save with a hundred extra steps! If only these process groups contained the people *doing* the damn work, and could take their knowledge and experience into account, we could actually be doing some good here.

My wife is a teacher, and it seems she’s running into the same sort of issues at her job as I am with mine. In LAUSD, instead of listening to the teachers and bringing best practices from the ground up, they have imposed “process” on the situation, and have worked to implement standards that break down the spirit and initiative of reformers within the system. The thought that one size fits all runs rampant, and because there is no effective feedback loop to the decision makers, all that happens is alienation.

I’m hoping, of course, that I can inject myself into the process of defining these processes, and provide some context to the decision makers within my company that will give them the insight necessary to build something that works, something that will be remembered years from now not as just another re-org, but as a moment of revolution. I don’t know how far I’ll get, but I’m certainly willing to try.

I’ve always been a man of great spirituality, but little faith. Dogma has been anathema to me since as far back as I can remember. And today I mourn the fate of our country, with the passing of a law by congress to overrule the wishes of a woman to be allowed to die with dignity.

For the facts of the case, click here. You won’t find zealot sites on the net support Terri Schiavo’s right to die, but any place where you have facts, you will see they contradict everything the religious right is claiming in this situation.

Although at this point it is cliche, it’s amazing that we would fight a war in a far off country to get rid of the religious fundamentalists (Taliban), and then fall victim to them in our own. The fact that based on doctored video tapes, and dodgy press conferences, a group of people have managed to deny Terri Schiavo justice for 15 years is abhorrent. I hope that every last member of congress who voted for this terrible measure, and our dear president who so blithely signed it suffer for the sin they committed today.

If there was a way to contribute to the fight that Michael Schiavo has been suffering through these past 15 years, to honor the wishes of his undead wife, I would. I’d march, I’d give money, I’d even vote democrat.

Sigh. I guess what I really want is a politician who wants to go to war in far off places with gays in the military and the right to choose and the right to die and the right to bear arms who wants to lower my tax burden. Instead I get suckered into a theocracy when all I wanted to do was support the military and do the right thing about fixing the problems our country has created across the globe during it’s flirtations with despots and dictators.

Can you imagine if the only concious thought running through Terri’s mind these past 15 years has been, “Please, kill me.”? Her parents and the rabid right-to-lifers should be ashamed of themselves. If there is any justice in this universe, these religious zealots will have God himself come down and slap them in the face for presuming to know better than Michael on what’s best for his wife. And then God will make Michael a saint, just to rub it in.

Well, as amazing as it sounds, Amani managed to stop taking anti-nausea medications today. She apparently still feels occasional waves, but it’s no longer the chronic debilitating kind of nausea she experienced for the first few weeks.

3/11/2005 Ultrasound

Haven’t gotten the video back from James yet, but once we get that I’ll post it too. The little bugger was doing spins and backflips…really cool stuff!

Imagine software development as building a bridge. We have architects which design the bridge, materials used for construction, and construction workers who put it all together according to the architect’s plans.

In the bridge building world, architects hand their plans off to the construction workers, who then put the bridge together. In this world, changes to the design become more and more expensive as time goes on – it’s what we read about in computer science classes about traditional waterfall design. And it made intuitive sense, since we could see how it would be much harder to change a bridge design once construction got started.

However, there is a critical flaw in this analogy. Software costs nothing to build. If I have 50,000 lines of code I can compile an executable in a few seconds. I can make a 2 line change to that codebase, and in just a few more seconds, I can have a new executable. I can make a 10,000 line change to that codebase, and the cost of compiling an executable is still just a few seconds.

So if we want to truly understand our bridge building analogy, we have to imagine a world where I could have a bunch of construction workers put up an entire bridge in just a few seconds. Tearing down the bridge would also be nearly instantaneous. And I would have not material costs for the bridge, just as compiling an executable wouldn’t cause wear on my computer’s memory, or my hard drive, or my CPU.

In this wonderful new world of instantaneous construction, how would this effect the role of the architect? Well, instead of using scale models to get a feel for what the design is going to look like, I’d just whip up a new bridge every time an idea struck me. Instead of trying to precisely calculate how the bridge would react to its environment (weather, traffic, etc), I’d simply build the bridge I was imagining and test it empirically.

Now, when it comes to tests, there are also several alternatives. I could manually test it – getting in bigger and bigger vehicles and driving them over the bridge until it broke. Or, if I was really smart, I’d have a robot army of automated testers, who would drive over my bridge thousands upon thousands of times in exactly the same way. Every time I decided to put up a new bridge, I’d just click the “go” button on my robot army, and they’d do their job.

This isn’t to say that designing a bridge would become a trivial process. In fact, the big issue with software is that *everything* is design, and these designs are terribly complex. If we have 30 architects working on designing the same bridge, we need to be able to manage communication within the team. But unless we can adjust our perception of what “building” and “designing” software is all about, we fall victim to the limits of our imagination, and focus on the wrong problems.