Adapting extreme programming for a core software engineering course

Over a decade ago, the manufacturing industry determined it needed to be more agile to thrive and prosper in a changing, nonlinear, uncertain and unpredictable business environment The software engineering community has come to the same realization. A group of software methodologists has created a set of software development processes, termed agile methodologies that have been specifically designed to respond to the demands of the turbulent software industry. Each of the processes in the set of agile processes comprises a set of practices. As educators, we must assess the emerging agile practices, integrate them into our courses (carefully), and share our experiences and results from doing so. The paper discusses the use of extreme programming, a popular agile methodology, in a senior software engineering course at North Carolina State University. It then provides recommendations for integrating agile principles into a core software engineering course.

[1]  Ron Jeffries,et al.  Extreme Programming Installed , 2000 .

[2]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[4]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[5]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[6]  Laurie A. Williams,et al.  In support of student pair-programming , 2001, SIGCSE '01.

[7]  Watts S. Humphrey,et al.  Introduction to the Team Software Process , 1999 .

[8]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[9]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[10]  Marco Iansiti,et al.  Special Issue on Design and Development: Developing Products on "Internet Time": The Anatomy of a Flexible Development Process , 2001, Manag. Sci..

[11]  Laurie A. Williams,et al.  All I really need to know about pair programming I learned in kindergarten , 2000, Commun. ACM.

[12]  Linda Rising,et al.  The Scrum Software Development Process for Small Teams , 2000, IEEE Softw..

[13]  David Bellin,et al.  The CRC card book , 1997 .

[14]  Barry W. Boehm,et al.  Using the WinWin Spiral Model: A Case Study , 1998, Computer.

[15]  Eric Lefebvre,et al.  Java modeling in color with UML: enterprise components and process , 1999 .

[16]  Jennifer Stapleton,et al.  Dsdm: The Method in Practice , 1997 .

[17]  Laurie A. Williams,et al.  The effects of "pair-pressure" and "pair-learning" on software engineering education , 2000, Thirteenth Conference on Software Engineering Education and Training.

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

[19]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[20]  Robert R. Kessler,et al.  The collaborative software process(sm) , 2000 .