Abstract

This paper describes the author's experience in transitioning an undergraduate capstone software engineering project course from a traditional format to a modern agile development methodology. The agile approach replaces the sequential, and documentation-intensive, product development steps of the waterfall model--requirements analysis, system design, implementation, testing, and deployment/maintenance--with a series of short development sprints during which team members collaboratively develop and release a small set of new product features. Agile development focuses on collaborative teamwork and effective communication rather than a strictly managed and rigorously documented process and stresses continuous testing, integration and deployment rather than deferring these steps until late in the development cycle. While agile methodologies have gained considerable traction in industry, their adoption by academia has been slow due to several factors including challenges in effectively monitoring and mentoring student teams, difficulties in carrying out formative and summative evaluation of student work, and academic bias against a process sometimes regarded as non-rigorous. The author attempted to address these challenges in spring, 2014 while redesigning a long-standing capstone SE course to an agile methodology. Background For nearly two decades, the author has been teaching a semester-long, team-based software engineering project course. This course serves as the capstone for a sequence of software engineering courses taken as electives by upper-level undergraduate students in Electrical Engineering and Computer Science at The University of Iowa. Students in the capstone course have completed at least two prior software engineering methodology courses or gained equivalent real-world experience. Student teams, comprised of four or five members, are permitted to choose their own projects, subject to instructor approval, and teams are strongly encouraged to seek out real customers for their projects. Prior to the spring, 2014 semester, the capstone course utilized a software development process based on the traditional waterfall model. 1 This model derives its name from the fact that it views the software development lifecycle as a one-way through a series of sequential steps as shown below in Figure 1. The inherent downhill flow of the model means that mistakes or omissions in early stages of the process may be difficult and costly to correct in later stages. This necessitates a heavy emphasis on front-end planning and documentation. For this reason, waterfall-like software engineering processes are sometimes referred to as plan- driven development. 8

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call