This paper will discuss at a high-level how software development projects are run when implementing the extreme programming (XP) methodology, and explain during which step, XP covers the Project Management Institute’s (PMI) process groups, and management knowledge areas (MKA) [9]. After the XP process is discussed, XP’s unique way of developing code, its documentation management, and user-centric approach are explained. Since XP is written as being easy to implement, a short discussion of where the real work occurs is included, then guidance on what types projects it is best to implement XP. A brief overview of agile methodologies (AM), of which XP is but one, is included first.
Agile Methodologies
The characteristics of AM are that they the value “(a) individuals and interaction over processes and tools, (b) working software over comprehensive documentation, (c) customer collaboration over contract negotiation, and (d) responding to change over following a plan”[1]. AM concentrate on developing functionality over managing the development of functionality. The management of traditional software projects favors a well-planned approach – typically called the “waterfall approach” – documenting all project details before development starts. AM advocates creating a high level design of the whole system, then working on functionality in ascending order from highest to lowest in customer perceived business value. All AM assume requirements will change constantly so shorter development cycles are instituted to accommodate for the new or changed requirements. AM also assume close contact with the business (for the purposes of this paper, business, client, & user are used interchangeably) to answer any questions, and help resolve issues related to design, cost, and scheduling.
XP Step One – The Planning Game
The first step of an XP project encapsulates the PMI Initiating and Planning
References: [1] V. Guntamukkala, J.H. Wen, M.J. Tarn (2006). An empirical study of selecting software development life cycle models. Human Systems Management 25, 265-278 [2] Cusumano, M. A. (2007). Technology Strategy and Management - Extreme Programming Compared with Microsoft-Style Iterative Development. Communications of the ACM. 50 (10), 15. [3] Gittins R., Bass J., and Hope S. (2004). A Comparison of Software Development Process Experiences. LNCS 3092, pp. 231–236. [4] Wells D. (1999) Extreme Programming: Create A Spike Solution. http://www.extremeprogramming.org/rules/spike.html. Retrieved on Nov. 6, 2007. [5] Wake W.C. (2006). Agile Project Management, XP Style. http://xp123.com/xplor/xp0111a/index.shtml. Retrieved on Nov. 6, 2007. [6] Wake W.C. (1999). Intro. to Extreme Programming (XP). http://xp123.com/xplor/xp9912/index.shtml. Retrieved on Nov. 6, 2007. [7] VersionOne, Inc. (©2007) Iteration Tracking. http://www.versionone.com/Resources/IterationTracking.asp. Retrieved on Nov. 6, 2007 [8] Jefferies, R. (2001) Essential XP: Documentation http://www.xprogramming.com/xpmag/expDocumentationInXp.htm. Retrieved on Nov. 7, 2007 [9] Schwalbe, K. (2007). Information Technology Project Management. Boston:Thomson Course Technology.