Building XP process metrics for project-based software engineering courses

Project-based courses are widely used in software engineering curricula. In this report, we examine two issues related to project-based software engineering courses: 1) what processes should we include in the course, and 2) in order to achieve formative assessments, how can we build process metrics. In the first part, we combine a field study on professional Agile (eXtreme Programming, XP) teams and an established team process taxonomy to “proactively” select team processes to include in a project-based software engineering course. We choose processes that are 1) considered essential by professionals, and 2) complete with respect to coverage of the taxonomy’s main categories. A case study shows that the augmented course design improves learning outcomes. In the second part, we establish the importance of measuring processes in project-based software engineering courses and present metrics mined from software development tools for monitoring and observing processes to facilitate teaching. A case study confirms that teams with better conformance to software development processes achieve better outcomes. Methods presented in this report can be used to improve software engineering courses. Some future studies are discussed in this report, envisioning a systematic method for improving and automating software engineering courses.

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

[2]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[3]  Alexander L. Wolf,et al.  Software process validation: quantitatively measuring the correspondence of a process to a model , 1999, TSEM.

[4]  Timothy Lethbridge,et al.  What knowledge is important to a software professional? , 2000, Computer.

[5]  A. Bandura,et al.  Self-efficacy beliefs as shapers of children's aspirations and career trajectories. , 2001, Child development.

[6]  Walter F. Tichy,et al.  Case study: extreme programming in a university environment , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[7]  Agile Manifesto,et al.  Manifesto for Agile Software Development , 2001 .

[8]  John E. Mathieu,et al.  A Temporally Based Framework and Taxonomy of Team Processes , 2001 .

[9]  M. Hoegl,et al.  Teamwork Quality and the Success of Innovative Projects , 2001 .

[10]  William Krebs,et al.  Turning the Knobs: A Coaching Pattern for XP through Agile Metrics , 2002, XP/Agile Universe.

[11]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

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

[13]  James B. Fenwick Adapting XP to an Academic Environment by Phasing-In Practices , 2003, XP/Agile Universe.

[14]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Laurie A. Williams,et al.  Teaching software development methods: the case of extreme programming , 2004, SIGCSE.

[16]  John R. Anderson,et al.  Knowledge tracing: Modeling the acquisition of procedural knowledge , 2005, User Modeling and User-Adapted Interaction.

[17]  Dana E. Sims,et al.  Is there a “Big Five” in Teamwork? , 2005 .

[18]  Nachiappan Nagappan,et al.  Evaluating the efficacy of test-driven development: industrial case studies , 2006, ISESE '06.

[19]  Rajesh Vasa,et al.  Agile practices in software development - experiences from student projects , 2006, Australian Software Engineering Conference (ASWEC'06).

[20]  Philip M. Johnson,et al.  Automated Recognition of Test-Driven Development with Zorro , 2007, Agile 2007 (AGILE 2007).

[21]  S. Elias,et al.  Using Past Performance, Proxy Efficacy, and Academic Self‐Efficacy to Predict College Performance , 2007 .

[22]  Andrew Begel,et al.  Novice software developers, all over again , 2008, ICER '08.

[23]  Nancy R. Mead Software Engineering Education: How Far We've Come and How Far We Have to Go , 2008, 2008 21st Conference on Software Engineering Education and Training.

[24]  David F. Rico,et al.  Use of Agile Methods in Software Engineering Education , 2009, 2009 Agile Conference.

[25]  Tore Dybå,et al.  A teamwork model for understanding an agile team: A case study of a Scrum project , 2010, Inf. Softw. Technol..

[26]  S. Espin,et al.  A Conceptual Framework for Interprofessional Teamwork , 2010 .

[27]  Robert W. Lingard Teaching and Assessing Teamwork Skills in Engineering and Computer Science , 2010 .

[28]  Orni Meerbaum-Salant,et al.  An Agile Constructionist Mentoring Methodology for Software Projects in the High School , 2010, TOCE.

[29]  Leigh Ann Sudol-DeLyser,et al.  Analyzing the strength of undergraduate misconceptions about software engineering , 2010, ICER '10.

[30]  Fabio Kon,et al.  Being Extreme in the classroom: Experiences teaching XP , 2010, Journal of the Brazilian Computer Society.

[31]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[32]  Forrest Shull,et al.  Are developers complying with the process: an XP study , 2010, ESEM '10.

[33]  James Noble,et al.  The impact of inadequate customer collaboration on self-organizing Agile teams , 2011, Inf. Softw. Technol..

[34]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[35]  Rachel Cardell-Oliver,et al.  How can software metrics help novice programmers , 2011, ACE 2011.

[36]  Mark J. Sebern,et al.  Revisions to Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering , 2012 .

[37]  Casper Lassenius,et al.  Teaching real-world software engineering through a capstone project course with industrial customers , 2012, 2012 First International Workshop on Software Engineering Education Based on Real-World Experiences (EduRex).

[38]  Daniel Lucrédio,et al.  Using scrum to teach software engineering: A case study , 2013, 2013 IEEE Frontiers in Education Conference (FIE).

[39]  Andreas Koch,et al.  Scrum in a software engineering course: An in-depth praxis report , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[40]  M. Laal,et al.  Individual Accountability in Collaborative Learning , 2013 .

[41]  Alex Radermacher,et al.  Gaps between industry expectations and the abilities of graduates , 2013, SIGCSE '13.

[42]  Premkumar T. Devanbu,et al.  How, and why, process metrics are better , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[43]  David A. Patterson,et al.  Engineering Software as a Service: An Agile Approach Using Cloud Computing , 2013 .

[44]  Paul Ralph,et al.  The dimensions of software engineering success , 2014, ICSE.

[45]  Casper Lassenius,et al.  Teaching students scrum using LEGO blocks , 2014, ICSE Companion.

[46]  Shinji Kusumoto,et al.  Quantitative assessment with using ticket driven development for teaching scrum framework , 2014, ICSE Companion.

[47]  Ruchika Malhotra,et al.  A systematic review of machine learning techniques for software fault prediction , 2015, Appl. Soft Comput..

[48]  Margaret-Anne D. Storey,et al.  The Emergence of GitHub as a Collaborative Platform for Education , 2015, CSCW.

[49]  Stan Kurkovsky,et al.  Teaching Software Engineering with LEGO Serious Play , 2015, ITiCSE.

[50]  Timo Poranen,et al.  Software metrics in students' software development projects , 2015, CompSysTech '15.

[51]  Fernando Silva Parreiras,et al.  Agile methods tailoring - A systematic literature review , 2015, J. Syst. Softw..

[52]  Bernd Brügge,et al.  Software Engineering Project Courses with Industrial Clients , 2015, TOCE.

[53]  Leonidas J. Guibas,et al.  Deep Knowledge Tracing , 2015, NIPS.

[54]  Tore Dybå,et al.  Teamwork quality and project success in software development: A survey of agile development teams , 2016, J. Syst. Softw..

[55]  Guillermo Rodríguez,et al.  Measuring the Impact of Agile Coaching on Students’ Performance , 2016, IEEE Transactions on Education.

[56]  Christoph Matthies,et al.  Agile metrics for a university software engineering course , 2016, 2016 IEEE Frontiers in Education Conference (FIE).

[57]  Ryan Shaun Joazeiro de Baker,et al.  Stupid Tutoring Systems, Intelligent Humans , 2016, International Journal of Artificial Intelligence in Education.

[58]  Joseph E. Beck,et al.  Going Deeper with Deep Knowledge Tracing , 2016, EDM.

[59]  A. Mujkanovic,et al.  Improving Learning Outcomes through Systematic Group Reformation - The Role of Skills and Personality in Software Engineering Education , 2016, 2016 IEEE/ACM Cooperative and Human Aspects of Software Engineering (CHASE).

[60]  Gang Yin,et al.  Reviewer recommendation for pull-requests in GitHub: What can we learn from code review and bug assignment? , 2016, Inf. Softw. Technol..

[61]  Bernd Brügge,et al.  Metrics in Agile Project Courses , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[62]  Ye Yang,et al.  Engaging Software Estimation Education Using LEGOs: A Case Study , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[63]  Cécile Péraire,et al.  Green-Lighting Proposals for Software Engineering Team-Based Project Courses , 2016, 2016 IEEE 29th International Conference on Software Engineering Education and Training (CSEET).

[64]  Christoph Matthies,et al.  How Surveys, Tutors and Software Help to Assess Scrum Adoption in a Classroom Software Engineering Project , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[65]  Peter Maurer,et al.  The Cambridge Handbook of the Learning Sciences , 2022 .

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

[67]  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).

[68]  Vincent Ribaud,et al.  Does Process Assessment Drive Process Learning? The Case of a Bachelor Capstone Project , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

[69]  Hakan Erdogmus,et al.  Flipping a Graduate-Level Software Engineering Foundations Course , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering Education and Training Track (ICSE-SEET).

[70]  Paul Ralph,et al.  Software Development Waste , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[71]  James Taylor Study on the Best Uses of Technology in Support of Project-Based Learning , 2017, ArXiv.

[72]  Andrian Marcus,et al.  Evolving a Project-Based Software Engineering Course: A Case Study , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

[73]  Christian Murphy,et al.  A Two-Course Sequence of Real Projects for Real Customers , 2017, SIGCSE.

[74]  Cristina Conati,et al.  Driving data storytelling from learning design , 2018, LAK.

[75]  Kelly Blincoe,et al.  Adapting agile practices in university contexts , 2018, J. Syst. Softw..

[76]  W. Wijnands,et al.  Transforming Education with eduScrum , 2018, Agile and Lean Concepts for Teaching and Learning.

[77]  Nicole Herbert,et al.  Reflections on 17 years of ICT Capstone Project Coordination: Effective Strategies for Managing Clients, Teams and Assessment , 2018, SIGCSE.

[78]  S. Kozlowski Enhancing the Effectiveness of Work Groups and Teams: A Reflection , 2018, Perspectives on psychological science : a journal of the Association for Psychological Science.

[79]  Filomena Ferrucci,et al.  Agile Methodologies in Education: A Review , 2019 .