Human knowledge is by necessity incomplete. We cannot know in advance what we might be able to know and what might be essentially unknowable. But of one thing we can be sure: if we do not try to find things out, we shall never succeed.

More often, then, we will be doing evaluation of programs not with respect to one another but with respect to a situation — a total situation — in which they are developed. Looking honestly at the situation, we are never looking for the best program, seldom looking for a good one, but always looking for one that meets the requirements.

Enhance Your Quote Experience

Enjoy ad-free browsing, unlimited collections, and advanced search features with Premium.

In the army — old-fashioned style — every foot-soldier was considered interchangeable with every other. The hierarchical organization, then, was conceived as the structure that could give the fastest and most direct coordination between these interchangeable parts. But a programming project is not a battle, regardless of appearances. There is no need for quite the speed of communication which is necessary under field conditions, nor are the things to be communicated so simple that they can be barked over a two-way radio with shells bursting in the background. What is needed in a programming project is slow, careful communication among teams of people doing very different, highly specialized tasks.

In studying the factors which go into the satisfaction of working groups, social scientists have isolated four major areas: The material rewards and opportunities. The challenge and the interest of the work itself. The general conditions in the larger organization, such as employee benefits, working conditions, and organization status among similar organizations. The competence of supervisors and leaders.

the very first programmer, Lady Lovelace, seems to have had the idea of a programming language as a language as early as 1846. Although she was the niece of Lord Byron, it was not her knowledge of poetry but, rather, of mathematics which led her to think of a symbolic system as a language — for the idea of mathematics as a language seems to go back into the misty ages of the past. Thus, the idea of “programming language” was really born with the idea of programming itself.

Overconfidence by the programmer could be attacked by a system that introduced random errors into the program under test. The location and nature of these errors would be recorded inside the system but concealed from the programmer. The rate at which he found and removed these known errors could be used to estimate the rate at which he is removing unknown errors. A similar technique is used routinely by surveillance systems in which an operator is expected to spend eight hours at a stretch looking at a radar screen for very rare events — such as the passing of an unidentified aircraft. Tests of performance showed that it was necessary to introduce some nonzero rate of occurrence of artificial events in order to keep the operator in a satisfactory state of arousal. Moreover, since these events were under control of the system, it was able to estimate the current and overall performance of each operator.

Try QuoteGPT

Chat naturally about what you need. Each answer links back to real quotes with citations.

lack drama. Why is it that we reward programmers who work all night to remove the errors they put into their programs, or managers who make drastic organizational changes to resolve the crises their poor management has created? Why not reward the programmers who design so well that they don’t have dramatic errors, and managers whose organizations stay out of crisis mode? Organizing

Systems are complex. A computer system is not just hardware, not just software, not even just people plus hardware plus software. The procedures, formal and informal, that have evolved with the system are part of the system; so is the current load on various components, and so is the attitude and experience of the users. Even among the commonly accepted “parts” of a system, clear lines of separation do not exist. Hardware merges with operating system, operating system merges with programming language, programming language merges with debugging tools, debugging tools merge with documentation, and documentation merges with training, and all of them mingle with the social climate in which the system is used.

the job of programming can be fruitfully looked at from the point of view of testing alone — considering that the only real problem in programming is getting the program to work correctly and proving it.