The General and the Turkey: a Participatory Introduction to Large-Scale Software
Software engineering education includes not only the education of software engineers but also the education of others about software engineering. From time to time we are called upon to explain "software engineering" to audiences that have never considered the organization or construction of large software systems or dealt with programs larger than a few pages. With little audience experience to build on, this can be a daunting task. This educational item engages the audience in simulated operation of a large system. A dozen volutneers play the parts of databases, communication protocals, and human users in a series of transactions that lead quite innocently to a surprising transaction that actually took place in real life. I have used it with university freshmen; it can potentially be used with groups of hogh-school students or adults who are not computer professionals (and who are uninhibited enough to participate). The preferred group size is 15 to 40. The activity addresses the problems of explaining how large-scale software is constructed from components and what sorts of things can go wrong. It also touches on system integration and evolution, requirements analysis, the software development process, and discrepencies between the users" and the designers" model of a system.