Barry
Boehm, founder and Director of USC’s Software Engineering Center and TRW
Professor of Computer Science won this year's IEEE
CS Harlan D. Mills Practical Visionary award. We spoke to Barry about
this award and his career.
Q: Could you tell
us, without embarrassment, how and when you first began to be involved
in the Computer Science field?
I
was a math major through my sophomore year in college, and wasn't quite
sure what math majors did for a living when they graduated. In the summer
of 1955 I had a summer internship at General
Dynamics, and when I showed up the first day, they had a board with
possible summer assignments in thermodynamics, propulsion, and also in
something called the "digital computer lab". That's where I ended up.
Q: How about how
and when you got involved with software engineering?
Even
at the beginning I wanted to know why I made mistakes in coding and in
getting the user's needs right. But actually, I tried to get out of the
computer field for about five years after that. I went to RAND
and was involved in studying why a command and control system had failed.
We concluded that it was the software, and that renewed my interest in
software and the difficulties in constructing it.
Q: What are the
biggest changes, for better and worse, since you first began software
engineering research?
I
think that we've been good at being able to make paradigm shifts to keep
up with the changing technology. In my years, computers have gone from
batch, sequential, and single-user to interactive, concurrent, and multi-user.
Software engineering has been able to re-invent itself to keep up with
delivering software that supports these changes. For the worse, the field
has grown faster than the ability of people to learn old lessons. There
is too much re-invention of old material and relearning of old lessons.
If you look at current research papers, there are rarely any citations
older than five years. We need to be better at establishing a corporate
memory.
Q: So, what has
stayed the same, for better and worse?
We've
been able to keep this adaptation paradigm and react to changes in computing
technology over the many years. At the same time, the "trailing edge"
has seen too many people unwilling to make that change, holding on to
the past for too long.
Q: Can you give
us an anecdote about Harlan Mills that you recall?
Harlan
had a tremendous scientific curiosity and a belief in people's better
nature. This showed in his goal to build defect-free software. He didn't
make excuses about being human, and the people working with him often
did create apparently defect-free software.
Q: What advice
would you give to all the "youngsters" who are just starting out in software
engineering research?
Spend
some time in industry working on real software development projects. You
need to get your hands dirty and learn not in your mind but in your heart
and gut the problems that real software engineering faces. This will help
you understand what research ideas you have that might be most applicable
in practice.
Q: What does your
crystal ball show will be hot in five or ten years?
Software
engineering for systems that coordinate multiple people and agents, with
multiple stakeholders and decision makers. Software-based decision agents
present an interesting systems engineering challenge.
Q:
Where do you see the most troublesome or long-lasting gaps in software
engineering?
The
integration of software and systems engineering. I think there was an
over-adoption of separation of concerns, which hampered people coming
back together.
Q: Would you list
your career accomplishments that you are most proud of?
Well,
COCOMO, the Spiral process model, and Win-Win are the big three.
Q: What goals do
you still want to accomplish?
We're
working on Mbase, a model-based engineering and architecting paradigm
for system design. We've been refining it by using it in the classroom,
and it is currently packaged as a way to educate.
Q: Anything else
you'd like to add?
I
heartily recommend a stroll on the river path. It's a beautiful diversion.