DISQUS

Bumblebee Labs Blog: Software misengineering

  • Gregory Michael Travis · 3 weeks ago
    "Mask" is the operative word here. Software is very complicated, and we use abstraction to hide things, in the hopes that we can create more complicated things without screwing them up.

    Programming is all about *hiding* stuff. There is so much that is invisible. While debugging a program, you are generally looking at a tiny tiny portion of it, like scanning a stadium with a flashlight.

    Every programmer of a certain age knows that software was more stable years ago, because it was smaller. As it has gotten bigger, it's gotten less stable. We're still surprised by this because we are employing increasingly sophisticated tools and techniques, but apparently they can't possibly keep up with the problems caused by size.

    Larger programs mean more things are hidden. Code rot is almost never discovered early. Programmers who cause code rot are almost never discovered early.

    I can't account for the FizzBuzz effect at all, but it's been a while since I was in school so I really have no idea what goes on there; all I know is that it has got to be really different than it was when I was in school.