Subscribe by Email


Saturday, May 12, 2012

Explain Extreme Programming (XP) - an agile method?


One of the agile software development methodologies is the extreme programming which is quite popular with the software programmers and developers. The extreme programming since its advent has been known for the improvement of the quality of the software products and the projects and their responsiveness to the ever changing requirements of the customers. 
Apart from all this the extreme programming is known to advocate many frequent releases of the shipped software product in short development cycles i.e., to say it advocates time boxing. 
So we can say that overall it improves the productivity of the whole development process and also facilitates the introduction of check points where the new requirements from the customers can be adopted. 

Aspects of Extreme Programming


There are some other aspects of extreme programming few of which have been mentioned below:
            1.      Pair programming (programming in pairs)
            2.      Extensive code review
            3.      Unit testing of the whole code
            4.      Avoiding programming of avoidable features till they are required
            5.      Flat management structure
            6.      Simplicity of the code
            7.      Clarity of code
            8.      Adoption of the changing requirements of the customer
            9.      Maintaining frequent communication among the programmers and with the customers etc.

Drawbacks of Extreme Programming


This methodology took its name from the ground that the beneficial aspects of the engineering practices are implemented at their extreme levels. It follows from the idea that more is better if a little is good. However several potential drawbacks have been pointed out few of which have been mentioned below:
            1.      Unstable requirements
            2.      Absence of documented compromises of user conflicts
            3.      Lack of overall design specifications
            4.      Lack of design documents

"Extreme programming now experiences quite different environments from the ones that were present at the time of its origin. Extreme programming is strictly aimed for the organization of the people for the production of the high quality software projects and products." Not only this, the cost of the changing requirements is also reduced by the means of implementing multiple short development cycles in place of a long one. 

It produces the below mentioned aspects all based up on the agile programming frame work:
            1.      A number of basic values
            2.      Principles
            3.      Practices

Activities Under Extreme Programming


There are 4 basic activities that are carried out under the extreme programming process:

      1. Coding: 
      Regarding the extreme programming it has always been argued that code is the most important aspect of any program since without it no working program would exist. Coding is the thing that helps you figure out most of the solutions and navigate through the programming problems. Code sometimes can be used as a code to demonstrate a program to the fellow programmers and developers which otherwise might prove to be difficult. Code is always interpreted in one way and is suppose to be clear and concise.
  
      2. Testing: 
     This aspect also follows the above mentioned idea that more is better if a little is good. It involves the following tests:
       (a)  Unit tests: These are included for the determination of whether the program is working and giving the outcome as intended. May automated tests are written that can break the program and if the program passes all these tests successfully, the coding is declared to be complete. Each piece of the code is tested before carrying the development process forward.
     
    (b) Acceptance tests: These tests are included for the verification of the requirements which the programmers think can satisfy the requirements of the customers.
       
      3.   Listening
      4.  Designing

     

Extreme Programming Values


     1.      Communication
     2.      Simplicity
     3.      Feedback
     4.      Courage
     5.      Respect
     6.      Rules

     

 Basic Principles of Extreme Programming


     1.      Feedback
     2.      Assuming simplicity
     3.      Embracing change


No comments:

Facebook activity