Experiences in Software Engineering Education: Using Scrum, Agile Coaching, and Virtual Reality

Experiences in Software Engineering Education: Using Scrum, Agile Coaching, and Virtual Reality

Ezequiel Scott, Guillermo Rodríguez, Álvaro Soria, Marcelo Campo
DOI: 10.4018/978-1-4666-5800-4.ch013
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Software Engineering courses aim to train students to succeed in meeting the challenges within competitive and ever-changing professional contexts. Thus, undergraduate courses require continual revision and updating so as to cater for the demands of the software industry and guarantee academic quality. In this context, Scrum results in both a suitable and a flexible framework to train students in the implementation of professional software engineering practices. However, current approaches fail to provide guidance and assistance in applying Scrum, or a platform to address limitations in time, scope, and facilities within university premises. In this chapter, the authors present a software engineering training model based on the integration of the Agile Coach role and a virtual-reality platform called Virtual Scrum. The findings highlight the benefits of integrating this innovative model in a capstone course. Not only does this approach strengthen the acquisition of current software engineering practices but also opens new possibilities in the design of training courses.
Chapter Preview
Top

Introduction

The increasing complexity of the software industry, constant changes in system requirements, distributed environments and professional mobility are ordinary challenges to software developers, who are required to be competent and proactive by rapidly expanding software industries. In order to prepare undergraduate students for ongoing success in this context, Software Engineering (SE) courses must provide effective training in the application of software development practices typically implemented in large projects and organizations (Alfonso & Botia, 2005; Mahnic 2010).

In the light of the above, we structured a SE course based on Capability Maturity Model Integration (CMMI), since this model includes professional and reliable SE practices (Kulpa, 2008). In particular, we used the framework CMMI for development version 1.3 (CMMI-DEV 1.3), which aims to provide software organizations with superior project performance, client satisfaction, and quality of products and services. To support CMMI, we designed an initial version of the course based on the Rational Unified Process (RUP) (Kruchten, 2003) to develop a capstone project (Coupal & Boechler, 2005; Devedzic & Milenkovic, 2011).

Unfortunately, teaching SE to students running a software project following RUP presented several drawbacks. As it is a plan-driven development framework, RUP requires the association of project milestones with specific dates. This made students focus on meeting deadlines and delivering the agreed milestone, skipping activities in the RUP framework. Additionally, even though RUP encourages the overlapping of phases, students inevitably slid into a waterfall-like process (Osorio, 2011). Thus, it is difficult for inexperienced students to detect mistakes made in early stages until the development process reaches the final stages. Furthermore, the prescriptive nature of RUP and the definition of specific roles (i.e. project manager and business process analyst, IBM, n.d.) to perform planning and estimating activities fail to both promote actively participation of all team members, and encourage them to make commitments regarding those activities. Since SE involves people and social interaction, these aspects are cornerstone of its reality and crucial to professional training and development. As a consequence, we moved our RUP implementation of CMMI to Scrum.

The selection of Scrum is founded on the fact that it has increased in the last few years; in 2012, 57% of respondents used Scrum or its variants, and nowadays, more than 50% of the surveyed companies are utilizing Scrum as an effective path towards agility (Versionone, n.d.). First, this agile methodology concentrates on project management practices and includes monitoring and feedback activities that focus on transparency, team effort, effective time management and personal interactions. Second, Scrum facilitates the process of satisfying requirements, for while all the requirements appear in the backlog, only a limited set is fulfilled in each Sprint. Third, the retrospective meetings and continual customer contact allow early detection of impediments and rearrangements of working plans.

Complete Chapter List

Search this Book:
Reset