  Most university curricula consider software processes to be on the fringes of
software engineering (SE). Students are told there exists a plethora of
software processes ranging from RUP over V-shaped processes to agile methods.
Furthermore, the usual students' programming tasks are of a size that either
one student or a small group of students can manage the work. Comprehensive
processes being essential for large companies in terms of reflecting the
organization structure, coordinating teams, or interfaces to business processes
such as contracting or sales, are complex and hard to teach in a lecture, and,
therefore, often out of scope. We experienced tutorials on using Java or C#, or
on developing applications for the iPhone to gather more attention by students,
simply speaking, as these are more fun for them. So, why should students spend
their time in software processes? From our experiences and the discussions with
a variety of industrial partners, we learned that students often face trouble
when taking their first "real" jobs, even if the company is organized in a lean
or agile shape. Therefore, we propose to include software processes more
explicitly into the SE curricula. We designed and implemented a course at
Master's level in which students learn why software processes are necessary,
and how they can be analyzed, designed, implemented, and continuously improved.
In this paper, we present our course's structure, its goals, and corresponding
teaching methods. We evaluate the course and further discuss our experiences so
that lecturers and researchers can directly use our lessons learned in their
own curricula.
