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.
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.