Subscribe by Email


Showing posts with label Equality. Show all posts
Showing posts with label Equality. Show all posts

Monday, May 28, 2012

Who benefits from extreme programming and how?


Extreme programming has been benefitting almost every one since its advent! Here in this article we are going to see who is benefited most from the extreme programming.
It enables the users to give sufficient feedback so that it can be further improved up on. It gets the whole team sticking around the project at hand and regulates effective development of the software. 

In extreme programming, whoever contributes in the development is considered to be an integral part of the whole team. The customer is considered to be the business representative here. The business representative is supposed to sit with the tem in their working hours and work along with them.
Very simple practices like planning and tracking are used to make decisions on what should be done in the next iteration and when it will be complete. The team is driven by the business values and the software is released in a series of small fully integrated releases only when they have passed some customer defined tests.
In extreme programming, the code is obsessively tested by the extreme programmers and developers who work together in pairs making an effort to continually improve the design satisfying the current development conditions. 
With extreme programming, the entire system can be kept in an integrated and running condition. The whole of the production code is written in pairs and worked up on together. The code is written in such a way that every one is able to easily grab the logic that has been implemented. 

Core Practices in Extreme Programming


The below mentioned are the core practices involved in extreme programming:
      1.   Whole team
      2.   Planning game
      3.   Small releases
      4.   Customer tests
      5.   Simple design
      6.   Pair programming
      7.   Test driven development
      8.   Design improvement
      9.   Continuous integration
     10.  Collective code ownership
     11.  Coding standard
     12.  Metaphor
     13.  Sustainable pace

Who all are benefited from extreme programming?


- By looking at these core practices one can easily see that the extreme programming takes care of all the aspects of the programming as well as of all the stake holders who are involved in the development process. 
- With the extreme programming the developers and the customers are able to see the exact picture of the software system or application and its work flow. 
- All the team members of an extreme programming team sit together and work up on the problem. 
- It is beneficial for the whole development process to have a customer who is a real end user. 
- The main purpose of the customers is to define the customer acceptance tests which are then used to define the requirements and specifications of the system or application. 
- On the other hand the manager is considered to be responsible for the management of the external communication and the coordinating activities. 
- The contribution of every team member of the extreme programming team is unique in its own way and is the best that can be provided. 
- As such it is not necessary that only individuals with expert skills! But whatever they contribute is something special out of their abilities and skills. 

Two questions are taken care of in the extreme programming as mentioned below:
      1. What will be accomplished at the end of the due date of the software project?
      2. What is to be done in the next iteration?

These two questions are addressed by the following two activities:
      1. Release planning and
      2. Iteration planning

Above all,  the one that is benefited the most is the customer and after this comes the number of other stake holders. 


Sunday, May 27, 2012

What are the common mistakes and misunderstandings in extreme programming?


The extreme programming saw its first use in the year of 1996 when it was declared as an agile software development process. Because of its down to earth and effective rules it gradually gained wide popularity among the programmers and developers and is still on the edge of the evolution. It has been observed to be quite successful with all the kinds of companies’ whether small scale or large scale. The extreme programming facilitates the daily communication between the customers and the developers so that they are aware of the changing requirements of the customers.

The extreme programming though being so popular has always attracted controversy due to some mistakes and misunderstandings regarding its usage and concepts. In this article we are going to discuss about these common mistakes and misunderstandings regarding the extreme programming. 

Misunderstanding # 1:
- Some people have a misunderstanding regarding the flexibility of the extreme programming development process.
- They think that having an on- site customer making changes in the requirements can cause the team costly re-work and the project may expand beyond its scope and of course budget.
- The extreme programming is dependent to some extent up on an assumed unified client’s point of view so that the programmer faces no difficulty in programming rather than on documentation. 
- The same situation arises when many organizations compete to get the shares of the projects.

Misunderstanding # 2:
- One other misunderstanding regarding the extreme programming is that the requirements are considered not to be expressed as specific documents but as the automated acceptance tests. 
- In extreme programming all the requirements are not retrieved in advance like in other development processes but they are obtained one by one in successive iterations and increments. 

Misunderstanding # 3:
- Another misunderstanding is that the programmers and developers are required to work in pairs compulsorily. 
- It is not so but it depends up on the situation, budget and quality level of the software project required. 
- If the time is less for testing of the code, then it is always advisable that the programming is carried out in pairs. 

Mistake # 1:
- Another mistake that is made by the developers is that they carry out most of the activities on fly in extreme programming. 
- This follows from the idea that the simplest necessary feature is implemented first and later the complex features are added if required.
- Most of the people fear that such kind of activities can later force the team to re design the whole program. 
- Some think that having an on- site customer can cause a lot of stress to the development team and micro management may take place with the customer who basically does not have any knowledge of the technology dictating the whole development process. 

All the aspects of the extreme programming are considered to be chained together. Even if one of them gets loosen then the whole programming will be spoiled. It is believed by most of us that extreme programming is carried out by small team consisting of around 10 members! But this is not so, the size of the team can be expanded as required by the project but it should always be the minimum possible number. 
Another alternative here will be to break down the project in to smaller divisions and also divide the team as per the project divisions to keep the discipline of the extreme programming. 
Most of the people view the extreme programming as a rigid process which is absolutely wrong! The extreme programming does allow modifications in its rules but on the condition that its spirit is not violated.
 


State the values that underlie the attitude and practices of a healthy XP project?


The date of 6th March, 1996 saw the first use of the extreme programming or XP as it is commonly known as for the development of a software project. Eventually, it gained so much of popularity that no one ever had thought of despite its so many critics. It came to be known as one of the best agile software development practices. 
But what was the reason behind its popularity?
The credit of the popularity of extreme programming among the software developers is given to the values underlying the attitude of the extreme programming. Therefore this article is dedicated to the values that underlie the attitude and practices of a healthy XP project.

Values that underline the attitude & practices of XP



Value # 1:
- The extreme programming has its way of handling projects of all sizes i.e., whether large or small or medium. 

Value # 2:
- The first value that underlies the attitude and practices of a healthy XP project is that it takes care of the customer satisfaction.
- The extreme programming has been able to deliver the product exactly as the customer wants since years.
- The extreme programming has proved itself when it comes to empowering the programmers and developers to easily catch up with the requirements of the customers which are always changing even in the later phases of the software development life cycle or SDLC.

Value # 3:
- Another positive aspect of the extreme programming is that it emphasizes team work. 
- It provides equality to all the team members i.e., managers, developers, programmers and so on. 
- It regulates the collaboration among the team.
- With the extreme programming a simple yet effective environment is created for the development of the project which does not just accelerate the rate of development but also increases the productivity of the whole team.
- The teams are thus imparted the quality of self organization.
- A constant communication is maintained among the team members and their fellow customers. 
- There are 5 ways in which a project is affected by the extreme programming for the good:
  1. Communication
  2. Simplicity
  3. Feedback
  4. Courage and
  5. Respect
Value # 4:
- Since the very beginning of the development process, the design is tested and continuous feedback is obtained. 
- This facilitates the early delivery of the software product to the customer with the desired changes incorporated in to it. 

Value # 5:
- The success of the project depends largely up on the individual contributions of the team members which also deepen their respect for each other.
- This enables the extreme programming team to respond with courage to the changing requirements.

More About These Rules


- These rules may appear to be naive for the first time to someone but they are quite effective and sound. 
- During the course of the development of the project one will eventually realize that these values or rules define the goal of the whole process. 
- These rules can be changed to some extent according to the requirements of the organization.
- The customers enjoy the privilege of being a part of the development process and the developers and programmers contribute to their fullest even if they are not so experienced. 
- The communications and the relationships are managed by the managers. 

All the above mentioned 5 values maintain the discipline of the extreme programming and keep the whole team together. 
With the extreme programming the whole system can be kept under a running condition and integrated. The code is written by the programmers in pair (pair programming) and the code is written in such a way that everybody is able to understand it and suggest for making improvements to it. 


Facebook activity