Where the heck is our institutional memory?

Scanning through my usual round of blogs and news outlets this morning, I see a lot of chatter about overtime in the software industry. This all proves to trace back to an article over at News.com which suggests that shorter working hours may be coming into fashion in the software industry. Software makers have apparently concluded that working ridiculous schedules month after month after month results in tired workers who make mistakes and produce lower-quality software.

Hm, where have I read something like that before? Oh, yes:

"It has been our experience that the positive potential of working extra hours is far exaggerated, and that its negative impact is almost never considered. That negative impact can be substantial: error, burnout, accelerated turnover, and compensatory 'undertime.'"

And what cutting-edge, recent study did I pull that quote from? Tom DeMarco and Timothy Lister's book PEOPLEWARE: PRODUCTIVE PROJECTS AND TEAMS, which was published in 1987. That's 18 years ago, by my calendar. (News.com even called DeMarco for a quote to go with their story, and he was gracious enough not to point out that their reporting was just a tad slow in this case).

This is far from the first time that the software industry has had to rediscover some of the basic truths about quality, management, scheduling, design, and so on. Indeed, it sometimes seems to me that as an industry we spend a good 90% of our time reinventing wheels and stacking them in the corner to make room for the next round of reinvention. This happens on all levels from methodologies to products (why do we need so many different text editors? Or accounting packages, for that matter?). I begin to wonder whether there's some fundamental flaw in the software industry, or in the people that it attracts, that renders us incapable of learning from the past.

I think the major issue may be simply that we spend so much time on the cutting edge, or even beyond it (.NET 2.0, anyone?) that we don't take the time to look back. How many of you have read the classic THE MYTHICAL MAN-MONTH? Despite being published decades ago, it's still full of useful insights for the software manager, far beyond the simple fact that people and time don't trade off evenly on project management (though to be fair, many managers haven't even learned that basic fact yet). PEOPLEWARE is also useful for practically any software manager. If your own tastes run purely to development, how about THE PRAGMATIC PROGRAMMER or CODE COMPLETE? Here's a little thought experiment: do you think all of the code you've written the last few years was necessary? Was it all done the best possible way? Or would you perhaps have done a few things differently if you knew then what you know now?

The longer I spend in this industry, the more I realize that there's an enormous amount of knowledge already out there. Whether it's on the nuts and bolts level of designing efficient web applications, or the global level of putting together an efficient distributed team, someone has probably been there before you. A few hours looking at the literature and searching the Web can save you many, many days of frustration and lost time. Think about that the next time you plan to work harder instead of smarter.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.