This article, and the one to follow, are based on a Software Development class
I taught a few years ago. The students in this class were non-programmers
who had been hired to receive bug reports for a compiler product. As
Analysts, they had to understand the software compilation process in some
detail, even though some of them had never written a single line of code.