Grady Booch interviews SEI Fellow Watts Humphrey about his early life and formative experiences. In part 1, Humphrey explains why modern software quality is truly terrible, why he failed 1st grade, and why his dad bought him a Model T Ford when he was eight years old.
This interview was provided courtesy of the Computer History Museum.
Grady Booch: So welcome. This is Grady Booch. I’m here with Watts Humphrey and we’re connecting via Skype because we’re both in different parts of the world. Here we are on a morning of Wednesday, June 17 for an oral history on behalf of the Computer History Museum. So welcome Watts. Thank you very much for joining me. It’s been a long time since you and I have seen one another face to face, so I’m just utterly delighted to have the opportunity to converse with you, so thank you for joining us.
Watts Humphrey: I’m delighted and honored to be interviewed, and particularly by you. It’s been 20 years since we were last together and I’m delighted to meet with you again.
Booch: Twenty years. Oh, my goodness. Time moves quickly, doesn’t it? Wow. Of course I have as much as hair and I’m as virile as I looked 20 years ago.
Humphrey: I can see that.
Booch: So let’s begin. I’m going to start off with just some general philosophical questions here and then want to dive into just your life and how you got to where you are and then we’ll end up with where you think the world is going. You’re often considered by many as — I think you’re called either the grandfather or the father or the godfather of [software] quality. There are various monikers given to you and, indeed, you’ve been honored by the president by receiving the National Medal of Technology back in — that was 2003, was it not?
Humphrey: It was the 2003 medal. They actually didn’t award it until 2005. There’d been a few things going on then and President Bush didn’t have time but it was a marvelous event.
Booch: Good, and we’ll talk about that. I mean, you truly have made a seminal difference in the art and the practice of software engineering, especially with regards to elements of quality. So I’m just going to ask a very broad question at first because this has been your life. What is quality and how does one measure it and how would you rate contemporary software systems in terms of quality?
Humphrey: Well, a very general response. Quality is doing the job the way it’s wanted. I agree with Deming’s and Juran’s and the other quality gurus’ definitions. Quality is doing what it takes to truly satisfy the customer.
Booch: My general question to you is, what is quality? How does one measure it and how would you characterize the quality of contemporary software?
Humphrey: Okay. Well, as I mentioned before quality is fundamentally doing — producing what it is that the user both wants and needs. They’re not always the same and that means in terms of cost and schedule, the way the product you deliver works. It’s defect free. It continues to function properly and it’s a satisfying product and that means we need to really understand what the ultimate customer wants. This is very consistent with the views of Deming and Juran and the whole quality community. I think that’s a very standard definition, and my reaction to the way that the software community has responded to this is that it’s dismal. I mean that, by any measure for any other kind of product, software quality is truly terrible.
Producing quality software is a very difficult and a severe challenge. When you consider the quality of software itself and what it takes to make a high quality product, defects per 1,000 lines of code is one rather simple measure. It’s simplistic but quite useful and five defects in 1,000 lines of code is considered poor quality, at least by me and most quality people. You want to talk about defects per million. However, when you look at software quality in human terms, five defects per 1,000 lines of code is extremely high quality. A thousand lines of code, at least my C++ code, was 30 to 40 pages of listings. Five defects in 30 to 40 pages of listings, when you consider it, that’s tough. And if we want to get not just 5 per 1,000 but 5 or 10 per million, we’ve got to talk about 5 defects in 30,000 to 40,000 pages of listings. The problem is that the whole software community is treating this as if today’s products are high quality work. I mean, they’re really, kind of, looking it over and saying, “Yeah, it looks okay.” The real focus on producing extremely high quality isn’t there. We’re not going to get very few defects per million lines of code by just having people try hard and hope they’re doing it well. The lack of a really serious attack on this problem by the entire community, the academics, the theoretical types, industry is, I think, totally irresponsible. People need to understand that poor quality software work is responsible for just about all of the problems in the software business.
Booch: You used a phrase I’d like to dwell upon which was the human factor. What’s the human cost of bad software?
Humphrey: Well, it’s a terrible job. People are unsatisfied with it. They’re delivering products late at excessive cost. The customers don’t like that. Their management doesn’t like that. Software people are really great people who are doing superb work, and they are treated like failures. They’re failures on the job. I mean, this has been the history in software. You can’t run it. You can’t do a job in software and come out as a hero. Software people don’t do that unless they end up building their own company and so we’re failures. These are some of the brightest people on the planet and they end up failing. And I think the failure is in the way we teach them, the research we’ve done, the background and support we give them and the methods they use. I don’t think we’re doing a proper service for the people that we have and the big frustration I’ve got is that we’ve come up with some ways to attack this problem and they’re not getting any real attention by at least the research and academic communities. People don’t recognize it as important and that’s very frustrating.
SOURCE: INFORMATION IT