I was talking with a co-worker today, an excellent developer, about how ideas fade, while the changes they cause remain.
We were recently on a team whose task was to gather a list of software engineering best practices; teams in our department would rate themselves against it, and look for ways to improve performance. The biggest impact the list seems to have had is to add action items to project plans, and the miserable phrase “…in accordance with the software engineering best practices.”
When we considered each software practice, we clarified what it entailed. We discussed how it affects a team. We explored what a team is like without it. We weighed practice against practice. When we released the first version of the list to management, there was already significant time spent on it, and much thought, discussion, and healthy argument behind it.
The project began as a chance to change our work environment; it ended as more meaningless process. The thing that’s lost in that transition is the original idea, and its context.
The same pattern is repeated in different contexts: religions begin as inspiration, and end as commandments. Laws begin as an idea or loose social consensus, and end as rigid edicts, filled with loop-holes. Software designs begin simple and elegant, and wind up crufty and confusing.
It’s even visible in this old joke (http://uufn.org/body_uufn_reflections.html#dec16):
A young girl is watching her mother make a roast. The mother cuts off the two ends of the roast, puts the rest in the pan and pops it in the oven. “Mom,” the girl asks, “how come when we make a roast, we cut off the ends before we cook it?” The mother replies, “I don’t know; that’s the way I’ve always done it. Let’s ask grandma.” Grandma is in the sitting room, so mother and daughter ask her why they cut off the ends before cooking the roast. Grandma’s reply: “My mother did it that way and so have I. You’ll have to ask great Gramma”. The next day, they all get in the car, daughter, mother, and grandma, and go to see great Gramma. “Great Gramma,” the young girl asks, “how come when we cook a roast, we cut off the ends before putting it in the oven.” “Well,” great Gramma replies, “my roasting pan isn’t big enough for a whole roast.”
I wish I had some tip to offer for getting around this problem, but I don’t. All I can say is, try to notice when the original idea has been lost, and see if you can recover it.