Wednesday, January 22, 2014

After reading the software engineering Wikipedia page, I find it interesting that Dijkstra didn't look very kindly upon the field of software engineering. Dijkstra's quote on the Wikipedia page got me interested in what else he thought, so I followed the source to his On the cruelty of really teaching computing science essay. There were some very interesting things in it, but I really liked these two paragraphs, because even now, 25 years later, they are still relevant.


"The practice is pervaded by the reassuring illusion that programs are just devices like any others, the only difference admitted being that their manufacture might require a new type of craftsmen, viz. programmers. From there it is only a small step to measuring "programmer productivity" in terms of "number of lines of code produced per month". This is a very costly measuring unit because it encourages the writing of insipid code, but today I am less interested in how foolish a unit it is from even a pure business point of view. My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger."

"Besides the notion of productivity, also that of quality control continues to be distorted by the reassuring illusion that what works with other devices works with programs as well. It is now two decades since it was pointed out that program testing may convincingly demonstrate the presence of bugs, but can never demonstrate their absence. After quoting this well-publicized remark devoutly, the software engineer returns to the order of the day and continues to refine his testing strategies, just like the alchemist of yore, who continued to refine his chrysocosmic purifications." - prof. dr. Edsger W. Dijkstra

No comments:

Post a Comment