Extreme Programming Extreme programming is a relatively new methodology for application development, created to facilitate the fast, streamlined development of high-quality applications. Features of extreme programming include: User “stories”, or needs that determine software features, are usually written on index cards and are the basis of requirements for a project; Simple functionality tests are written by users before coding begins; Coding is broken down into very small segments of functionality that can be completely coded in two or three days; Programmers work in pairs; Projects rotate frequently among teams, giving all programmers an understanding of the entire project; Code is frequently refactored and revised to improve quality and performance. Extreme Programming at DaimlerChrysler’s ITM Financial Organization Given the economic climate and slowdown in the manufacturing industry during the last quarter 2000 and continuing into 2001, the ability of manufacturers to respond quickly to market changes is not only a competitive advantage but also a necessity for survival. The ITM Financial Organization at DaimlerChrysler is building its own financial applications in Java using extreme programming techniques to speed its development and deployment cycle. Getting an application into the hands of employees and customers quickly and efficiently through the use of a streamlined development and deployment tool aids an iterative development approach in the department. Similar in concept to rapid application development, extreme programming techniques require a streamlined approach to analysis and design that allows companies to develop what they need when they need it, doing frequent builds and testing often so there are no costly surprises at the end. DaimlerChrysler also chose Java to simplify and speed development projects. By standardizing on the Java 2 Enterprise Edition platform, the company has the architectural and development capabilities it needs to plug in the applications and deploy them rapidly. Why did DaimlerChrysler choose to develop its own applications in Java rather than buy off-the-shelf products? The company has been using Java for several years to develop applications. It has always looked first to see if it could find an off-the-shelf application that would meet its requirements – for example, from SAP or PeopleSoft – but usually found that this was not possible and that it had to develop in-house applications to obtain the features it needed. The company has done it all with Java, going through to the back-end systems, interfacing at the database level, and wrapping code on the mainframe. When an application is being developed, it may be sent to ten internal users so they can test and play with it, then give their feedback to the developers. An application in production mode can be sent to as many as 1,000 users, some of whom may be planning to release it to their clients. The ITM Financial Organization did not take the easy way out. It would have been easier for the group to use off-the-shelf packages. But the group’s choices are paying off in terms of its ability to rapidly develop and automatically and concisely deploy customized financial applications to a large number of users. Simply put, there are some applications that just cannot be bought off-the-shelf.