Among software professionals, the quality of team communication is widely acknowledged to be a key factor in the success or failure of software projects. The inherent mutability and intangibility of software, coupled with the intense rate of change in the software workplace, demand attentiveness and precision in oral and written communication. Students in CISE programs need training from communication specialists and practice in the particular genres common to their future profession. Successful communication in the workplace, however, requires more than technical mastery of common genres presented in isolation; while a software process model can provide guidelines, there is no comprehensive, rote communication workflow. Developers must make strategic communication decisions, and they must be agile — flexible, proactive, and creative — in these decisions.
We envision an enhanced undergraduate curriculum for CISE programs that promotes agile communication through practice in inquiry, critique and reflection, grounded in authentic software development settings. In the proposed project, we will target early courses in our undergraduate computer science/software engineering curriculum: our first-year introductory programming sequence, our second-year data structures course, and our third-year team software project course. Agile development skills will be introduced gradually over the three years: test-driven development in Year 1; user stories in Year 2; full agile development using Scrum in Year 3.
Communication intensive activities will be woven through this curriculum in a variety of ways. The POGIL framework will provide a structured approach to inquiry. Automated feedback on test coverage, programming style and code documentation will be provided through CanvasTA, a novel tool integrated into the Canvas LMS, supplementing instructor feedback with continual critique of code and documentation. A program of guided inquiry through real case studies of software communication will prepare students for their team software activities, and a series of reflective exercises will lead them to focus on their own team communication practices.
In our two-year project, we plan to build a model communication-oriented curriculum for CISE programs nationwide. We will develop our communication-intensive course materials and use them in three offerings of each targeted course. We will assess and refine these materials through formative and summative external evaluation, and we will increase awareness and promote adoption through a broad dissemination effort.
Integrating communication activities into introductory CISE courses is part of a transformative effort to instill software engineering skills early in the curriculum. The PIs bring a significant amount of experience and original research to bear on this topic. We are also leveraging results from recent NSF-funded activity on POGIL and integrating communication into CISE. An broad-based advisory board consisting of software engineering and writing studies faculty as well as software professionals will provide formative and summative feedback.
Through this enhanced curriculum, CISE students will be prepared for the communication-intensive realities of the software workplace and better able to compete in a global software economy. Software developers with strong preparation in agile communication skills will produce higher quality software that generates greater customer satisfaction; being more engaged in their profession, these developers will be less prone to frustration and burnout. Furthermore, we anticipate that the emphasis on communication in early courses will attract and retain a broader group of students in CISE programs, particularly those who are excited by the concept of software development as a social activity.