A Quote by Fred Brooks

The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification.
The essence of a software entity is a construct of interlocking concepts. I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.
It is easier to change the specification to fit the program than vice versa.
Software is inherently complicated. If you say to somebody I want an airline reservation system, to really say what you want in terms of overbooking and fares, and different airlines communicating with each or schedule changes, it's immensely complex. And so you can't write a program that's any simpler than that full specification.
You become a serious programmer by going through a stage where you are fully aware of the degree to which you know the specification, meaning both the explicit and the tacit specification of your language and of your problem. "Hey, it works most of the time" is the very antithesis of a serious programmer, and certain languages can only support code like that.
The hardest single part of building a software system is deciding precisely what to build.
In programming, it’s often the buts in the specification that kill you.
I think, as a tire manufacturer, you need to deliver a product that, up to a certain specification, needs to hold the loads and the speed. But you want a tire which degrades in performance so the races are not boring, while at the same time, you want it to have peak performance. All together is a very difficult task.
Anyone can write a specification, but if nobody implements it, what is it but a particularly dry form of science fiction.
The hardest single part of building a software system is deciding precisely what to build the most important function that software builders do for their clients is the iterative extraction and refinement of the product requirements. For the truth is, the clients do not know what they want. They usually do not know what questions must be answered, and they have almost never thought of the problem in the detail that must be specified.
The finest pieces of software are those where one individual has a complete sense of exactly how the program works. To have that, you have to really love the program and concentrate on keeping it simple, to an incredible degree.
The process of debugging, going an correcting the program and then looking at the behavior, and then correcting it again, and finally iteratively getting it to a working program, is in fact, very close to learning about learning.
I remember, as a young architect, people always talked about I. M. Pei's concrete. He had a particular specification no one else knew.
I've had the interim belt before and that little interim specification bothers me.
It's so important to come up with the right specification of cars - they need to be loud, they need to be fast.
To try to be happy is to try to build a machine with no other specification than that it shall run noiselessly.
Early Apple machines - don't know how to answer what it was like since there were so few tools. Just had to keep debugging by isolating a problem, looking at memory in the limited debugging (weaker than the DOS DEBUG and no symbols) patch and retry and then re-program, download and try again. And again.
This site uses cookies to ensure you get the best experience. More info...
Got it!