Extreme Programming is a combination of a number of different techniques for developing software. These techniques are not independent, but instead influence and complement each other. Kent Beck shows their relationships in [Beck2000]. Over the past two years, we have used XP techniques in various development projects. We observed that the XP process is fragile: If one XP technique is used in an unintended way or not at all, dependent XP techniques may be affected. The problem is that XP is based on discipline and experience. If a team lacks the necessary discipline or experience, the XP process is likely to break down. The role of an XP coach is therefore suggested by Beck. The XP coach has the required experience and tries to establish the XP values within the XP team. However, this situation is unsatisfactory. Many small teams do not have the financial resources to pay for an XP coach, and even if they do, it is very hard to a get a good one. So far there have not been many successful XP projects that have produced skilled coaches. Fortunately, there are other ways of transferring experience and knowledge. One is to reify successful routines and behavior in artifacts [Bødker+1991]. This is what cultures do: If a routine is executed over and over again in the same or a similar way, the culture will create an artifact that reifies this routine. A carpenter hammers nails into wood. The reification of this routine is the hammer. The hammer does not force the carpenter to use it as intended, or even to use it at all, but it helps the carpenter do his work effectively. Thus, the carpenter will, of course, use the hammer. At the same time, the hammer "helps" the carpenter remember how to hammer. This facility is more important for an inexperienced carpenter than for an experienced one. The hammer helps transfer the knowledge about how to hammer from the experienced carpenter to the inexperienced one. The hammer stabilizes the routine of hammering. The idea of using artifacts to reify proven routines and practices is not only useful for XP projects without a coach. Even with an XP coach, the artifacts help stabilize the good practices and techniques. It is crucial to use artifacts as part of the game, but the artifacts and routines have to be complemented by a value system. Artifacts, routines, and value systems stabilize each other. Here we focus on the continuous integration technique of XP. We present the JWAM IntegrationServer as one possible artifact reifying this technique and therefore stabilizing the XP process. |