The Software Enterprise is a multi-semester sequence designed to expose students to practical, "real world" considerations in software development. The Enterprise has several defining characteristics that separate it from other project-based courses:
- Continuous - Projects are ongoing; students who enter the Enterprise will (most likely) work with a software product line that already exists. They are asked to extend, port, modify, and/or maintain this software product line.
- Multi-semester - The Enterprise is currently designed as a four-semester sequence. This sequence exposes students, in a specified order, to all phases and roles of the software process lifecycle.
- Multi-project - Students are expected to work through two projects instead of one during the Enterprise sequence. This allows students to get exposed to process phases in the proper order, and also not get too "honed in" on one particular project, thereby shortchanging process-related activities.
- "Real-world" - Students are exposed to the full spectrum of forces affecting software development projects. Teams are asked to cope not only with technical issues but also with social or soft-skill issues. For example, changing requirements, changing business models, changes in team membership, changes in project direction, and so on.
- Entrepreneurial - Students are encouraged toward innovative risk-taking; to think beyond the scope of the specific customer problem toward broader societal impacts. This may mean looking for ways to commercialize or open source their work; but even if they do not do so, teams are challenged to create, innovate, and impact.
- Collaborative - Students work in teams across academic year boundaries. Students role-play, with participants responsible for different process-oriented roles. Teams deal with outside roles, such as customers and CXX-level management. Teams work with other enterprise teams. For example, 4th semester students of the Enterprise sequence mentor and manage students in the 2nd semester.
The four semester sequence leads students through "Tools and Process", "Construction and Transition", "Inception and Elaboration", and "Project and Process". By the conclusion of the Enterprise sequence, students have an appreciation for the role of software process, the challenges of software maintenance, the impact of open source, the pros and cons of off-the-shelf software integration, business considerations in building software, and other practical aspects of software development.
Our vision for the Software Enterprise is to educate students on the following principles:
- Provide a situated educational experience for students that expose them to impacts of organizational, social, and cultural influences on the success of software projects.
- Help students realize software decisions are business decisions; such decisions are not made based on technical attributes alone.
- Help students understand the expectations of persons representing external interfaces; Project Managers, Customers, End users, SMEs, Business Development, etc.
- Provide extended hands-on enterprises applying the techniques learned in traditional classroom settings so new graduates not only comprehend the subject content but know how and when to apply it.
- Have student learning evolution follow the learning track of new professionals so as to expedite the assimilation of our graduates as new hires in software organizations in the greater Phoenix metro area.
