< PrevNext >
NATO SOFTWARE ENGINEERING CONFERENCE 1968
21

3. Software Engineering

Kinslow: The design process is an iterative one. I will tell you one thing which can go wrong with it if you are not in the laboratory. In my terms design consists of:
1. Flowchart until you think you understand the problem.
2. Write code until you realize that you don’t.
3. Go back and re-do the flowchart.
4, Write some more code and iterate to what you feel is the correct solution.
If you are in a large production project, trying to build a big system, you have a deadline to write the specifications and for someone else to write the code. Unless you have been through this before you unconsciously skip over some specifications, saying to yourself: I will fill that in later. You know you are going to iterate, so you don’t do a complete job the first time. Unfortunately, what happens is that 200 people start writing code. Now you start through the second iteration, with a better understanding of the problem, and it is too late. This is why there is version 0, version 1, version N. If you are building a big system and you are writing specifications) you don’t have the chance to iterate, the iteration is cut short by an arbitrary deadline. This is a fact that must be changed.
Ross: The most deadly thing in software is the concept, which almost universally seems to be followed, that you are going to specify what you are going to do, and then do it. And that is where most of our troubles come from. The projects that are called successful, have met their specifications. But those specifications were based upon the designers’ ignorance before they started the job.
3.4. MISCELLANEOUS NOTES ON THE SUBJECT OF THE CONFERENCE
A few remarks reflect on the subject of the conference as a whole.
Barton: The scope of this conference is not large enough. In design we should start by designing hardware and software together. This will require a kind of general-purpose person, ‘a computer engineer’.

Babcock: (from Variations on software available to the user)
»The future of new operating system developments in the future may depend more and more on new hardware just on the horizon. The advent of slow-write, read-only stores makes it possible for the software designer to depend on a viable machine that has flexible characteristics as opposed to rigid operation structures found in most of today’s machines. If the software designer had access to a microprogramming high-level language compiler, then systems could be designed to the specific problem area without severe hardware constraints. Major U. S. manufacturers including IBM, UNIVAC, Standard Computer, RCA are building or seriously considering such enhancements.«