However, for such an intense practice to thrive, set values amongst the team members, are quite significant. These primarily consist of:
The goal of extreme programming is to deliver what is needed at the said so point in time. It cannot take into consideration the needs and distractions that would arise in the future. The fact that it is a kind of process wherein constant feedback from the user end is taken into consideration to continually develop the code helps it be so. Thereby, they try to maximize the value created by the investment to date. Its advancement in small step cycles helps improve productivity and alleviate the failures as they happen.
Further simplicity in both, the design implemented and the code also helps communication.
Unlike other methodologies, wherein documentation is the standard means of communication amongst the team members, it is not so here. Instead, it is usually done by communicating face to face amongst the team members, and also between the development team and the users. This saves serious time but requires much more involvement. The team members are supposed to work collectively on everything from the user requirements to the code implemented.
Developers are supposed to have a shared view of the system, in accordance to how the user sees it. To this end, frequent verbal communication for the collaboration of users and programmers helps the process of feedback as well.
Feedback plays a significant role in the entire process. The cycle of going back and forth, between user feedback and software development in strides, forms the backbone of the whole process. However, there are several facets to it.
From the system
Developers continuously run periodic integration tests, which lets them have constant feedback after changes have been made in the system.
From the customer/user
Primary feedback of the current state of the system is derived utilizing acceptance tests for users. It is continuously in place so that the user can steer the development process, with regards to available demands.
From the team
After the feedback from the customer is attained, the team immediately reverts back to the drawing boards to estimate timeline and cost involvement. Also, feedback on each other’s code is encouraged within the group.
Maintaining courage during the entire process is vital. It helps developers refactor their codes whenever a frequent need for the same arises. Further, it also becomes essential at times, to scrap old code, no matter how much effort was put into it.
Being respectful towards one’s peers and oneself is encouraged. Developers should not perpetrate mistakes that might break compilation, that fails integration tests or hampers the work of peers.
A high level of motivation and encouragement is essential to uphold all of these values, and remain focused towards the team goal at large.