Extreme Programming Methodology

By Vy T.

Being involved in the business and technology field means that one is often faced with a predicament, a fast and ever-changing environment. In software development specifically, one would expect these constant changes. In chapter 1 we studied some well-known methodologies and among them is Extreme Programming. Unlike the Waterfall methodology, whose “development cycle was too long” to be able to address changing requirements, the Extreme Programming methodology is set on the four core values of communication, simple, feedback, and courage and also the foundation that a system is not engineered, but evolved (Iskold, 2007).

Extreme Programming, created by Kent Beck in 1996, is a type of agile software development where the main focus is to advocate fast releases in short development cycles. It does so by focusing on four core values, the first being communication. In order for a project to be successful, communication among affiliated members is a key requirement. Communication can be expressed in three parts, interior communication with the project team, internal communication with the customers, and communication between developers and customers (Li-Li, 2011). Project members who are well acquainted with development and technology can effectively communicate with customers who are knowledgeable of the products requirements and the business process. The next core value is simplicity. Unlike traditional software development methods, who focusing a lot of time in early design, Extreme Programming requires only short-term needs (Liu, 2012). Due to having to perform the analysis, design, and implementation phases iteratively, energy is spent on completion of simple coding, design, and tasks that meet functional requirements. With the customer’s feedback, these simple objects can be worked on and reworked on as needed.

Feedback, much like the communication value, requires developers to communicate with customers frequently and often to recognize and solve problems in the development processes. Extreme Programming in the stage of implementation, centers on the quick releases of versions or unit tests of the project to allow customers to give feedback. This also allows them to continue to build on and plan for the next version. While early feedback of early versions consists of specific and detailed changes, later versions usually consists of small changes (Liu, 2012). Lastly, the core value Courage deals with possible alterations in the process and developer’s decision whether to re-write or delete the obsolete work entirely no matter how much effort was spent on it. This value enforces developers to focus not only on making a simple system that “satisfies today’s requirements but one that is also ready to adapt” to the possible change of tomorrow (Iskold 2007).

When these values are put together in the form of Extreme Programming, the result is a development method that takes the process of short iterative cycles of analysis, design, and implementation and applies it to meet customer expectations. Being a test driven development style, and through the process of communication and feedback, the project team can quickly deliver quick results that allow customers to provide responses that are used to change any problem or implement anything new. Through this type of agile software development that consists of continuous improvement, the challenge of adapting to an ever-changing environment can be faced and ‘extremely’ overcome.

 

References:

ISKOLD, A. (2007, October 7). The Future of Software Development. Retrieved November 19, 2015, from http://readwrite.com/2007/10/16/the_future_of_software_development

Li-Li, Z., Lian-Feng, H., & Qin-Ying, S. (2011). Research on Requirement for High-quality           Model of Extreme Programming. 2011 International Conference on Information     Management, Innovation Management and Industrial Engineering. Retrieved November   19, 2015, from IEEE Xplore.

Liu, L., & Lu, Y. (2012). Application of agile method in the enterprise website backstage management system: Practices for extreme programming. 2012 2nd International        Conference on Consumer Electronics, Communications and Networks (CECNet).   Retrieved November 19, 2015, from IEEE Xplore.

Abdullah, E., & Abdelsatir, E. (2013). Extreme programming applied in a large-scale distributed    system. 2013 International Conference On Computing, Electrical And Electronic         Engineering (Icceee). Retrieved Novemeber 19, 2015 from IEEE Xplore