Peter Neumann – 1983 – thoughts
Psychosocial Implications of Computer Software Development and Use:
Zen and the Art of Computing
“the logical desire to use low-level programming languages in order to obtain efficient programs must be tempered by a holistically viewed long-term decrease in overall development costs”
This article summarizes the software development process in human terms — especially by looking at classically left- and right-brain characteristics that can be detrimental or beneficial during the creative and (possibly) repetitive actions that underlie program design.
Neumann makes a core distinction between logical, detail-oriented, procedural skills, and holistic, creative, and unstructured thinking. He acknowledges that each individual possesses a unique combination of these traits, and that teams should have members who excel in different subsets of these skills.
The major technical discussion of this article revolves around abstraction — as the fundamental cognitive paradigm for dealing with complex systems. Neumann also emphasizes the importance of an ‘integrated’ approach toward abstraction — recognizing that a trivial detail at a high level of abstraction may be fundamental to the operation of the system at a lower level of abstraction. He also relates high levels of abstraction to the ‘right-brained’ view, a ‘just forest no trees’ approach, and emphasizes that focusing only upon lower levels, a tendency which may become more pronounced as we age, causes a ‘missing the forest for the trees’ conceptual roadblock.
Neumann’s overall goal is towards the creation of robust, reliable, testable systems — more relevant now than ever. Pretty amazing that this article was written in 1983!