Fear and Programming
Last night was Tuesday night, i.e. Friday Geeks Night Out, and an inappropriate rant has got me thinking.
Folx were discussing a number of interesting ideas about creating an adventure game, which we’re all kind of working on. Subjects like Directed Acyclic Graphs came up, and a lot of other interesting far out ideas. Suddenly, all unwilling, the spirit was upon me and I ranted unintelligibly about what was going on, which I felt at the time was a betrayal of everything we stand for. I’m sure it made no sense, and I’m sure it hurt some feelings.
I have apologized on our slack, probably inadequately, but I’m sure I’ll be forgiven, people make allowances for people like me.
My reaction was so strong because of fear. I often think that almost all strong reactions have a large fear component, which often manifests in people, especially men, as anger. What fear was I feeling?
My History
In my OMG seven decades of software development, I have had some successes, and quite a few failures. As I look back on the failures, I see a consistent pattern:
- No Visibility
-
The team was working hard and well, and were building good things. Because it was the style at the time, we weren’t delivering incrementally: we would tie onions to our belts, and ship when done. The Powers That Be over us heard good words, but saw nothing that looked like what they had asked for. They ran out of patience, and cancelled the project in one of the many and various ways they have for cancelling things.
-
Sometimes, I think, we would have shipped good stuff in good enough time. In other cases, good work or not, we were not going to hit a viable date, and the project needed cancelling.
-
Either way, money and valuable developer time were wasted. The viable ones wasted effort and got no product. The ones that were not viable could have been cancelled sooner, saving time, money and probably jobs.
Finally, Kent Beck, C3, and XP came along, and I learned that it is possible to produce software that is always visibly delivering components of value that the Powers That Be can understand, appreciate, and assess. If things are proceeding well enough, they stay happy. If things are not proceeding well enough, they see that in time to make adjustments, or if necessary cancel the effort. Even if cancellation comes along, there is generally less blame associated with it, less pain and suffering.
It is said that to a child with a hammer, everything looks like something that needs hammering. To an old man with tools that can provide visible incremental value, everything looks like someone ought to be delivering value Real Soon Now.
And when that even seems not to be likely, the old man’s hackles rise, and he ties on another onion and rants. Even when it’s just some folx chatting, dreaming, imagining.
Still, I think it’s worth remembering that software efforts can deliver visible value incrementally, and, at least according to my lights, they should.
I have to go outside. Hand me that onion, will you?
