why is it so hard for developers to submit their work for review by others or to try to improve their own skills by reviewing the work of others? Curiously, superior developers tend to find value with walkthrough and inspection processes while the merely clever do not. So, as always, the good get better and the bad get worse.

What you don't know may not hurt you, but what you don't remember always does.

Share Your Favorite Quotes

Know a quote that's missing? Help grow our collection.

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

Programmers do not ordinarily work in isolation. Although an individual programmer may find herself assigned the task of writing a program, even then she has other programmers to whom she may turn for help — and who, at the same time, may be turning to her.

Enhance Your Quote Experience

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

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.

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.

When people who are driven by a vision see something wrong, they might say to their teammates, “I feel bad because we’re not building the kind of system we can be proud of. What shall we do so we don’t feel this way?” On