Monday, August 29, 2005

Technology Snake Oil, Part 4b: Prescriptive Approaches in the Large

I wrote recently about Prescriptive Approaches in the Small. More pervasive and dangerous, though, are Prescriptive Approaches in the Large. Everyone wants a repeatable pattern, a guaranteed way of doing things. Recently, at No Fluff, Just Stuff Columbus, OH, one of the questions for the expert panel was: “Our company is looking for a road map, a sure-fire prescription of what technologies, methodologies, and approaches we should take – can you provide this?” Uhhhh, no. Most of the panelists nearly crawled out of their skin to get in line to answer this question (I thought Prag Dave was going to have a heart attack – if you know him, you know this is anathema to him!). There is no prescription for software development done right in your company – every place is different. You cannot come out and say that this approach (whatever it is) is right in every circumstance.

Following this line of reasoning, I think that the PetStore was one of the worst evils inflicted on the young, innocent, fawnlike Java Enterprise Edition. It was supposed to be a catalog – “Look, here are all the things this shiny new technology can do” – and people took it as a prescription. Rather than sit back and determine for what EJB was suitable, developers dove right into using them in their projects because the prescription said so. EJB was (and is) suitable for only very specialized types of applications. If you were writing a real pet store application (even back when PetStore came out), you would be crazy to use EJB!

The pattern repeats over and over, with technology (“Everyone is using Struts, so we should be too”) to methodologies to products. You can bet that the SOA vendors are salivating over the prospect of creating the prescription that says “Everything must be decoupled, document centric messages – here, we have an expensive product that just happens to do this!” As much as it hurts, you have to make determinations for yourself on which technology (methodology, framework, tools, etc.) are best for the situation you are in right now. There is no prescription, no matter what ersatz technology doctors tell you.

3 comments:

Anonymous said...

Unfortunately this is exactly the feeling I'm getting from Agile zealots lately .. that if you fully embrace {XP, Scrum, whatever} you'll have instant software development success. I coined pliant software development in protest. I'm glad to hear some of the experts are still on the right track and that presumably it is just some small faction (read marketing department) that wants to make money off prescriptive approaches.

John said...

Sadly, people still expect software development to be a "follow the recipe" process. Thus examples like the JPS and design patterns of all flavours are still followed blindly.

The roor cause? I suspect it is that we have far too many people who know how to write Java (and are Java Certified Engineers) but don't know how to program.

Anonymous said...

Wow. You mean I can't just follow whatever is the lead story on MSDN magazine and it will make our IT department run better, faster, cheaper, etc? What a buzzkill.