Software Writing and the Intellectual Superiority Complex
Have you ever been reading something and had to pause for a moment to understand what the author meant? Sometimes this pause is followed by the feeling that the effort put in to understand the text far outweighed the complexity of the concept it implied. I had one of these moments when reading the book ‘Software Development Failures’ by Kwek Ewusi-Mensah. The piece that caught my mind was:
The postmodernist view of software development explicitly recognises the need for a plurality and diversity of shared responsibilities for all stakeholder groups involved in the development, so that all legitimate relevant views will be heard and incorporated into the problem formulation.
This is comprehensible and grammatically correct but is just a little too obtuse to flow easily into the mind. I see this sort of thing a lot, particularly in academic circles, and wonder if such passages are really about the intellectual prowess of the author rather than the comprehension for the reader.
As a little experiment I had a go at rewriting it (below) in the way I might if I were writing on this topic (albeit unlikely). See what you think:
The postmodernist view of software development recognises the need for a variety of responsibilities, shared between different stakeholder groups. This sharing of responsibilities facilitates the communication of views between groups allowing those that are relevant and legitimate to be included in the problem formulation.
I know it’s not a world away from the original but I think it is an improvement, even if only through the extra full stop. Which do you prefer??
However Kwek’s passage is not ‘bad’ as such, even though it is a bit long and dense and hence a little hard to digest in one read. The problem is more fundamental. It just seems pretentious as well as a bit pointless. You find yourself asking the question; if you were writing a book aimed at helping someone learn, why write it in a way that makes it harder to understand? One answer is that of imposing intellectual prowess though the use of language, otherwise known as the assertion of intellectual superiority.
The issue of intellectual superiority seems somewhat more prevalent in the computer sciences that other disciplines possibly due to the density of technical language that we have. This breadth of domain specific acronyms and terms offers a great degree of cover to those wishing to use such terms to bolster their technical position or assert intellectual superiority over others. This kind of abuse has obvious ramifications should the perpetrator be caught out (something that is probably inevitable).
However even the use of technical language in what appears to be a legitimate context can be ill-advised. The problem is that different people react differently to terms that they are not familiar with. To pick stereotypes, junior members of a team will generally seek an explanation for terms they do not understand. However more senior members, particularly management, are far less likely to seek similar explanations. Terms they do not understand are more likely to be ignored or partially understood. Even worse, they may be considered with suspicion! Because of this computer scientists must be wary of their audience. Having empathy for the technical understanding of others allows domain specific terminologies to be decoded into accessible language. Staying on the same technical plain as management is vital for a two way communication. Inaccessible language can irreparably damage this relationship as it gives rise to some of the primary fears that management have of technologists (the fears of management are discussed further in a separate article).
So in conclusion, if you are writing a book, think about the reader rather than your ego. If you are talking to your boss, keep it simple and don’t geek them out. They are much more likely to be impressed by a concise and comprehensible comment at a level that they understand than an impressive sounding, if somewhat useless, stream of techno-babble!