Thursday, April 30, 2009

Explaining the unexplainable

I read a good post on the blog of Bruce Eckel the other day. It was entitled, "Writing Software is Like...Writing". Bruce is a teacher and a writer about software and the process of writing software. I own his book called Thinking in Java and I read as many of his articles as I can. I respect his opinions and his ability to explain confusing topics. I had compared writing software to building a railroad (in the jungle, no less) in a blog posting from last December. There I mentioned that there have been other analogies to writing software from building a bridge to designing a building. But Bruce's idea may come closer to it than any others I've read. For one thing, the writing of software isn't verifiable like other forms of engineering. He also points out that there is a great variety in both writing words and writing software. Managers ask why there are so many failures in software writing compared with other forms of engineering. Software developers have been trying to come up with methods that allow software projects to be scheduled; their time estimated better and their results be more consistent. There doesn't appear to be a method that gives good, repeatable results. So, we keep trying to find analogies to writing software in the hopes that if it's like some other, older trade, maybe we can use techniques that work in that trade to improve writing software. We feel the need to come up with an analogy for what we do to explain it to our bosses, our friends and our families. "What do you do all day at work, Dad?" At one of our company's children's parties, they had the kids make a drawing of what they thought we did all day. My son drew a picture of me playing computer games. He'd never heard a good explanation from me so he had to make up his own.

It's a little like when Jesus tried to explain the kingdom of heaven using parables. He wanted to explain things to his listeners that they couldn't understand. They listened but could not hear. They saw but did not see. Jesus explained heaven in terms of things they could understand. As in Matthew 13 (link is to the New International Version), Jesus used the parable of a farmer sowing seed, a woman using yeast for bread and fishermen catching fish in a net. If we can understand these small lessons and act on them, we can begin to understand how God works through us in the world. As we learn more, we use the lessons more so we can understand more. When we're faced with a vast truth that we can't fully understand, it helps to understand just a portion of it so we can get a start on using it. It's only through the practice of using it that we start to really understand. A teacher was asked by a student, "How do I learn to write?" The teacher answered, "By writing."

1 comment:

Cindy said...

Thank you Daddya for letting me have a fortune cookie. Love Emma