Current Features

Disney World, Food, and Competition
Benefitless "Improvements"
Struggling with Sin
The Tyranny of Choice
For What It's Worth: I'm Back
The Glories of the NHS
Sexual Politics
Fill in the Blanks
A Shiny Brand-New Messiah
Is Reality TV Child Abuse?
Bush Expands Strip Mining
More UK Crime Insanity

Read the Front Page

Topics

Blogging
Computers and Technology
Crime and Punishment
Dicatorships
Education
Election 2008
Entertainment
Europe
Faith and Philosophy
Faith and Politics
Features
France
Fun
General
Happy Stuff
Health
History
Human Rights
Humor
International
Iraq
Left Versus Right
Media Bias
Personal Notes
Politics
Product Reviews
Quick Alerts
Quixtar
Racism
Ron Paul
Science
Science Fiction
Sexuality
Sick & Wrong Department
Society
The Arab Street
The Arts
The Church of Gaia
Travel
Words, Words, Words
Your Money

Archives

September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003

Search


The Blogosphere

BitsBlog
Beyond the Rim
Common Sense and Wonder
Dissecting Leftism
Drive-Thru Musings
FunMurphys.com
Investor Blogger
Iowa Geek
La Shawn Barber
The Littlest Apologist
Mark D. Roberts
Muddling Towards Maturity
Quixtar/Amway Infiltrator
Quixtar Blog
Quixtar Sucks
Sinking in Quixand
Zappe Family Blog


Benefitless "Improvements"

A regular readers know, I'm fascinated by our psychological quirks. Today's fun behavior involves insisting everyone follow some practice or policy which, though having some degree of cost, delivers no value which can be explained.

Forgive me, as I will be resorting to software development geekery in the following two examples. (Though perhaps TCG should be right at home! ;-))


When developers create software, they use a "source code control" system to keep track of all their revisions to their source code. This allows them to "tag" a particular set of revisions (say, the software as we released it to Client X last Tuesday) and go back to it as needed. And of course, every single software control system can give you the most recent set of code -- the last set of revisions -- called the "head".

At my first job after college, one of my co-workers insisted we should create a tag to mark all the "head" revisions, so that every revision which was at the head would be tagged, by us, as being in the "at the head" tag.

(Remember again that all source control systems already can give you the latest and greatest version of your code. If they couldn't, they'd be of no use whatsoever.)

He proposed that this should happen every night.

I pointed out that at best the tag would be redundant, at worst it would be in error. (Such as during the day: after checking in changes the "head" tag would still be marking the previous, now non-head revisions.) Nobody would ever use it for anything, as they'd always want to be sure they were working from the head, and would thus use the source code control system's (guaranteed) method of referring to the latest revisions.

(And never mind the work required needed to create a tool which would implement this policy.)

In response, he insisted it would be a "more organized" way of doing things. Organized how? He couldn't explain further: he simply went back to saying it was "more organized", in some unspecified way. It was an "improvement" which delivered no benefit. And what astounded me was that (a) he couldn't see that he was unable to name a single benefit, and (b) that he still expected everyone else to implement the policy he demanded.

His unelucidated feeling that it was somehow "more organized" should have been enough for the rest of us, I suppose.

Over the years, I have started to mentally refer to such "improvements" as "more betterer", the sort of claim an incoherent salesman might make when it can't think of any other reason we should be impressed. ("These go to eleven!")


Although I suspect there are political examples, my industry (software) seems particularly prone to this failure. So I also apologize in advance for the next geeky technical example:

Annotations and Unit Tests: In Java, you can now tag your software with "annotations" -- custom "tags" which carry extra information. This can be useful in some circumstances, such as when you're trying to store data to a database. But more often, people just get impressed with the capability itself, whether it delivers any benefit or not.

A popular software-test-running product, called "JUnit" recently introduced annotations. In the ("bad") old days, you marked a method as being a test by starting it's name with "test". In the ("good") new days, you now can name it anything, and put the annotation "@Test" right before it.

A co-worker of mine was tremendously excited by this "improvement".

"Why is this an improvement?" was my usual sceptical query. "Well, you can remove the @Test in order to make it skip over that unit test." I pointed out you could also have renamed "testXYZ" to something else, like "xtestXYZ", or simply commented the whole method out.

Predictable response? It was still, somehow, a more organized way of doing things. And we should all hurry to adopt this latest version. Sigh.


There are two examples, but I could go on and on: EJBs were, in most cases, an example of this mistake, as is (I would argue) the "Hungarian" practice of denoting the type of a variable by prefixing its name with a long string of letters. I could also point to the numerous times I've seen a client insist on integrating some huge complicated engine with their product without being able to clearly explain why all that "power" (actually: liability) was crucial.

I suspect this predilection to be impressed by mindless whiz-bangery is a hazard of my particular industry. As a kid, I was drawn to anything with lots of lights and dials, and I suspect many similarly "technical" people might have similar tendencies. Music keyboard manufacturers ("Futuristic, high-quality industrial design!") and sci-fi set-designers know this full well. (How many Star Trek computers were just boxes with Christmas lights and a squeaky Majel Barret voice? Whoever designed the UI on those puppies should have been punished severely.)

In those areas, it's harmless or even fun, but it's an irrational tendency which costs my industry -- and you, as our consumers -- tremendously. There's nothing wrong with that joy of techno-whizziness, but it's also important to grow up and ask hard questions, not just respond to our emotions and a vague background conviction that more "technology" (or more government) is always better.

Comments

Nice post! I don't know how many times I've seen this syndrome myself.

I think in my mind, I actually divide this into two syndromes. The "I must make a contribution" syndrome (aka corncob anti-pattern), and the "Whiz-bang" syndrome. I think your earlier problem with SCC system was the corn-cob problem, where the guy felt he had to contribute something, and useful code was just too much work.

The Whiz-bang syndrome is more of a juvenille love of features. "Hey look, it's different and cool!" I think these people belong in underground music scenes, not teams of programmers. I also like to refer to it as "Trade-magazine stupidity", since some of these people find the latest and greatest in a trade magazine and then say "HEY! We need this!" without demonstrating a compelling need.

One of the worst languages for that is Java. Ugh, the number of wierd useless 'innovations' that occur in the Java world is revolting.

Just as a funny, aside anecdote, I remember being in a bookstore and seeing a book that said "POJOs." Wanting to figure out what the latest and greatest buzz-word was, I had to look. The book was rather thick, and then it took some digging to figure out what they were talking about.

Then it hit me: POJO means Plain Old Java Object. I started laughing out loud in the middle of the store at the fact that a book on the order of 350-450 pages was sitting on the shelf with a new buzzword to spin the old technology.

I'm just glad that I get to use a language that's pretty much immune from trendiness. Heck, I think it has the opposite problem where useful things take a long time to get adopted! :-)

Posted by: Michael Zappe on September 11, 2007 10:53 AM

I think your earlier problem with SCC system was the corn-cob problem, where the guy felt he had to contribute something, and useful code was just too much work...

I suspect about half of the drive for EJBs arises from this ("I have to put this on my resume!") but this guy was quite sincere about it. He went on about it for years, and was doing real programming work at the same time.


Ugh, the number of wierd useless 'innovations' that occur in the Java world is revolting.

There are equally weird things going on in the VB world (and J++ was initially a pretty strange beast) but you probably don't hear about them as much. They're more obscure.

I can't tell you the number of times I've heard MS was releasing the end-all be-all new programming technology or framework. Java's just hotter, so there's more innovation, more publicity -- and yes, more stupidity.


POJO means Plain Old Java Object. I started laughing out loud in the middle of the store at the fact that a book on the order of 350-450 pages was sitting on the shelf with a new buzzword to spin the old technology.

Sad and hilarious, isn't it?

I worked with a guy who apparently couldn't help but say "POJO" every ninth word. The correct word is "object". I think the problem is that EJBs were such a detour (and they utterly defeated OOPishness) -- and so many non-talented people have entered the profession -- that most "developers" have never learned (or have forgotten) the basics.

It's like the current fever for IOC. IOC is great: why should every object know about the whole world? But you don't need a complicated tool like Spring (or even a simpler one, like Guice) to take advantage of it. You just need constructors and setter-methods. It's not all that tricky.

But people are forever pushing: "How come we're not using Spring?" (Because you can wire it together yourself in a few lines of code, that's why. And XML doesn't catch syntax errors. Geez.)


I'm just glad that I get to use a language that's pretty much immune from trendiness.

Yes indeed. Long live COBOL!

(Oooops? Did I say that? My bad. ;-))

Just kidding. I used C back in the days when it was a hot language. Rather than having incompetent developers push for meaningless toys, you had incompetent developers defacing memory and the heap in every cruel and horrifying way imaginable. And demanding to know why we weren't using "Hungarian" variable names.

I'll take ignoring the meaningless toys, thanks.

Posted by: Tim (Random Observations) on September 11, 2007 10:57 PM

Add your two cents...

The comment rules will apply. Please post only once.

















« Struggling with Sin | Front Page | Page Two | Disney World, Food, and Competition »