A posting from Christopher Lott to comp.software-eng in 1994. I found it when i was cleaning up my document attic. I have added minor bold and emphasis tags and deleted the "Path" from the message header.

From lott@bogner.informatik.uni-kl.de Sat Jul 30 10:35:17 1994
Newsgroups: comp.software-eng
From: lott@bogner.informatik.uni-kl.de (Christopher Lott)
Subject: Heroes in the software process
Message-ID: <1994Jul29.144512.9215@uklirb.informatik.uni-kl.de>
Sender: news@uklirb.informatik.uni-kl.de (Unix-News-System)
Nntp-Posting-Host: bogner.informatik.uni-kl.de
Organization: Universitaet Kaiserslautern FB Informatik
Date: Fri, 29 Jul 1994 14:45:12 GMT
Lines: 77
Sometime last week (possibly two weeks ago, our news is dreadfully slow lately) there was a discussion about *heroes* in the sense of CMM, level 1 companies, and software development/maintenance processes. It was apparent to me that people were talking right past each other when it came to the word "hero" and I'd like to offer my ramblings about the word. The general gist was that some said a project could not survive without heroes, some said that given the right processes, a project could survive without them. Hope I'm not too far behind the subject with this follow-up.

Here's my ideas about a few types of heroes. Please feel free to add to the list! (swe == software engineer, it's gender neutral and includes people who spec, design, code, test, document, and maintain code. Very PC :-) I've listed only positive heroes, idealized role models; although I can conceive of a negative hero, the word alone implies good things to me. Superman and all that. (Yes, I watched Superfriends as a kid. What can I say.)

Application-domain hero: The swe who knows almost everything there is to know about the problem domain. How far, how fast, how well the software has to work to gain acceptance. The person who discovers requirements problems almost as soon as they develop. The person with whom all other swes consult about misunderstandings and to gain a feel for the problem domain. Experience almost certainly gained from prior projects or other intimate contact with the application domain.

Solution-domain hero: The swe who knows almost everything there is to know about the solution domain. In short, the Unix/Dos/VMS/IBM guru. What the computer can do, what bugs the compiler has, what bugs are in the system libraries. The person who realizes which specs can be realized given the current target platform, and which cannot. The person to whom everyone runs with the really intractable software bugs. Possibly a hacker (in the positive sense of the word.) At the risk of stereotyping, the swe who deep-down enjoys playing with the machines.

Software-process hero: The swe who has memorized the quality manual (assuming there is one, and it's not completely nonsensical). The person who knows how the next version should be released cleanly, how to recover entire, prior versions of the system, how the regression test has to work, and how to accept (and avoid) changes in the requirements according to the rules. Helps keep things moving without drowning people in paper. Not a bureaucrat. Understands the spirit behind the process rules and why they're in place. Invaluable for helping attain higher CMM levels. (I wanted to name this role the software-engineer hero, but that's too ambiguous.)

The I-will-work-harder hero: (see also Animal Farm) The swe who is willing to sacrifice spouse, hobbies, kids, eating, sleeping, etc. (i.e., life) so that there will be more time to spend in the cubicle. Works 80 hour weeks with no reward. Always at work on weekends. Maybe a work-a-holic? Not necessarily an expert in any of the senses discussed above, but willing to work any amount of hours to get the work done. Future burn-out candidate? Reliable workhorse. Dedicated.

Language hero: The swe who writes love sonnets in the target programming language, be it assembler, ada, or CLU. The person who owns the language design documents, owns autographed copies of all the best books on the language, knows all the ins and outs, the trade offs, the optimizable constructs, and even understands the unmangling rules in the debugger (you Ada and C++ guys, you know who you are). Definitively informed about the current standarization efforts, and is willing to discourse about the errors made by the standards committee at length. Uses the full extent of the language. Regularly discovers compiler bugs. Sometimes fixes compiler bugs (but only when lucky enough to have the source).

Well, I'm fresh out of ideas. Hope that this encourages discussion of heroes (but not hero worship :-).

"Christopher Lott / Email: lott@informatik.uni-kl.de / Tel: +49 (631) 205-3334"
"Address: FB Informatik - Bau 57 / Universitaet KL / D--67653 Kaiserslautern"
"World-wide web: http://uomo.informatik.uni-kl.de:2080/Personalia/cml.html"

Hacker's Wisdom / "Heroes" by Christopher Lott

Last Modified: Mon Nov 10 19:59:51 2003