Engineering-based processes and agile methodologies for software development: a comparative case study

The emergence of various software development methodologies raises the need to evaluate and compare their efficiencies. One way of performing such a comparison is to have different teams apply different process models in the implementation of multiple versions of common specifications. This study defines a new cognitive activity classification scheme which has been used to record the effort expended by six student teams producing parallel implementations of the same software requirements specifications. Three of the teams used a process based on the Unified Process for Education (UPEDU), a teaching-oriented process derived from the Rational Unified Process. The other three teams used a process built around the principles of the Extreme Programming (XP) methodology. Important variations in effort at the cognitive activity level between teams shows that the classification could scarcely be used without categorization at a higher level. However, the relative importance of a category of activities aimed at defining "active" behaviour was shown to be almost constant for all teams involved, possibly showing a fundamental behaviour pattern. As secondary observations, aggregate variations by process model tend to be small and limited to a few activities, and coding-related activities dominate the effort distribution for all the teams.

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

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

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

[4]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction, Second Edition , 2000 .

[5]  S. McConnell The Business of Software Improvement , 2002, IEEE Softw..

[6]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[7]  Barry W. Boehm,et al.  Agility through Discipline: A Debate , 2003, Computer.

[8]  John A. Hamilton,et al.  Software process as a foundation for teaching, learning, and accrediting , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[9]  Philippe Kruchten,et al.  Yoopeedoo (UPEDU): a process for teaching software process , 2001, Proceedings 14th Conference on Software Engineering Education and Training. 'In search of a software engineering profession' (Cat. No.PR01059).

[10]  Giancarlo Succi,et al.  Extreme Programming Examined , 2001 .

[11]  Philippe Kruchten,et al.  Software engineering process with the UPEDU , 2003 .

[12]  James A. Highsmith,et al.  Adaptive Software Development: A Collaborative Approach to Managing Complex Systems , 1999 .

[13]  Martin Höst Introducing Empirical Software Engineering Methods in Education , 2002, CSEE&T.

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

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

[16]  Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

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

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

[19]  Steve McConnell I Know What I Know , 2002, IEEE Softw..

[20]  Stefan Biffl,et al.  Teaching the unified process to undergraduate students , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[21]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[22]  Joseph P. Cavano,et al.  Quality Assurance in Future Development Environments , 1987, IEEE Software.

[23]  M. Brian Blake,et al.  Teaching an object-oriented software development lifecycle in undergraduate software engineering education , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[24]  T. Germain,et al.  Process activities in a project based course in software engineering , 2002, 32nd Annual Frontiers in Education.

[25]  Pierre N. Robillard Measuring team activities in a process-oriented software engineering course , 1998, Proceedings 11th Conference on Software Engineering Education.

[26]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[27]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[28]  Steve R. Palmer,et al.  A Practical Guide to Feature-Driven Development , 2002 .

[29]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[30]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[31]  D. Wells Don't solve a problem before you get to it , 2003 .

[32]  Annie I. Antón,et al.  Point/Counterpoint: Don't Solve a Problem Before You Get to It / Successful Software Projects Need Requirements Planning , 2003, IEEE Softw..

[33]  Pierre N. Robillard Teaching Software Engineering through a Project-Oriented Course , 1996, CSEE.

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