I was saddened to hear news of Bill Shannon’s recent passing. He joined Sun very early, as employee number 11, soon after Sun’s founding in 1982. As far as I know, he was the earliest Sun employee remaining at Oracle. He was an engineering leader already by the time I joined Sun in 1986. I had the privilege of working with him — and sometimes against him — on several occasions.
Back in the day, people at Sun would refer to each other by their Unix logins. (I was “smarks”, and to some extent, I still am.) To this day I think of Bill simply as “shannon”. The other day I tweeted a few memorable quotes from shannon. Each of them is backed by a funny story, which I’ll relate here. If you ever heard Bill speak, please imagine these spoken in his imperious baritone.
❧
Sometime in the 1990s, Sun’s internal network was organized into domains that corresponded to the overall functional area in which one worked. The engineering groups were under “eng.sun.com”, the corporate management was under “corp.sun.com”, and so forth. We had email addresses that were tied to the domain name, so I was smarks@eng.sun.com. At some point it as decided that everything would be reorganized into geographic domains. I worked in the San Francisco Bay Area region, so the old domains would be replaced with the sfbay.sun.com domain. An announcement went out that described this change, and it said something like,
Please inform all of your contacts that your new email address will be login@sfbay.sun.com instead of the old login@eng.sun.com. The eng.sun.com email addresses will stop working in 90 days.
I thought, this is ridiculous. I’ve handed out countless business cards that have my eng.sun.com email address on them, and I can’t track down everybody I’ve ever given a business card. I’ve written that email address on papers that have been published in conference proceedings, and those can’t be changed. I can’t be the only one with this problem, either. But, I thought naïvely, it should be pretty simple to set up an MX record (a DNS mail exchanger record) to handle email sent to addresses in the old eng.sun.com domain. I filed a ticket to request that, but it was summarily closed by the network administrators with some explanation like, “Mail forwarding is not possible.” Oh well, I guess I don’t know anything about running a corporate network with thousands of nodes, and I let it drop.
A couple days later, shannon sent mail to all of engineering, describing exactly the same problem I was concerned about. I replied to him, saying that I had requested an MX record be published, but the ticket had been closed. He said, “Yes, that’s what should be done. I’ll talk to the network administrators about it.”
A couple days later, he followed up with this:
You're right, these people are idiots.
❧
A project that shannon and I worked on together was a large joint development project with another company (which I won’t name, but whose initials are H.P.) Well, OtherCompany had a penchant of coming up with incredibly complex, fragile designs that tried to solve problems that didn’t really need solving.
In desktop systems, it’s pretty common to have a portion of a window that lets users edit text. This is usually implemented by a “text editor” widget provided by the windows tookit library, but created and managed by the application. Apparently this was unsatisfactory for OtherCompany, so they wanted to have a single, “daemon” process that managed all of the text editor widgets for every application on the desktop. At Sun we all thought this was a terrible idea, but OtherCompany wouldn’t let go of it.
At one point there was a conference call where shannon and and others at Sun had a review for this design with OtherCompany. It went something like this.
shannon: Now let me get this straight. Instead of each application owning its own text widgets, all the text editing functions are centralized into a single process? OtherCompany: Yes. shannon: And instead of each application process handling keyboard events for its text widgets, those events will be handled by this centralized daemon process? OtherCompany: Yes. shannon: So all the text data that the user has entered will be in this daemon process, not in the application? OtherCompany: Yes. shannon: And if this other process crashes, what happens to that data? OtherCompany: (discussion) All the text data is lost. shannon: And if this daemon process hangs, then what will happen to the applications on the desktop? OtherCompany: (discussion) They will all hang. shannon: ... OtherCompany: ... shannon: Do you see anything wrong with this architecture?
❧
Bill made a big impression on me early on, well before I actually met him. I joined Sun in 1986, as an impressionable young engineer fresh out of school. Fairly early on I heard about some guy “shannon” who was a bigwig in the Systems group. I was in a separate group, the Windows group, so we didn’t interact.
Some time soon after I joined, shannon sent an email to all of engineering, with a policy statement. (This was before I started to save email compulsively, otherwise I would have dug up the original.) As I recall, it went something like this:
This is a statement on the Systems Group's policy for code that is checked into SunOS. The policy is: * All code must conform to the Sun C Style Guide Non-conforming code that is posted for review will be rejected until it does conform. Non-conforming code that is checked into the source base will be backed out and will not be permitted to be checked in until it does conform. If you do not understand this policy, I will come to your office and explain it until you do.
This only applied to SunOS code, not Windows code, so it didn’t affect my day-to-day work. But as a young engineer I found it to be hair-raising! The lesson I took from this was, you do not want to cross shannon.
It’s a lesson that served me well over the years. 🙂
❧
Like Bill, I stayed on at Sun all the way up until the 2010 acquisition by Oracle, and we stayed at Oracle until the present day. We didn’t work together too closely in recent years, though we both worked on Java – he worked on Java EE, and I worked on Java ME and Java SE. We were even in the same building on Sun’s (later Oracle’s) Santa Clara campus for several years. It’s amazing that he’s been around nearby for literally my entire career. It’s huge loss that he’s gone. Bye shannon, we’ll miss you.
❧
Here are some links to other pages about Bill.
- Obituary from the San Jose Mercury News
- Article by David Rosenthal, a former colleague at Sun
- History of the UNIX License Plate
- Tribute by Reza Rahman
- Tribute Site at LastingMemories.com
Even we in sales recognized his value.. Bill, later Eric , and others had great ideas and vision but someone had to write the code, get the architecture right so it flowed into the grand scheme of our O/S de jour without breaking stuff and supervise the rollout and integration so it worked and we actually could sell stuff. Hats off to all our engineers who made us successful especially the early ones and all those who toiled in the background.
Peter K… 83 to 99
Stuart, really enjoyed reading these stories. I loved Bill’s e-mails. Very concise. Always worth reading every last word. A couple Bill quotes that I saved:
From a design review:
“Do you want to be lucky or correct?”
From an e-mail thread with management about setting priorities:
“I want to make sure that management assigns this work a priority (and thus allocates time for it relative to all the other things we have to do) and doesn’t just assume/hope it will get done by the heroic efforts of people who care.”
Loved Bill. Will miss him dearly.
As the 7th person and first woman to be hired in Tech Support under Steve Saperstein, Bill was always courteous when I had to ask him a question. My machine name was “emerald”