The Failure of Success

I’m getting old. Not quite Grandpa old, but heading in that direction, so I’m going to start with a little story;
Once upon a time there was a weekend carpenter called Cecil, he built doghouses and cupboards for his friends and neighbors. They were good doghouses, they were solid cupboards. His friends told him how good he was, and they were very happy with the things he built. Occasionally there were minor changes required to the standard plans. Like an extra wide opening for Bob’s fat puppy, and book width shelves for Sarah. Cecil was always happy to accomodate the changes as his friends asked, and the results were good. His friends were so happy they started telling other friends how good a carpenter Cecil is. Cecil got more and more work until one day a friend of a friend called Peter who didn’t really understand carpentry came to Cecil and said ; “Cecil, your doghouses and cupboards are wonderful, you friends all rave about your skills. I have a proposal, I need a 2 story house built for the nuns and orphans in my neighborhood, will you do it ?”. Now Peter didn’t think this was a strange question, as a 2 story house is just a bigger doghouse with some cupboards, and Cecil was kinda impressed that somebody would ask him to do such an important project, so he agreed.
Anyway, the house fell down, killed all the nuns and the orphans, Peter and Cecil were tarred and feathered and run out of town.
While this story is fiction (and not all that great, but I promise I’ll work on it) it pretty much describes the reasons behind why I think that enterprise development within organisations is so shoddy. Organisations hire people like Cecil, and they cut their teeth on building simple, single purpose applications for reporting from databases, for producing simple web applications. The organisations are happy, then one day, these developers are noticed by Peter who wants them to build an enterprise spanning distributed fault tolerant application.
Is it any wonder that what comes out is an unmitigated failure ? It’s not completely Cecil’s fault. He thinks he can do the job, and after all, he doesn’t have the experience of failure to caution him. It’s not completely Peters fault. He doesn’t understand software development. Most developers are still treated like social lepers and they do this stuff that “just works”. This is just a disaster waiting to happen, and one that occurs day-in, day-out throughout companies around the world.
So, what can we do about it ? I dunno. (Sorry if you were looking for an easy fix). The Cecils of the world need to expand their horizons and learn more, and in the words of Clint Eastwood “A man’s gotta know his limitations”. The Peters of the world need to treat software development in the same way they treat other projects. Make sure they have the right people for the job, and also make sure that success and failure criteria are understood by everybody up front and that people will be held accountable for things they are responsible for.
I like Cecil, but I’d like to help him to not kill any more orphans and nuns. I just don’t know how to get Cecil to ask for my help, or even understand that he needs it.


6 thoughts on “The Failure of Success

  1. Oh, dear – I don’t want to be a Cecil! But how does one make that transition to larger scaled projects? Especially from many formative years spent building dog houses; and oh, have I built some friggin’ dog houses over the years.
    I trying to prepare myself thoughtfully; scaling up is not about being a handy C# or Java haXor, I think it’s about knowing how to use to full suite of tools – many of which I’ve not used before – to their best advantage. Tools such as ANT/nANT, JUnit/NUnit and maybe a development environment of choice.
    And as Robert has wisely stated, the experience will come over time. If I’m thoughtful enough about my approach, mindful of my mistakes and grateful for my learnings.

  2. Nice.
    I think another problem is that Peter and Cecil didn’t have liability insurance… You know, all the processes and documents that have to be generated to cover your ar$e. šŸ˜›
    Insurance: The fine print you find out you didn’t read just after you needed it.

  3. I like the parable.
    I keep recasting it as sitcoms. A character is interesting as part of an ensemble cast, and gets his laughs. Then someone gets the idea to give him his own show. Sometimes the result is Frasier. Sometimes it’s After MASH.
    Or it could be movies. Leathal Weapon turns into II, III and IV. Or the Matrix turns into Reloaded and Revolutions.

  4. I found that most programmers go through a 3 stage program of; learning language, technique/craft and then engineering. Getting to the third level is the most rare. Some people like the tech prowess, whereas engineering is seen closer to management and too structured.
    Point is, you don’t normally get a job that goes from programmer to engineer. Usually there is a formal and informal progression based on competence and experience.
    This could be formalised and accredited, but I think it exists somewhat already.

Comments are closed.