Teaching Agile Methods to Software Engineering Professionals: 10 Years, 1000 Release Plans

Agile methods are an essential resource for software engineers. The Agile movement evolved out of industry and is the common approach to software development today. Teaching Agile methods challenges students’ working attitudes, where putting Agile into practice is not possible through simply applying methods prescriptively, but by having an Agile mindset. In this paper we present and discuss our experiences over the last decade of teaching a novel intensive Agile methods week long course as part of a professional Masters of Software Engineering degree programme at the University of Oxford. We describe the typical shape of the course, discuss how students experience Agile values and management practices to foster an Agile mindset, and provide student feedback indicating a consistently positive response to our approach at teaching Agile methods to software engineering professionals. Our reported experiences and material can help other educators who want to run similar courses and adapt where required.

[1]  Andreas Meier,et al.  Experience Report of Teaching Agile Collaboration and Values: Agile Software Development in Large Student Teams , 2016, 2016 IEEE 29th International Conference on Software Engineering Education and Training (CSEET).

[2]  David W. Bustard,et al.  Smoothing the Transition from Agile Software Development to Agile Software Maintenance , 2016, XP.

[3]  Jim Highsmith,et al.  Agile Software Development Ecosystems , 2002 .

[4]  Orit Hazzan,et al.  Why software engineering programs should teach agile software development , 2007, SOEN.

[5]  Esther Derby,et al.  Agile Retrospectives: Making Good Teams Great , 2006 .

[6]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[7]  Nick Robinson A Technical Story , 2007, Agile 2007 (AGILE 2007).

[8]  Norman L. Kerth,et al.  Project Retrospectives: A Handbook for Team Reviews , 2001 .

[9]  Martin Albisetti,et al.  Launchpad's Quest for a Better and Agile User Interface , 2010, XP.

[10]  Andreas Meier,et al.  Teaching agile software development at university level: Values, management, and craftsmanship , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[11]  Curtis J. Bonk,et al.  A Review of Case-based Learning Practices in an Online MBA Program: A Program-level Case Study , 2009, J. Educ. Technol. Soc..

[12]  Alistair Cockburn,et al.  Agile Software Development: The Cooperative Game (2nd Edition) (Agile Software Development Series) , 2006 .

[13]  Terhi Kilamo,et al.  Teaching Distributed Agile Development to Software Professionals: A Flexible Approach , 2015, ECSA Workshops.

[14]  Chun Wai Liew,et al.  Scrum and Agile Methods in Software Engineering Courses , 2016, SIGCSE.

[15]  Michael Keeling Put It to the Test: Using Lightweight Experiments to Improve Team Processes , 2010, XP.

[16]  Knut H. Rolland,et al.  Tailoring Agile in the Large: Experience and Reflections from a Large-Scale Agile Software Development Project , 2016, XP.

[17]  Todd Little,et al.  Adaptive agility , 2004, Agile Development Conference.

[18]  Irina Tsyganok Pair-Programming from a Beginner's Perspective , 2016, XP.

[19]  Frank Maurer,et al.  An Experience Report at Teaching a Group Based Agile Software Development Project Course , 2015, SIGCSE.

[20]  Baochuan Lu,et al.  Teaching agile methodology in a software engineering capstone course , 2011 .

[21]  Andreas Meier,et al.  New sustainable teaching approaches in software engineering education , 2014, 2014 IEEE Global Engineering Education Conference (EDUCON).

[22]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[23]  Amine Chigani,et al.  Understanding the tenets of agile software engineering: lecturing, exploration and critical thinking , 2012, SIGCSE '12.