BW: Let me begin by repeating what I told you on the phone. I was a member of the ACM [Association of Computing Machinery] Council when the question came up of making software engineering a profession. I think that was in 1992. I remember the discussions. It seemed like a “no brainer”. Of course we should go ahead. That’s how I voted. I think we received reports on the progress of the project after that. But in 1996 I became President of the National Academy of Engineering (NAE); at the time the NAE was having a very difficult time and I had to devote 25 hours/day to resolving its problems. So, from then on I have no notes recording anything having to do with the project. No memory either. And, given how busy I have been since, I think the absence of notes and memory probably fairly represents my involvement. I hope you won’t feel that you have wasted your time.
1. What is your educational background?
BW: B.S. in Engineering Physics (University of Illinois, Champaign-Urbana), 1961, from the Engineering School. M.A. in Electrical Engineering, 1963, also from UIUC. Ph.D. in Computer Science, 1968, from the University of Virginia.
I was captivated by computers in the first semester of my senior year, and my life took an abrupt 90 degree turn. At the time there was no Computer Science Dept. at Illinois, so I thought EE was the way to do what interested me. But by the time I had my master’s degree, however, I realized that straight EE at Illinois at that time was not what I wanted.
2. What sort of organization do you work for? What do you do there?
BW: Together with its siblings, the National Academy of Sciences and the Institute of Medicine, the National Academy of Engineering (NAE) has two purposes. One is to serve as an honorific organization with about 2000 members. To be elected to the NAE is the highest honor that can be bestowed on an engineer by one’s peers. Only about one in a thousand engineers is so honored. The other purpose of the NAE is to advise the government on issues in science and technology. The Academies have served both purposes since the NAS was established in 1863 by act of Congress.
I’m the President. That’s an elected office with a term of six years. I’m in my second term. My job has two parts corresponding to the NAE’s two purposes. First, I run a membership organization. Second, I help oversee a staff of about 1200. Mostly, the staff helps the advisory panels do their work. We publish about one advisory report every working day. Each report—each of the books on those shelves is a report—is an assignment from the government. Each is done under a contract we negotiate for that study. Overall the Academies’ budget is about $250 million a year – almost all of which comes from contracts to do these reports.
3. What experience, if any, have you had in software development? If you are a software developer, what led you into that field?
BW: A lot of experience. I began my career as an academic at Carnegie-Mellon University. I wrote a number of large programs, for example, I designed the Bliss programming language and wrote the compiler for it that Digital Equipment Corporation (DEC) used for writing system software (now HP uses it, of course). I also wrote the Hydra operating system for a 16-processor multi-processor computere. Besides exploring the implications of multiprocessing, Hydra tested some novel ideas in computer security.
I met and worked with Mary Shaw and Mario Barbacci while at CMU. In those days, computer science was still a small field. It was easy to know almost everyone who did anything at all important.
Later I founded and ran a company of my own, Tartan Laboratories, that did compiler development. We specialized in what are called “optimizing compilers” – one that translate programs in higher level languages like C into very efficient machine code. Tartan was sold to TI in the mid 90’s. The technology for this came out of my work at CMU.
I have done some hardware work as well – mostly at the computer architecture level. I was a consultant to DEC on the design of the PDP-11, and was the principal architect of C.mmp, the 16-processor multiprocessor mentioned above – C.mmp was the largest, shared memory multiprocessor computer of its time. More recently at Virginia my students and I have worked on memory architecture issues having to do with the poor performance of caches on vector-like memory accesses. One of my two patents is the result of this work (the other is for the architecture of a really novel computer that, unfortunately, was never built.)
4. Are you an engineer?
BW: Down to my toes. I was trained as an engineer, of course, but beyond that, I think the term “computer science” misleads people into thinking it is a scientific discipline. In reality CS consists of a spectrum of activities that span from some very deep mathematics to some very practical engineering – and my work has mostly been at the engineering end of the spectrum (my deviations had to do with the formal semantics of programming languages and proofs of correctness of programs).
I love von Karmen’s observation that science is about understanding nature, but engineering is about creating what never was. Both my academic research and my company’s products were all about “creating what never was”, creating what solved a very real, practical problem.
5. How did you hear about the IEEE/ACM Joint Task force on Software Engineering and Professional Practice (SEEPP)?
BW: By helping to set it up. I was one of the members of the ACM council that joined with the IEEE to set up the Joint Task Force.
6. What lead you to participate in SEEPP’s work?
BW: As far as I can recall, I didn’t participate at all. Certainly, I didn’t do any significant SEEPP work after July 1996 when I came to the NAE. I had more than enough work here.
7. Were you familiar with codes of ethics before you became involved in SEEPP? Explain.
BW: I had read the ACM code of ethics. I have read much more extensively since, however. I plan to create a center for scholarship in engineering ethics at the NAE as a way of focusing more attention on this critical issue.
8. In what ways did you participate in SEEPP’s work, especially in the process of preparing the code? (The more details, the better.)
BW: Didn’t—as I already explained.
9. By what means did you participate? For example, did you participate by email, or by phone, or through face-to-face meetings, or by letter, or by informal conversation, or the like?
BW: None.
10. Did any of these means of participation seem to work better than the others? Any seem to work worse? Which would you recommend as best? Why?
BW: Can’t say.
11. Any events that particularly stick in your mind relevant to the process? (The more details, the better.)
BW: No.
12. Do you have any documents, paper or electronic, relevant to your participation in the process? May we have a copy?
BW: I’ve looked but haven’t found anything.
13. Has your thinking about codes of ethics changed as a result of your participation in SEEPP’s work? How?
BW: No.
14. What, in your opinion, is important about having a code of ethics?
BW: Well, there’s the obvious: providing guidelines for individual behavior and speaking to the values of the profession. In all interesting cases, conscience is not enough of a guide. Teaching ethics will not make an unethical person into an ethical one – but it helps students recognize and deal with real cases when they arise because they will have had practice thinking things through.
15. Is there anything about your participation that you are especially pleased with or unhappy about?
BW: I’m unhappy I can’t recall anything.
16. Is there anything about the final code that you are especially pleased with or unhappy about?
BW: No strong reaction one way or the other. However, if I may paraphrase John Ladd, what’s wrong with codes of ethics in general is that they tend to divert attention from macro-ethics issues (such as what standards of safety society should adopt). I think engineering is going to face some serious macro ethical issues in the 21st century that differ in kind from anything they have faced before.
17. Is there anyone whose participation in the process seems to you especially important? Explain.
BW: No idea.
18. Anyone who you think we should be sure to talk to? Explain.
BW: No idea.
19. If you had been in charge of the process, what, if anything, would you have done differently?
BW: No idea.
20. Is there anything we should have asked but didn’t? Anything you want to add to what you have already said?
BW:No.