Capstone courses in undergraduate software engineering are a critical final milestone for students. These courses allow students to create a software solution and demonstrate the knowledge they accumulated in their degrees. However, a typical capstone project team is small containing no more than 5 students and function independently from other teams. To better reflect real-world software development and meet industry demands, we introduce in this paper our novel capstone course. Each student was assigned to a large-scale, multi-team (i.e., company) of up to 20 students to collaboratively build software. Students placed in a company gained first-hand experiences with respect to multi-team coordination, integration, communication, agile, and teamwork to build a microservices based project. Furthermore, each company was required to implement plug-and-play so that their services would be compatible with another company, thereby sharing common APIs. Through developing the product in autonomous sub-teams, the students enhanced not only their technical abilities but also their soft skills such as communication and coordination. More importantly, experiencing the challenges that arose from the multi-team project trained students to realize the pitfalls and advantages of organizational culture. Among many lessons learned from this course experience, students learned the critical importance of building team trust. We provide detailed information about our course structure, lessons learned, and propose recommendations for other universities and programs. Our work concerns educators interested in launching similar capstone projects so that students in other institutions can reap the benefits of large-scale, multi-team development
翻译:本科软件工程毕业设计课程是学生至关重要的最后里程碑。这类课程让学生能够创建软件解决方案,并展示其在学位学习期间积累的知识。然而,典型的毕业设计项目团队规模较小(不超过5名学生),且独立于其他团队运作。为更好地反映真实软件开发过程并满足行业需求,本文介绍了一种新颖的毕业设计课程。每位学生被分配至包含多达20人的大规模多团队(即公司)中协作构建软件。学生在公司中获得了关于多团队协调、集成、沟通、敏捷开发及团队协作的第一手经验,以构建基于微服务的项目。此外,每家公司需实现即插即用功能,确保其服务能与另一家公司兼容,从而共享通用API。通过自主子团队开发产品,学生不仅提升了技术能力,还强化了沟通协调等软技能。更重要的是,体验多团队项目带来的挑战使学生认识到组织文化的陷阱与优势。从课程经历中汲取的众多经验包括:学生领悟到建立团队信任的关键重要性。本文提供了课程结构细节、经验教训,并为其他大学与项目提出建议。我们的工作旨在帮助教育工作者启动类似的毕业设计项目,使其他院校的学生也能受益于大规模多团队开发。