Thursday 9 October 2003

Singing Horses, Software Fads and Fashions

I've just read an insightful article on the role of Fads in Software Development.

Some quotes:
Software fashion means "everybody's doing it!" - which in turn means "you're mad if you're not doing it too." A direct consequence (which can also recursively feed back into the hype and overselling) is the inappropriate use of a new product or technology: like using Black & Decker's amazing new UltraHammer to fit a light bulb...
[...]
When hype overtakes a person's ability to appraise a technology objectively, then of course it's going to start to be used for the wrong things.
[...]
XML is best at representing data in a clean and open fashion. Anything more is stretching the point, like sticking a saddle on a pig and calling it a micro-horse. Inevitably, books then start to appear that rationalize the industry's madness, such as Micro-Horse Revealed, Micro-Horse Developer's Guide, or Teach Your Micro-Horse to Sing in 21 Days!

Is this industry-wide insanity down to mass hypnosis? A general tendency for otherwise sane and rational people to apply some bandwagon technology to problem A simply because they heard it's good for problems A-Z (when it was only ever intended to solve problem H)?

The truth, as we shall see, is rather more uncomfortable. The madness wouldn't be possible without a special breed of person . . . the Stupid Fashion Victim.....
There's a lot more besides. For those in the Software Industry, this should be compulsory reading. For those outside it, some of the TLAs (Three Letter Acronyms) and professional jargon will be meaningless symbols, but you should still be able to get an insight into the cluelessness and incompetence that comprises all too much of the industry.

I recently suffered trying to remediate - or at least understand - a system that had fallen victim to this syndrome.
In the software world, some examples of inappropriate usage are: EJB for a small ecommerce app; extreme programming for a short-term project with stable requirements; Struts for a web project where plain old JSP + JavaBeans would do the job handsomely;...
The application was a glorified address-book on the web. Implemented using EJB, and Struts. You don't have to know what EJB and Struts are, take my word for it, it was a bit like using not merely a sledgehammer, but a medium-sized Industrial Park full of million-kg drop-forges to crack a peanut.

Ah me. My poor powers of communication are inadequate to explain the many and varied new technologies with whimsical names like "Java Beans" to those outside the industry. Truth to tell, more than half the people in the Industry don't know what they mean either. That's why I work for a firm that gets a lot of its revenue explaining this stuff: it's not meaningless, nearly all the mystical-sounding tools and techniques are both powerful and useful in the right domain, and the TLA's have very specific meanings, quite simple in themselves, but not always easily explainable in more commonly used terms.

Which leads me to wonder about my own ignorance of many things. To take one example, Knitting. I know the phrase "Knit one, Perl two" but haven't got the foggiest idea what it means. I see people pick up two sticks and some string, and somehow they manage to make a woolen jumper. I've even watched the process. Yet it's more of a mystery to me than, say, the Copenhagen Interpretation of Quantum Physics, the Bell Inequality, and Feynmann diagrams. Not to mention Executable/Translatable UML (Unified Modelling Language) or n-level architectures. Why should Rocket Science be a synonym for "Stuff you need to be a Genius to Understand" when so much Intellect and Talent is deemed unworthy of notice because it's relatively commonplace?

As un-knowable as why an article should come along that tied in some subjects of my blog this week: Pigs, Singing Horses, and Software.

No comments: