It is seeking to improve the quality of software by solving the key problems in software developments. However, the radical nature of Extreme Programming seems to be causing cultural and developmental conflicts within the software development community. This paper will discuss the fundamental problems of software development and the advantage and disadvantages of adopting Extreme Programming
Risk is the foremost predicament of software development. Schedule slips, project cancelled, system fails in a couple years, software defect rate too high, software created didn't matched the business needs, software features that do not have any business value, and development staff sudden turnovers (Beck 2000)1.
There is a lot to learn from experiences and these predicaments have been affecting software development economically for many years. Hierarchal software development methodologies seem to work against software development since it cannot deliver the value. Schedule slips as developers have to go through a series of bureaucratic steps and sequential pre-requisites. Consequently, after several delays, project is terminated before even reaching production. In another distressing situation, even if the software managed to reach production, defect rate rises to a great extent that the system must be replaced just after few years of use. Included in the list of production related dilemma is the worthlessness of the system to solve the business problem that was originally posed, simply because the business problem was misunderstood from the very beginning of the development. Another one, actually caused by recurring schedule slips, is the unsuitability of the system to the current situation of the business. This is for the reason that the problem it was designed to resolve many months ago is replaced by a more complicated business problem. Finally, after a few years of endless program patch and modification, programmers start to disgust the program, pack their bags and leave.
These predicaments cost a great deal of insecurity to the industry and solving these problems might bring back software to development to life. In late 1990's, a new breed of
1Beck Kent, 2000, "Extreme Programming Explained", Addison-Wesley, United States of
America, ISBN: 201-61641-6
software development methodology was born as a solution to the chaotic and bureaucratic development, the Lean Software Development with the Agile family of processes and Extreme Programming (Windholtz 2005)2.
III- Extreme Programming
Extreme Programming or XP, is a member of the Agile family of processes, which is part of the Lean Software Development. Each process in the Agile family has its own guidelines for how to structure and complete programming work ( Fig. 1). XP is about delivering to deadline, deploying programs to production in just a matter of weeks (Windholtz 2005)3.
XP is an efficient, lightweight, low-risk, flexible, and enjoyable way to develop software. It is designed to work with projects than can be develop by smaller teams with a maximum of ten programmers. Projects that is free from the limitation of the existing computing environment, and small enough to do a test within a few hours of the day. XP is new but the ideas behind it are old and conservative. It is in fact a collection of proven ideas and