The term “Software Development Methodologies” has crest precedence in the information technology world. We all know that methodologies implant discipline to software engineering process. The methodology adopted has a major impact on the execution of a project. The buzz in the industry circles around the fact that the predominant methodologies, though successful, is process intensive, leading to more efforts and time for execution. This has led to the genesis of Agile Methodologies also known as Light weight Methodologies. XP falls under the umbrella of Agile programming, and has been around for a while.
XP Programming methodology has been adopted as an agile programming practice and has yielded phenomenal results. The results can be quantified by benchmarking the outcome against any of the standard development methodologies.
This white paper explores Extreme Programming as an outcome of the author’s experience of working in an extreme programming environment.
XP is a deliberate and disciplined approach to software development. One would understand the extent of discipline involved when we explore XP later in this paper. The term ‘Extreme’ depicts the intensity of the practice. XP gives utmost importance to Customer and the practice revolves around meeting customer expectations. XP stresses on testing and mandates writing test scripts before developing. XP is considered to be a ‘Light Weight Methodology’ as it is people centric rather than process centric. This methodology emphasizes team work and the rules intensify the group dynamics. This opens up a whole new world for a team member in experiencing various facets of the methodology and work as a team.
XP comprises of a team that consists of a Customer (or a customer representative), Manager and the team members. All of them work as a team in meeting the customer needs and delivering a quality product. ‘Communication’ is a major factor contributing to the success of this methodology. XP requires constant communication with the Customer and respond to the feedback of the customer instantly. XP addresses the customer needs in smaller chunks (iterative approach), develops and demonstrates the same to the customer. This also follows incorporation of the changes as suggested by the customer instantly. With this, the XP compliments addressing the dynamic requirements from the customer and has proved to have a faster turnaround time when the requirements are dynamic.
The core of XP is pair programming. Meaning, two programmers work together and share a computer. This is like two brains working on one computer. This always poses questions on productivity compared to two programmers working independently on separate computers. Programming always involves writing code, checking for quality, code refactoring and meeting standards. XP enables all of the above to be executed in a much efficient way in a shorter time compared to the traditional methodology. XP truly provides greater productivity and has necessary tools to enable timely delivery as per customer’s expectation. To top it all, the customer gets to see the shaping of the expected software on a regular basis.
XP fits in perfectly where the customer is not very clear on the requirements, but has a vision of the expected outcome. XP was created just to address such scenarios and XP has proved to be successful in addressing dynamic requirements in a timely fashion, with focus on quality delivery. XP follows the typical requirement gathering, planning & scheduling, execution cycle.
The team size also attributes to the success of XP methodology. Team size of 4 to 12 has reported greater success compared to larger teams. In summary, when the requirements are dynamic and there is an increased risk of meeting deadlines, XP practice proves to be the methodology to adopt. Also, XP does not mandate a ‘Strict Process’ to follow. It creates a very flexible, and fun to work environment, which results in increased productivity and quality output.