Two New Lifecycles of Fads

Viewing Programming Fads as 'Product Fads'

14 November 2015

In the past, I wrote about Yali Pali’s paper about the lifecycle of intellectual fads. I am curious about fads because the programming field seems prone to them, and it’s important to avoid fads at all costs. Today, I learned two new ways to explain fads, after reading When a Fad Ends: An Agent-Based Model of Imitative Behavior by Margo Bergman.

Pali focused his studies on academica and claimed that “intellectual fads” followed this pattern:

  1. A new field is developed.
  2. People see that the field has no experts yet (since it is a new field).
  3. People rush to be a part of the hot new thing, with the goal of becoming prestigious experts.
  4. A few people ends up becoming experts.
  5. Everyone else gets bored and leave. The fad ends.

This approach seems to make sense for explaining fads in programming, since it implies why certain languages, frameworks, and even methodologies may rise and fall in popularity. But what if programming is not structured like academia? What if languages/frameworks/methodologies are not specialized fields of interest but instead tools that can be switched in and out? Then it may be important to view fads in programming as being about ‘products’, not about ‘intellectual pursuits’. Bergman’s paper only discusses product fads (and I have taken the liberty of using term “product” with “tool” interchangeably).

When Bergman wrote her paper, she argued against “information cascades”, a theory developed in economics in the 1990s that also purports to provide a lifecycle for fads. An “information cascade” has these stages:

  1. People are given a choice to accept or reject a tool. Since they lack complete knowledge about whether that tool is good to use, they rely on other signals from previous “adopters” of the tool.
  2. The signals from previous “adopters” show that the tool is indeed good. Therefore, people end up adapting the tool.
  3. The tool actually turns out to be terrible.
  4. When people learn that the tool is terrible, they stop using the tool. The fad ends.

Bergman does not like this theory though because it implies that fads are always around ‘bad’ tools. For example, Hula Hoops, miniskirts, and Rubik’s Cubes are not “bad” products by any means, yet they were all examples of fads.

Bergman instead argued that people can be divided into two groups:

Fad Followers do not need to know the exact identity of a Fad Setter to decide whether to buy a product. Instead they look at the behavior of other people, some of whom may potentially have access to the knowledge of a Fad Setter. They can then copy the behavior of those other people, and thereby indirectly emulate the Fad Setter.

Bergman’s fad theory has these stages:

  1. A Fad Setter finds a product, finding it novel and new. He starts using the product.
  2. Fad Followers end up emulating the Fad Setter by using that product too.
  3. When too many Fad Followers use the product, the Fad Setter gets disgusted. The product is no longer novel or new enough for him to use. The Fad Setter leaves the product.
  4. Fad Followers also leave the product, thereby emulating the Fad Setter.

Bergman also discussed ways to prevent fads from occuring.

I tend to not like Bergman’s theory all that much, because it seems to imply that most people are lemmings, who only follow Fad Setters without any regard to whether the product is actually good. It also implies that Fad Setters are themselves not interested in whether the product is actually good either, and only choose products based on whether other people are not using them. Yet whether I like it has no bearing on whether it is true or not, and it does seem plausible that programmers are tempted to “follow the crowd” and listen to gurus. I’m not sure whether the gurus themselves are as flaky as the term “Fad Setters” imply.

Surely, more work has to be done to determine whether Pali’s theory, “Information Cascade” theory, or Bergman’s theory is the correct way to explain the presences of fads in programming. Or maybe all three approaches are correct. I just don’t know yet. I do know that the ‘life cycle’ of a fad is an important topic that I have to keep in mind when evaluating the “next hot thing” in programming. As I wrote in a previous blog post:

“As beginning programmers, we do not have the time or the money to be chasing fads. We want to specialize in the fields that (a) we like and/or (b) will be popular for a long time. Understanding these fads is important, simply so that we can spot them and avoid them.”

Return back to Blog Index