Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.
-- "The Retrospective Prime Directive" by Norm Kerth
-- "The Retrospective Prime Directive" by Norm Kerth
Software, as Dr. Ralph Johnson informed us, is distilled experience.
Writing software, Ray Scheufler reminds us, is a process of making decisions.
To make decisions, we have to understand the system we're working in, and the consequences of our decisions. That means that most of the work of a programmer is learning, and very little of it actually involves typing.
Understanding any existing body of software is involves understanding
- the domain,
- the user being served,
- the specific problem being solved,
- the solution chosen,
- the techniques of safe software development,
- the organization producing the project, and
- the technology (language, operating system, network architecture, etc) in which the program is written.
Business people appreciate the need for domain and technical knowledge. Programmers used to be expected to operate on nothing more than a specific design and their raw technical skills; these days they are routinely given more information and context.
It's hard to measure understanding, but if we increase the knowledge and understanding in a team, we have a mechanism for increasing the output in terms of running, tested features.
Note that managers are in the same pickle. They have to make decisions based on the information that is available to them. It would by hypocritical to expect managers to make decisions without feedback and with no opportunity to vet ideas, and then expect them to respect developers needs for more information.
If we are all part of a system of development, then our information value to those around us is a major asset. It's long past the time when it was enough for people to separate and do their own work quietly in the corner. There has to be a system of shared learning and communication if we are to improve as a team, a company, or a field.
"It is not enough to do your best; you must know what to do, and then do your best."-- W.E.Deming
No comments:
Post a Comment