Barry Boehm has written some good things about the spiral model and how you use risks to decide how deeply you go into requirements.
So, requirements work, work that we know how to do, work that some people are doing very well, is one, and reviews is another. Without reviews, requirements work doesn't mean anything. Third is configuration management. And, we’ve made some progress in these areas. We know more about them, we have people doing things better in all these areas, but it hasn't swept the industry.
You get a wrong impression if you read the journals. You may conclude that, because this one group is doing it, everyone is. And that's just not true. I think that, over time, there is some natural selection process that will take place, but that takes time.
Another thing that's happening is this: If the growth of the software industry slows down a bit, then we have a chance for people to become more experienced managers, and they will implement these things. Up until now, things have been growing so fast that there are simply not enough people with enough experience to bring the wisdom that we know to bear in very many places.
You know, someone goes to college and takes a computer science class. They learn Perl scripts or Java and they get a job making $100,000 a year. "Chief architect!" A nice title, but what’s in a name? They just don't have enough experience with the kinds of things we are trying to do to keep our profession growing more successful.
You know the Peter Principle, I'm sure, where you rise to your level of incompetence. But do you know about the Paul Principle?
SQP: No, what's that?
JW: Paul Armer, who was one of the early leaders in the software business, said it's not just that people rise to their level of incompetence. In a situation where the problem space keeps growing and people stay where they are, then the level of competence that is needed rises past them.
That's more a description of the situation we have today. I'm not saying we were better 30 years ago. I'm saying that, relative to what we had to do, we were probably just about as good. But I think that people today, if they went back with the equipment and tools and knowledge they have today and just solved the problems we worked 30 years ago, they would probably do much better. But that's not good enough. There's a crisis of rising expectations going on.
SQP: What are your feelings about the use (and misuse) of software engineering standards such as those from IEEE and quality/process models such as the Software Capability Maturity Model (CMM)?
JW: You can add into that other things like eXtreme Programming or anything that has really good ideas behind it. We know that there is no tool that anyone has ever made that someone didn't manage to misuse (and actually make a business out of misusing). If we ruled out things because of their potential misuse, we wouldn't be doing anything! We wouldn't have hammers, knives, and forks. So, you’ve got to be careful. You've got a lot of people writing a lot of stuff about how a technology is misused, and you might think that because the technology can be misused, we shouldn't pay any attention to it. But I think that’s the wrong orientation. I think you can write about how something can be misused as a warning to people who are going to try to use it. However, I think that