The Software Enterprise: Preparing Industry-Ready Software Engineers

The Software Enterprise: Preparing Industry-Ready Software Engineers

Kevin A. Gary (Arizona State University, USA)
DOI: 10.4018/978-1-60566-102-5.ch007
OnDemand PDF Download:
No Current Special Offers


“You can’t teach experience” – but you can sure try. At the Polytechnic Campus of Arizona State University, we are developing a learning-by-doing approach for teaching software engineering called the Software Enterprise. The Capstone experience is extended to two one-year projects and serves as the primary teaching and learning vehicle for best practices in software engineering. Several process features are introduced in an attempt to make projects, or more importantly the experience gained from project work, more applicable to industry expectations. At the conclusion of the Software Enterprise students have an applied understanding of how to leverage software process as a tool for successful project evolution. This chapter presents the Software Enterprise, focusing the presentation on three novel aspects: a highly iterative, learner-centered pedagogical model, cross-year mentoring, and multiple projects as a novel means of sequencing learning objectives.
Chapter Preview

Background And Motivation

Software engineer ranks as one of the fastest growing occupations (U.S. BLS, 2007) with the highest median salary (Morsch, 2006). Unfortunately, many employers consider new graduates unproductive, while at the same time those graduates feel unprepared for that first job. Traditional computer science education is criticized as outdated, too theoretical, and too fractured. As educators, we should do a better job preparing new graduates for what lies ahead. We should expose students to the true nature of today’s computing challenges, strive to ground students in fundamental theory, and provide them the modern tools a modern discipline requires.

The Software Enterprise uses a bottom-up approach to incorporating process best practices and process models via a multi-year Capstone experience. Example best practices include configuration management, unit testing, and code inspections for software development. By software process models we mean the incorporation of accepted process models as a mechanism for teaching and learning software construction, maintenance, and project management. The ability to identify issues, analyze risks, debate, create consensus, and work within a team are examples of managerial skills software engineers require perhaps more than other engineering disciplines due to the unique challenges in developing software products. We also contend there is more in the intersection of emphasizing process execution and project management skills than is given proper due. In other words, how does a learning facilitator demonstrate the need for process structure while at the same time mentor students on the judgment needed to know when to alter the current process instance to ensure project success?

Complete Chapter List

Search this Book: