This paper describes a technique used in introductory undergraduate and graduate software engineering courses at Stephen F. Austin State University. It provided a team software development experience, encouraged enriched learning about software process models, served as the object of black-box testing, and gave students the opportunity to perform software maintenance activities that mimic real-life situations. A graduate software engineering class developed a tool to recommend consideration of appropriate software process models according to the responses to a small set of questions concerning the development environment and the nature of the project. Later, undergraduate classes performed black-box testing to determine whether the artifact performed correctly. More than a year after the original development, a second graduate class was challenged to perform maintenance actions on the product, about which none of the students had any knowledge or experience.