Sean Murthy, Western Connecticut State University
Andrew Figueroa, Western Connecticut State University
Steven Rollo, Western Connecticut State University
There is much focus on topics such as Agile and DevOps among software professionals as a means to build high-quality production software. Many undergraduate courses also teach these topics where students practice key concepts in simple classroom exercises and projects, but, due to many constraints, do not give students an immersive experience. Industry internships do expose students to real-life development and maintenance (often with an emphasis on maintenance), but interns typically do not get leadership roles or make significant decisions. Further, in our experience, interns frequently report they did not understand the big picture of either the product or the process.
In summary, there are relatively few opportunities for undergraduate students to extensively and majorly participate in building, deploying, and maintaining high-quality production software.
In this paper, we share the experience of introducing students to many practical aspects of building high-quality software as well as to a lightweight Agile and DevOps process and having students practice their learning by actually building, deploying, documenting, and maintaining high-quality production software. The important bit is that the process of learning and practicing is itself agile, in the sense that students are incrementally taught concepts and are given opportunities to realize hands-on why a certain process step is necessary and what some of the alternatives might be.
The exercise was initiated by a faculty member (the first author of this paper) and engaged eight students including sophomores, juniors, and seniors. The faculty member generally moderated discussions and introduced new concepts, but no distinction was made among any team member based on their standing (faculty or student). The exercise was not part of any coursework, and all participation was voluntary.
The entire team of nine collectively developed two products, but this paper focuses on just one product (called ClassDB) and provides the perspectives of the faculty member and two student collaborators.
The following is a summary of this successful exercise: The exercise began in Summer 2017 with pre-production versions released throughout summer, and the first production version released by the term’s end. 20 people used the software during Fall 2017, and 20 more are using it this spring after a major update in winter. The software will be rolled out to about 50 users this fall, and after that, it will be made available to about 4,000 users. All source code, tests, issues, and documentation are available in a public GitHub repository at http://bit.ly/ClassDBRepo.