…today, I will continue where I left off last time, with the explanation of the concepts of XP….
The process of building an XP system requires that the system developers have proper communication channels. Within XP, the techniques require swift building and furthermore the dissemination of knowledge within the developer team. The aim is that all the software developers have a communal view of the system in hand and that this is the same as the system users. In summary, XP encourages regular feedback and communication, more simple designs and collaborative techniques for programmers and users alike.
It is imperative that the Extreme Programmers listen to the specific requirements of the customer! Understanding individual needs should enable the programmer to give detailed feedback to the customer relating to problems which may be encountered and if these can be solved or indeed if the project should be abandoned.
Good, clear and concise designing should ensure that the software development process runs smoothly. Whilst some may argue that a system may not require anything else rather than listening, coding and testing, this in theory may not lead to a fully workable end system. Structuring the design, in order to organise the logic within the programme, should enable that parts of the system can be changed with no negative effects on the other system parts or indeed the system as a whole.
XP’s approach is that each problem encountered is dealt with in a manner whereby the solution to this problem is ‘simple’. The fundamentals of XP deem that big changes incorporated all at once doesn’t work! XP ultilise more of a step-by-step approach.
Within the XP environs; ‘courage’ is encompassed via a number of distinct practices. One rule is that designing and coding is done now and not later. This approach encourages the XP developers to feel at ease with the code refractoring (this is an internal working of existing codes which although alter the structure within, the behavior is not externally changed). The implementation of courage within the ethos of XP development strives to modify and review an existing system, so that modifications can be done with ease in future.
In the XP context; feedback is three-dimensional.
(A) Team feedback; as customers request new requirements, a team member directly gives a reasonable estimation of time to implementation.
(B) System feedback; integration testing provides the software programmers with feedback directly from the system
(C) Customer feedback; “Acceptance tests’ (also known as functional tests) are done by both the testers and the customers. This is done to get rigid and honest feedback about the state of the system in hand. Ideally this is performed once every few weeks so that the customer can have direct control on the development of the system.
In the development of Extreme Programming Software; respect is required both in respect for others developing parts of the software and one’s own self-respect. Software members aim for the highest quality and thus look for the most suitable design for the project in process. This in addition to the usage of the four core values is adopted to harness both loyalty and a motivational approach.
In my next blog; I will critique the usage of XP today and give examples of recent successes….
Kent Beck..Extreme Programming, Computerworld (online), 2005