Tuesday, September 30, 2014
From the annals of software development comes an interesting
illustration of the difference between what one knows and what one
doesn't. The below are lessons a coder learned from a bug report that
bizarrely (but correctly) stated that attempting to print an example file would
jam the printer:
- Just because a bug seems impossible doesn't mean it is.
- Abstractions are everywhere, and they can be broken. As a software guy, I believed that getting the paper into the output tray was a solved problem.
The programmer reasonably thought -- but did not actually know -- that a step between the printing command and the physical document was solved. He did not know this because he did not know in detail how the printer worked. It clearly behooves us to be aware of what we really do know versus what we merely assume.