December 15, 2005

The fan syndrome

Imagine that you are a reporter sent to the gates of a stadium shortly before a very important baseball game between the Giants and the Athletics (sorry, Bay Area resident speaking here.  For my non-American readers, please replace these with names of famous soccer teams).  Your mission is simple:  ask people entering the stadium who they think is going to win.

If you ask Giants fans, the answer is guaranteed to be "The Giants, of course!".  Well, that's fine, but that was not the question.  You didn't ask them who they wanted to win, but who they thought was going to win.

The only problem is that in most people's minds, these questions are completely equivalent.

But they shouldn't.

After all, no matter how much of a Giants fan you are, you might know that their star player is currently injured, another one is not playing today and that the other team has been winning a lot of games recently and on top of that, they are playing in their own stadium.  With this in mind, reason should clearly tell you that no matter how much you want the Giants to win, the odds are against them for this particular game.  It seems to be common sense, but yet, you will probably not find a single fan reasoning this way.

I call this the "fan syndrome", and this phenomenon is so widespread that I am sure it has a scientific name, which I confess not knowing (if you do, please leave a comment).

Here is another example.

Some time ago, I was following the results of an election and as the day was going by, it was clear that candidate A was going to win over candidate B.  Yet, candidate B and his representatives could be seen and heard regularly on the TV saying that they were confident that they were going to win.

I found that attitude puzzling, so I asked a friend why they didn't simply tell the truth.  My friend summarized this attitude with a simple sentence:  "Nobody likes to pick a loser".

And then it hit me:  what these politicians are doing is simply catering to the "fan syndrome" of their voters.  They want to make sure they don't regret their vote.

What's troubling with this attitude is that it can actually cause this candidate to really lose the election, whereas they might have turned the tables if they had been forthcoming with the voters.  Very often, I have been on the fence about voting.  One candidate has my preference but for various reasons, I find myself too busy or not motivated enough on election day.  If, during that day, my preferred candidate had come out saying something like "The polls are not looking good for us, so if you haven't voted yet, please do so, we need all the help we can get", I would probably have overcome my apathy and gone out to vote.  And it could very possibly have made a difference.

But because of the "fan syndrome", that's not how things work and consequently, elections sometimes take a very different path from what common sense would have dictated.

So why am I telling you this?

Because my recent posts questioning whether Ruby and/or Ruby on Rails will ever become mainstream have caused me to receive a lot of emails asking me "Why don't you like Ruby on Rails?".

Uh?

And then I understood.  Everybody assumes that I suffer from the fan syndrome, or to be more precise, of the "reverse fan syndrome":  if I say negative things about something, it means that I don't like it.

Here is the deal:  I have no problem picking a loser.  It doesn't bother me at all.  I like underdogs and I actually have a strong track record of liking marginal things in domains as varied as computer technologies, movies, music or even food.  But I make a point of never ignoring the realities.

Here is another fact:  I love Ruby and I love Ruby on Rails even more.  I use both on a regular basis and it's a constantly pleasant experience.  But just because I love these technologies doesn't mean that you will hear me say that they are going to take over the world.  In fact, I'm pretty sure that they won't and that Ruby on Rails will, sadly, follow the same path as AOP:  a great idea that will remain the privilege of a few expert developers.  But let's not get into this debate right now because this is not the point of this article.

My point is this:  don't fall in love with the technologies you like.  Just because you made a choice doesn't mean that it's the right choice for everybody.  Accept this, respect people who disagree with you and consider, just for a moment, that maybe -- just maybe -- they might actually have a point.

Be a fan, but don't give in to the fan syndrome.

 

Posted by cedric at December 15, 2005 07:57 AM
Comments

Rails is billed as the simplest, most productive way yet to build web apps. Why would it remain the province of "a few expert developers"?

And I think the jury is still out on AOP.

Posted by: Dennis Doubleday at December 15, 2005 10:09 AM

The jury is out for me on ROR, I like it some days and other days, it irks me to no end.

In other words, I really like the mixins to do compositional programming. I also really hate mixins and the bloat they cause.

For me, AOP for Ruby to introduce mixins would be the best of both worlds. The Ruby classes could stay lean and orthogonal concerns remain, well... orthogonal. I'd accept the opportunity cost of metadata versus declared linkages.

Posted by: Frank Bolander at December 15, 2005 10:30 AM

"Rails is billed as the simplest, most productive way yet to build web apps. Why would it remain the province of "a few expert developers"?"

Because the quality of a product has little to do with its success. It's all about marketing and promotion. OS/2 was vastly superior to Win 3.1 but Windows won in the end. There are of course many other examples of this. Also, we really don't know about the quality of RoR just yet. People are still learning its limits. It's too new.

It took me a long time to learn to just go with the flow. If the flow shifts to RoR, you can be sure I'll be with it. Until then, I'm all about Java.

Posted by: Marc at December 15, 2005 01:05 PM

Man, LISP on rails is so much more productive then RoR. Have you seen how few lines of code it is to do reddit in LISP?

(joking !).

It is an interesting time to live in though. I think we can use and appreciate all these technologies. I think it is easier to use rails when you need to, and java and .net when you need to, then in the past when you had to know details about DCOM, CORBA and so on, and go between all sorts of C++ apis with 10 different ways to do a string.

I was also thinking the other day, after bashing out some ruby, and then some java, how little keystrokes I actually use in java. Sure, its IDE codegen but it seems to work. VS 2003 is even nicer, it seems to pop up the "intellisense(tm)" even faster. I would miss those IDE feature, which are from, gee, 1990something in a dynamic language with no comparable IDE.

But its all good.

Posted by: Michael at December 15, 2005 02:11 PM

I like the Red Sox...and I always think they are going to win!

And where do Ruby and Ruby on Rails play? Are they skateboarding teams? I am soooo out of the loop!

Posted by: Sean Ness at December 15, 2005 08:38 PM

cedric, you miss an important aspect--the human psychology. now ok, I believe, that you are rational, and have a logic thinking, so you could possibly vote for a politican not declaring himself as the best.

in case of voting, most people have to make decision by a limited amout of informations; one the most important is to see, that their favourite is strong; not only strong, but the most strong.

This will imply kinda fact, that he is also the best, and will lead them (represent them) probably better, than other.

If a politican doesn't try to build up this image about himself, he is loosing this powerfull weapon.

Posted by: Robert_your_fan at December 16, 2005 08:21 AM

This phenom is called "fanboy"ism... which is an americanism of the french term fanbois.

If you REALLY want to see this aspect of human nature in action, go play Blizzard's World of Warcraft.

IMO MMORPGs are currently the most interesting petri dish for a lot of our humanisms.

Posted by: lowlander at December 16, 2005 08:46 AM

"Man, LISP on rails is so much more productive then RoR. Have you seen how few lines of code it is to do reddit in LISP?"

You mean Lisp-On-Lines, right?
http://www.cliki.net/lisp-on-lines

Posted by: Jimmy at December 16, 2005 09:26 AM

I don't know anything about Ruby, but regarding the other examples in your post:

I think the baseball teams and political candidates are actually very different situations. In one, the audience is actually selecting a winner by a vote; in the other, the audience is just watching as other factors (for the most part) determine the outcome.

If one candidate was a super-heavy favorite to win an election, and there was nothing else interesting on the ballot, and the weather was bad, I can imagine some of the candidate's supporters not bothering to go vote because "he's gonna win anyway". But at the same time, if people think their guy is gonna LOSE either way, why bother going out in the rain just to be part of the losing team?

In short: many people feel affection for the underdog, and a minority of people will even support him. But a majority of people are swayed by success, confidence, and power.

That's why the underdog IS the underdog.

Posted by: The Friend at December 16, 2005 10:39 AM

The Fan Syndrome is a great thing to think about, and it does point out some really interesting aspects of human nature.

There is another aspect that is interesting. If the Giants trounced the Athletics every single game, how long would it be before people in your area became Giants fans and root for them over their local team?

It will never happen. Most people just aren't built in a way that lets them abandon their local tribe.

This counts for cities, states and countries as well. Once a person has found "Home", where everyone they know is telling them what a great team they have, they will be very unlikely to want to switch.

Engineers are usually a little more flexible than that, but you will always find someone who thinks that vi is the only way to go because that's what they learned on.

I think your concept of Fan Syndrome explains many of the religious wars we seem to get into on slashdot and any other forum where these concepts come up.

Thank you for reminding us to look around ever so-often.

Posted by: Bill Kress at December 16, 2005 10:57 AM

After reading the reply, people are still missing the point.

This is not about sport teams, programming languages, etc. THIS IS ABOUT HOW WE RESPONSE TO OUR DEVOTED OBJECTS. The devoted object is only background issue, the way we support them is the real issue. And this is human issue.

Whether the devoted object is a programming language (Java, Ruby, LISP or even .NET), sport teams (Red Sox, Giants, Golden State Warriors, San Jose Shark), we always hope for the best to our devoted objects. We spend so much time to observe them, learn them, cheer for them, and support them (If you've been a fan, you know what I mean). We hope our devoted objects will be idolized by others too. The advantages will overwhelm its competition and any disadvantages, well, it's not an issue because we’ll ignore the shortcomings as problems at all.

I learn this when I convert myself from Microsoft to Java developer. Java was so hyped back in late 90s, and I was convinced by Java. And I thought I don't have to learn Microsoft stuff anymore.

Back to reality. I’m still using both Microsoft and Java to make a living. And both Microsoft and Java have their own merits and shortcomings. Neither of them are strong enough to offset others strength.

And the point here is that don't get obsessed by what you devoted to. It's ok to devote to something you believe in. But don’t lose sight into it, and becomes your blindspot.

Posted by: Ken Wong at December 16, 2005 12:09 PM

Oh, and I forgot...

"Amiga forever!!!"

Posted by: The Friend at December 16, 2005 12:23 PM

The most eloquent argument about why TestNG sucks that I've ever seen.

The "Fan Syndrome" is cognitive dissonance at it's finest, and Cedric has a nasty case of it.

Posted by: Dude at December 16, 2005 01:48 PM

Cedric, thanks for the blog! As usual, you have written something that gets people talking. I must respectfully disagree with you about the future prospects of ROR at the moment.

Programming languages like any technology have an implicit value and cost. When the value is greater than the cost, the programming language grows in popularity. When the costs start outweighing, usage decreases. Hype and innovation are very important for what we read about but unfortunately (or fortunately) but ultimately has little bearing on the actual market unless it addresses real customer needs (as well explained in Crossing the Chasm).

The problem is that most people don't acknowledge the costs. For example, the talk about ROR reminds me of Microsoft's MFC. Here's the deal with MFC. It was very easy to get started and very easy to get lost.

The major cost of ROR right now is that it is not proven. There is a lot of momentum but not yet a track record of success with industrial strength products. That's real cost.

The current momentum is encouraging start ups and others to bet their business on ROR. We will see what results. My money is that ROR will require some optimizations and then it will shine.

The real question will come down to whether an alternative technology is able to provide greater value. So far, it looks like ROR is heir to the throne in the Linux and Unix space.

Cheers,

-Larry

Posted by: Larry Freeman at December 16, 2005 06:39 PM

I am a AOP fan and I am not an expert. Recently a Spring AOP project was *outsourced* to us. It is true. An AOP project was outsourced. It is not that exclusive anymore.

Posted by: Mohan Radhakrishnan at December 17, 2005 07:40 PM

Nice post Cedric.

I think there's another notable side-effect of the behaviour you describe which is that one will not, in many cases, be able to have a reasoned technical debate about the merits of one choice over another.

The implications for building quality software and/or systems, learning and advancement of our trade in general are quite staggering.

Posted by: Dan Creswell at December 18, 2005 11:35 AM

Why don't you like Ruby on rails?

;-)

Posted by: at December 19, 2005 09:58 AM

Great post. One other aspect of this is the "hidden agenda". Unlike sports teams who may win or loose with little real consequence for the fan, many developers have a lot to gain or loose from the adoption of a technology and will do anything to promote it (a la JBoss guys astroturfing on tss).

I like the idea of getting back to basics, showing some respect and upleveling the conversations to all of our benefit.

Posted by: at December 20, 2005 03:14 PM

Interesting, yet outdated, blog entry. Its amazing how things have progressed in only six months. Its surprising how far behind traditional languages and platforms are beginning to fall. When productivity increases are high enough, it may not matter than you can't "do a two phase commit". The Rails, Grails, DJango movements are all interesting and are the basis for the next generation of software. I think we should all get used to them and admit that Spring, EJB and app server vendors have done more to complicate and harm the J2EE platform than help it.

Posted by: scocarter at July 2, 2006 04:05 AM

Interesting, yet outdated, blog entry. Its amazing how things have progressed in only six months. Its surprising how far behind traditional languages and platforms are beginning to fall. When productivity increases are high enough, it may not matter than you can't "do a two phase commit". The Rails, Grails, DJango movements are all interesting and are the basis for the next generation of software. I think we should all get used to them and admit that Spring, EJB and app server vendors have done more to complicate and harm the J2EE platform than help it.

Posted by: scocarter at July 2, 2006 04:06 AM

Frontline Plus

Posted by: tbarker at April 18, 2007 09:23 AM

Frontline Plus

Posted by: tbarker at April 18, 2007 09:24 AM
Post a comment






Remember personal info?