Cargo Cult Software Engineering

Today, a classic for your reading pleasure: “Cargo Cult Software Engineering” by Steve McConnell.

Cargo cult software engineering is easy to identify. Cargo cult software engineers justify their practices by saying, “We’ve always done it this way in the past,” or “our company standards require us to do it this way” – even when those ways make no sense. They refuse to acknowledge the tradeoffs involved in either process-oriented or commitment-oriented development. Both have strengths and weaknesses. When presented with more effective, new practices, cargo cult software engineers prefer to stay in their wooden huts of familiar, comfortable and-not-necessarily-effective work habits. “Doing the same thing again and again and expecting different results is a sign of insanity,” the old saying goes. It’s also a sign of cargo cult software engineering.

5 thoughts on “Cargo Cult Software Engineering

  1. A good example is shielding Javascript with comments – e.g.

    <script type=”text/javascript”>
    <!–

    // –>
    </script>

    The last browsers to choke on unshielded Javascript were Netscape 1.2 and Internet Explorer 2.0. It can also cause problems with XHTML.

    Even so, web developers that are working on IE5+, Netscape 6+ only projects would look at you in horror were you to suggest that you don’t have to shield your Javascript with comments.

    I can’t remember ever seeing unshielded Javascript in the wild. Everyone religiously adds it even though it does absolutely nothing.

  2. > Everyone religiously adds it even though it does absolutely nothing.

    Heh. Including this site.

  3. I haven’t commented my javascript in years. But I’m pretty sure that some version of the AOL browser later than ns 1.2 / ie 2 had problems with it. Netscape 3 was just coming out when I got into web building, but AOL was still shipping a browser that choked on uncommented javascript.

  4. The javascript commenting is a good demonstration on why moving forward with the web is so difficult. Many people learn stuff by reading tutorials that are years old (I know I first did), and so they think that spacer-gifs and nested tables is the future of the web.

    There is a way to properly comment the javascript in XHTML; however, I really don’t see the point of this. I think those browsers have a user base of something like 0.