We’re going through an interesting phase in the project on which I’m currently working. The project itself is the survivor, or resurrection, of a project that, hard as people tried, could not be made to work. We’re now trying to come back around and make it work, and I’m learning many new things about people and projects from it.
There are plenty of reasons the project failed, almost none of them inherently technical. Business management tried to do it “on the cheap” by outsourcing everything, outsourcing far too much really. Then there were the usual problems of loose and sloppy requirements that were capable of infinite redefinition, tool selections that were too complex and so hurt more than helping. The real point, though, is that the project was effectively a failure, one in which we’re going back and restarting because the product is important and the market, amazingly enough, hasn’t been taken by another vendor.
Project management is doing the right things (and no, I’m not project management, I’m more the project gadfly, trying to keep the process honest.) They’ve decided that the right place to start is with a blank directory, and all previous decisions are available for rethinking. They’ve concluded to take a more incremental, iterative, and agile approach. They’re introducing rigorous unit testing, and rethinking every major decision, starting with the operating system and hardware platform for the project. (I’ll grant that being acquired by Sun has something to do with changing the platform, too.) They've recognized that the process they used was inherently too "heavy", took too much unproductive effort and generated too little value.
What’s interesting to watch, though, is this: no one thinks the old project was a success. None the less, the notion of actually changing the way things are done is almost unthinkable. Every time a question comes up, the instant reaction is to try to add more process, with more documentation and inherently more ways of spreading responsibility, and generally also to revert to the way things were done before.
Even though the way it was done before is the way the project failed last time.
It’s an interesting lesson. I’m inherently neophilic: if I hear of something new, I want to try it. I particularly hate repeating something that didn’t work the first time; I think “it didn’t work” is sufficient reason not to do it again.
A long time ago, when I was just a child, I read a book by a guy — Jack Douglas — who had been a writer for Jack Paar. Even as a precocious 10 year old, I thought the book was mostly hilarious, but Douglas also told a story that was so sad it makes me uncomfortable to think about today. Douglas had a fire, and while getting everyone out, including his dogs and cats, one of the dogs — a dachshund — got loose. They found him later, dead, under the bed in the master bedroom. In his fear, he had run back into the burning house, because he felt safe hiding under the bed.
How often do we find ourselves hiding under the familiar bed, and not seeing the real danger?