Service-learning is an active-learning pedagogy that focuses on community projects that are directly related to students' discipline. As defined in the Faculty Toolkit for Service-Learning in Higher Education (Seifer & Connors, 2007), service-learning is a teaching and learning strategy that integrates meaningful community service with instruction and reflection to enrich the learning experience, teach civic responsibility, and strengthen communities.
In a traditional software development course, students work on tightly controlled classroom projects created by instructors. While such tightly controlled projects allow each student the opportunity to practice crucial development skills, real-world projects expose students to situations and learning opportunities that cannot be replicated in classroom projects. Service-learning provides students with hands-on, real-world project experience.
Service-learning as a pedagogical approach to software development courses has been embraced by many (Liu, 2005; Poger & Bailie, 2006; Song, 1996), and its benefits include not only providing students with real-world experience in their technical and social skills, but also developing in students a sense of responsibility and ownership. Some (Purewal, Bennett, & Maier, 2007; Rosmaita, 2007) suggest that service-learning projects may potentially attract more motivated and higher-achieving students to the computer science discipline, which could be a major benefit for the discipline, especially when computer science student enrollment has been decreasing for the last few years.
Service-learning in software development is not without its challenges, which include, most notably, additional time and organizational demands on instructors, and maintenance needs after project completion. Additional demands on instructors needs to be addressed according to one's circumstance; maintenance could be more complicated. One solution is to have a support center, as suggested by Chase, Oakes, and Ramsey (Chase, Oakes, & Ramsey, 2007). As another solution, this paper suggests that better documentation might ease the burden of maintenance.
Based on the past experience of one of the authors in service-learning software development, user documentation produced by the student software developers was typically low quality and/or scarce. There are two main reasons for not having quality documentation: 1. There is limited time for software development itself, which implies limited time for creating documents, and 2. Students in computer science or software engineering are not trained in technical communication.
In fall semester 2008, the two authors, one an instructor in the Computer Science Program and one an instructor in the Scientific & Technical Communication Program worked together and designed a curriculum that encompassed technical communication in software development. That is, students in a senior technical communication course and students in a software development course worked collaboratively on service-learning software development projects in order to develop software and the accompanying documentation for non-profit organizations.
Our collaboration involved fifty-six students (forty-six from two software development classes and ten from the technical communication class). Students from the software development class were placed into teams and assigned a service-learning project. Then, one or two students from the technical communication class were placed with each team. The teams then collaborated to produce software and end-user documentation for six non-profit organizations.
As stated above, the collaboration involved two courses: Software Development from the Department of Computer Science, and The Writing Process for Online Documents, a course in the Scientific and Technical Communication Program, which is housed in the Department of English. …