external image win1.jpg

Myths in Software Engineering

Working Session at ICSM 2007, Thursday, October 4, 2007, afternoon

Slides from the Working Session are archived at SlideShare.net


Myths and urban legends have become integrated into our daily lives. TV shows, such as MythBusters, tackle myths through experiments, which attempt to either debunk these myths or to explain the facts behind these myths. Myths exist also in science and hinder the progress of knowledge. For instance, the annual Workshop on Duplicating, Deconstructing, and Debunking provides a forum to “deconstruct prior findings by providing greater, in-depth insight into causal relationships or correlations” in the computer architecture domain.

Software Engineering (SE) contains its own set of myths and urban legends. The experience gained by researchers in the software maintenance community should be valuable in studying various SE myths and in separating myths from facts. The goal of this half-day working session is to increase awareness of many SE myths and to offer an open venue to discuss and understand them.

The organizers are collecting popular SE myths online through a Wiki. We will select two myths for discussion in the working session. For each myth, we will invite advocates and opponents to facilitate the discussion. The deliverable of the working session will be a collection of arguments and facts (e.g., published studies and experience reports) for each myth. Additionally, we will poll the audience before and after the session on each myth to decide if it is myth or fact.

We will start the online discussion with the following list of myths (collected among participants of ICSE 2007). The myths in the list are phrased in a provocative tone on purpose (in order to encourage the participation of advocates and opponents):
  • Clones are evil. For a long time code cloning was considered harmful; however, recent studies show that cloning might even be beneficial and desirable.
  • Bugs reside in complex code. In the quest for metrics that predict bugs, many tools report various code complexity metrics; however, recent studies show that most complexity metrics correlate with just LOC. Is it really complexity that makes programs fail?
  • Aspect-oriented programs are easy to maintain. Aspect-oriented programming seems to be a story of successes; however, after ten years of active research (including its own conference), it is not clear whether aspect-oriented programs are any easier to maintain than traditional programs.

Here are other myths:
  • MMM. Many software project managers still believe that men and months are interchangeable commodities in software project schedules.
  • Please feel free to add myths here

Organizers

Ahmed E. Hassan, Queen's University, Canada
Thomas Zimmermann, University of Calgary, Canada