Skip To Content

Athabasca University

Section 2

Section Goals

  • To define extreme programming, and to illustrate the practical aspects of extreme programming for rapid software prototyping.
  • To describe the stages of software team development and Brooks' law.
  • To describe process assessment models and methods.

Learning Objectives

Learning Objective 1

  • Define extreme programming (XP).
  • Illustrate the use of XP in solving practical problems.
  • Describe the main advantages and disadvantages of using XP.

Objective Leading Questions

  • What is XP?
  • What is pair programming?
  • XP works well for small-scale software products, but can it be used for medium or large-scale software products? Why?
  • What are the main benefits of using rapid prototyping for developing web applications? Would you use such an approach? Why?
  • What are the main pros and cons of XP? How would you describe the future of XP?

Objective Readings

Required Readings

Williams, L. (2003a), "The XP Programmer: The Few-Minutes Programmer," IEEE Software 20, 3, 16-20. https://doi.org/10.1109/MS.2003.1196315

Maurer, F. and S. Martel (2002), "Extreme Programming: Rapid Development for Web-Based Applications," IEEE Internet Computing 6, 1, 86-90. https://doi.org/10.1109/4236.989006

Anton, A.I. (2003), "Successful Software Projects Needs Requirements Planning," IEEE Software 20, 3, 44-46. https://doi.org/10.1109/MS.2003.1196319

Wells, D. (2003), "Don't Solve a Problem Before You Get to It," IEEE Software 20, 3, 45-47. https://doi.org/10.1109/MS.2003.1198226

Supplemental Readings

Beck, K. (1999), "Embracing Change with Extreme Programming," Computer 32, 10, 70-77. https://doi.org/10.1109/2.796139

Williams, L.A. and R.R. Kessler (2000), "All I Really Need to Know about Pair Programming I Learned in Kindergarten," Communications of the ACM 43, 5, 108-114. https://doi.org/10.1145/332833.332848

Lui, K.M. and K.C.C. Chan (2006), "Pair Programming Productivity: Novice-Novice vs. Expert-Expert," International Journal of Human-Computer Studies 64, 9, 915-925. https://doi.org/10.1016/j.ijhcs.2006.04.010

Williams, L., R.R. Kessler, W. Cunningham and R. Jeffries (2000), "Strengthening the Case for Pair Programming," IEEE Software 17, 4, 19-25, https://doi.org/10.1109/52.854064

Arisholm, E., H. Gallis, T. Dyba, D.I.K. Sjoberg (2007), "Evaluating Pair Programming with respect to System Complexity and Programmer Expertise," IEEE Transactions on Software Engineering 33, 2, 65-86. https://doi.org/10.1109/TSE.2007.17

Learning Objective 2

  • Define the stages of software team development.
  • Define Brooks' Law and its implications.

Objective Leading Questions

  • Describe each of the main stages in team development, and comment on the most critical problems that may arise in each of them.
  • What is Brooks' law? What are the main consequences of Brooks' law? Explain the point of view of those that oppose Brooks' law.

Objective Readings

Required Readings

Mackey, K. (1999), "Stages of Team Development," IEEE Software 16, 4, 90-91. https://doi.org/10.1109/52.776955

McConnell , S. (1999a), "Brooks' Law Repealed," IEEE Software 16, 6, 6-8. https://doi.ieeecomputersociety.org/10.1109/MS.1999.10032

Hsia, P., C.-T. Hsu and D.C. Kung (1999), "Brooks' Law Revisited: A System Dynamics Approach," In Proceedings of the 23rd Computer Software and Applications Conference , pp. 370-375. https://doi.org/10.1109/CMPSAC.1999.814310

Supplemental Readings

Carnegie-Mellon University, Software Engineering Institute (2007c), "The Team Software Process (TSP) and the Personal Software Process (PSP)," Carnegie Mellon University, Pittsburgh. Retrieved November 5, 2007, from http://www.sei.cmu.edu/tsp/

Pomeroy-Huff, M., J. Mullaney, R. Cannon and M. Sebern (2005, August), "The Personal Software ProcessSM (PSPSM) Body of Knowledge (Version 1.0) ( Special Report CMU/SEI-2005-SR-003)," Carnegie Mellon University, Pittsburgh. Retrieved November 5, 2007, from https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=7317

Davis, N. and J. Mullaney (2003, September), "The Team Software ProcessSM (TSPSM) in Practice: A Summary of Recent Results (Tech. Rep. CMU/SEI-2003-TR-014)," Carnegie Mellon University, Pittsburgh. Retrieved November 5, 2007, from https://doi.org/10.1184/R1/6585302.v1

Learning Objective 3

  • Describe process assessment models and process assessment methods.

Objective Leading Questions

  • Describe the different software assessment models.
  • Describe the various software methods.
  • Why is it important to analyze the return on investment (ROI) of software process improvement? How can costs and benefits be quantified?
  • Describe the current state of the practice of analyzing the ROI of software product investment in the software industry. Identify the major issues, and discuss the main causes of and potential solutions to these issues.

Objective Readings

Required Readings

Chapter 8: "Section 3: Software Process Assessment and Improvement" of SWEBOK [Bourque and Fairley 2014].

van Solingen, R. (2004), "Measuring the ROI of Software Process Improvement," IEEE Software 21, 3, 32-38. https://doi.org/10.1109/MS.2004.1293070

Supplemental Readings

Little, T. (2004), "Value Creation and Capture: A Model of the Software Development Process," IEEE Software 21, 3, 48-53. https://doi.org/10.1109/MS.2004.1293072

Armour, P.G. (2006), "Software: Hard Data," Communications of the ACM 49, 9, 15-17. https://doi.org/10.1145/1151030.1151043

Lieberman, H. and C. Fry (2001), "Will Software Ever Work?" Communications of the ACM 44, 3, 122-124. https://doi.org/10.1145/365181.365236

Loka, R.R. (2007), "Software Development: What is the Problem?" Computer 40, 2, 112 & 110-111. https://doi.org/10.1109/MC.2007.73

Reel, J.S. (1999), "Critical Success Factors in Software Projects," IEEE Software 16, 3, 18-23. https://doi.org/10.1109/52.765782

Updated August 28 2023 by FST Course Production Staff