Controlled Experiments as Means to Teach Soft Skills in Software Engineering

Controlled Experiments as Means to Teach Soft Skills in Software Engineering

Marco Kuhrmann (Technische Universität München, Germany), Henning Femmer (Technische Universität München, Germany) and Jonas Eckhardt (Technische Universität München, Germany)
DOI: 10.4018/978-1-5225-3923-0.ch055

Abstract

The job profile of a Software Engineer not only includes so-called “hard-skills” (e.g. specifying, programming, or building architectures) but also “soft skills” like awareness of team effects and similar human factors. These skills are typically hard to teach in classrooms, and current education, hence, mostly focuses on hard rather than soft skills. Yet, since software development is becoming more and more spread across different sites in a globally distributed manner, the importance of soft skills increases rapidly. However, there are only a few practical guides to teach such tacit knowledge to Software Engineering students. In this chapter, the authors describe an approach that combines theoretical lectures, practical experiments, and discussion sessions to fill this gap. They describe the processes of creating, planning, executing, and evaluating these sessions, so that soft skill topics can be taught in a university course. The authors present two example implementations of the approach. The first implementation lets students experience and reflect on group dynamics and team-internal effects in a project situation. The second implementation enables students to understand the challenges of a distributed software development setting. With this knowledge, the authors critically discuss the contribution of experimentation to university teaching.
Chapter Preview
Top

Introduction

Software Engineering (SE) aims at developing software-intensive systems in a systematic, methodically sound, and economic manner to master the key challenges of time constraints, budget adherence, quality and functionality. Beyond the technical questions that cover topics such as programming or testing, SE also addresses topics that deal with the organization and the management of software projects. Although both perspectives are important, today’s SE education is often focused on the technical topics, as those are easier to teach (Kuhrmann et al., 2013), e.g. it is easier to teach coding and evaluating a program than to teach performing successfully in a project.

As a consequence, the current education contains a conflict between the curricula, the students’ self-perception and the reality that students face when leaving the university. Especially partners from industry note that the students are usually not ready for work, even if they master a couple of programming languages. One of our partners told us: “I need to qualify a graduate for 2 or 3 extra months to make him fit.” Besides company-specific knowledge (which a university is not able to teach) most partners from industry complain about missing soft skills, a missing understanding of how organizations and projects work, and missing skills regarding teamwork (Kuhrmann, 2012). In consequence, while we have a curriculum strongly addressing the technical topics, we still have gaps in appropriately educating the students on the organization and management level. We must enable students to experience that soft skills play an important role besides deep technical understanding.

Complete Chapter List

Search this Book:
Reset