Teaching Agile Software Development: A Case Study

This paper describes the authors' experience of teaching agile software development to students of computer science, software engineering, and other related disciplines, and comments on the implications of this and the lessons learned. It is based on the authors' eight years of experience in teaching agile software methodologies to various groups of students at different universities, in different cultural settings, and in a number of courses and seminars. It specifically discusses three different courses on agile software development, given in different teaching settings and at different levels, and briefly surveys variations to these courses given elsewhere. Based on the experience acquired, analyses and evaluations conducted, and current pedagogical trends at relevant university departments, the authors provide recommendations on how to overcome potential problems in teaching agile software development and make their adoption more effective.

[1]  Laurie Williams,et al.  Extreme programming for software engineering education? , 2001, 31st Annual Frontiers in Education Conference. Impact on Engineering and Science Education. Conference Proceedings (Cat. No.01CH37193).

[2]  Philippe Kruchten,et al.  The Rational Unified Process Made Easy - A Practitioner's Guide to the RUP , 2003, Addison Wesley object technology series.

[3]  Cédric Beust,et al.  Next Generation Java Testing: TestNG and Advanced Concepts , 2007 .

[4]  Frank Maurer,et al.  Extreme Programming: Rapid Development for Web-Based Applications , 2002, IEEE Internet Comput..

[5]  Alistair Cockburn,et al.  Crystal Clear: A Human-Powered Methodology for Small Teams , 2004 .

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

[7]  Donald J. Reifer,et al.  Industry Software Cost, Quality and Productivity Benchmarks , 2002 .

[8]  M.A. Ardis,et al.  Test-first teaching: extreme programming meets instructional design in software engineering courses , 2004, 34th Annual Frontiers in Education, 2004. FIE 2004..

[9]  Görel Hedin,et al.  Teaching extreme programming to large groups of students , 2005, J. Syst. Softw..

[10]  Peter Constable,et al.  DSDM: Dynamic Systems Development Method: The Method in Practice , 1997 .

[11]  Giovanni Asproni,et al.  Motivation, Teamwork, and Agile Development , 2004 .

[12]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[13]  Jeffrey Rubin,et al.  Handbook of Usability Testing: How to Plan, Design, and Conduct Effective Tests , 1994 .

[14]  Axel Schmolitzky,et al.  Weaving Experiences from Software Engineering Training in Industry into Mass , 2005 .

[15]  Christian Bauer,et al.  Java Persistence with Hibernate , 2006 .

[16]  Michael J. Wenger,et al.  Handbook of Usability Testing: How to Plan, Design, and Conduct Effective Tests by Jeffrey Rubin 330 pages, $34.95 New York: John Wiley & Sons, 1994 ISBN 0-471-59403-2 , 1995 .

[17]  Mark C. Paulk,et al.  The Capability Maturity Model: Guidelines for Improving the Software Process , 1994 .

[18]  Peter E. Maher Weaving Agile Software Development Techniques into a Traditional Computer Science Curriculum , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

[19]  Thomas Flohr,et al.  An XP Experiment with Students - Setup and Problems , 2005, PROFES.

[20]  Craig Walls,et al.  Spring in Action , 2004 .

[21]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .