Chrysler Comprehensive Compensation System

Last updated

The Chrysler Comprehensive Compensation System (commonly referred to as "C3") was a project in the Chrysler Corporation to replace several payroll applications with a single system. The new system was built using Smalltalk and GemStone. The software development techniques invented and employed on this project are of interest in the history of software engineering. C3 has been referenced in several books on the extreme programming (XP) methodology. The software went live in 1997, paying around ten thousand people. The project continued, intending to take on a larger proportion of the payroll, but new development was stopped in 1999.

Contents

Project history

The C3 project was initiated in 1993 by Tom Hadfield, the Director of Payroll Systems, under the direction of CIO Susan Unger. Hadfield had developed a small object-oriented prototype which inspired the project. Smalltalk development began in 1994, with the aim of creating a new system to support all payroll processing for 87,000 employees by 1999.

In 1996 software engineer Kent Beck was brought on to oversee development, as the system had not yet printed a single paycheck. [1] Beck in turn brought in Ron Jeffries. In March of that year, the development team estimated that the system would be ready to go into production in around one year. In 1997 the development team adopted a way of working now formalized as Extreme Programming. [2] Although there was a slight delay due to unclear business requirements, the system was launched a just a couple of months later than the one-year delivery target. [3]

The plan was to roll out the system to different payroll 'populations' in stages, but C3 never managed to make another release despite two more years of development. The C3 system paid 9,000 people, representing the "vast majority of monthly Chrysler salaries." [4] Performance was initially a problem, with early estimates indicating it would take 1000 hours to run the payroll. However, profiling activities reduced this to approximately 40 hours, with another month's effort further reducing this to 18 hours. By the time the system was launched, the figure was down to 12 hours, and during the first year of production, performance was improved to 9 hours. [5]

A few months after the initial launch, the project's customer representative, a key role in the Extreme Programming methodology, resigned due to burnout and stress, and could not be replaced. [6]

Chrysler was bought out by Daimler-Benz in 1998, after the merger the company was known as DaimlerChrysler. DaimlerChrysler stopped the C3 project on 1 February 2000. [7] [ not specific enough to verify ]

Frank Gerhardt, a manager at the company, announced to the XP conference in 2000 that DaimlerChrysler had de facto banned XP after shutting down C3; [8] however, some time later DaimlerChrysler resumed the use of XP. [9] [ not specific enough to verify ]

Notes

  1. Gerold.
  2. Highsmith p. 298
  3. c2 wiki on c3
  4. c2 wiki on C3 project termination
  5. Garzaniti 'Optimizing a Payroll System' in Fowler pp. 72–3.
  6. C. Hendrickson, 2001, Will Extreme Programming kill your customer?, Position Paper, OOPSLA 2001.
  7. Gerold; date is given in the usenet thread
  8. c2 wiki on termination
  9. see usenet thread

Related Research Articles

<span class="mw-page-title-main">Kent Beck</span> American software engineer

Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.

<span class="mw-page-title-main">Martin Fowler (software engineer)</span> American software developer, author and international public speaker on software development

Martin Fowler is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.

<span class="mw-page-title-main">Ward Cunningham</span> American computer programmer who developed the first wiki (born 1949)

Howard G. Cunningham is an American computer programmer who developed the first wiki and was a co-author of the Manifesto for Agile Software Development. A pioneer in both design patterns and extreme programming, he started coding the WikiWikiWeb in 1994, and installed it on c2.com on March 25, 1995, as an add-on to the Portland Pattern Repository. He co-authored a book about wikis, entitled The Wiki Way, and invented the Framework for Integrated Test.

The following outline is provided as an overview of and topical guide to software engineering:

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved. Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.

James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.

"You aren't gonna need it" (YAGNI) is a principle which arose from extreme programming (XP) that states a programmer should not add functionality until deemed necessary. Other forms of the phrase include "You aren't going to need it" (YAGTNI) and "You ain't gonna need it" (YAGNI).

<span class="mw-page-title-main">Continuous integration</span> Software development practice based on frequent submission of granular changes

In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Nowadays it is typically implemented in such a way that it triggers an automated build with testing. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.

In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an end user or user of a system, and may be recorded on index cards, Post-it notes, or digitally in project management software. Depending on the project, user stories may be written by different stakeholders like client, user, manager, or development team.

Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles, that can be applied on an (agile) software development project. This methodology is more flexible than traditional modeling methods, making it a better fit in a fast changing environment. It is part of the agile software development tool kit.

Big Design Up Front (BDUF) is a software development approach in which the program's design is to be completed and perfected before that program's implementation is started. It is often associated with the waterfall model of software development.

Extreme programming (XP) is an agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the best practices of software engineering.

A lightweight methodology is a software development method that has only a few rules and practices, or only ones that are easy to follow. In contrast, a complex method with many rules is considered a "heavyweight methodology".

<span class="mw-page-title-main">Ron Jeffries</span> American computer scientist

Ron Jeffries is one of the three founders of the Extreme Programming (XP) software development methodology circa 1996, along with Kent Beck and Ward Cunningham. He was from 1996, an XP coach on the Chrysler Comprehensive Compensation System project, which was where XP was invented. He is an author of Extreme Programming Installed, the second book published about XP. He has also written Extreme Programming Adventures in C#. He is one of the 17 original signatories of the Agile Manifesto.

Matt Stephens is an author and software process expert based in London, UK. In January 2010 he founded independent book publisher Fingerpress UK Ltd, and in November 2014 he founded the Virtual Reality book discovery site Inkflash.

In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

<span class="mw-page-title-main">Extreme programming</span> Software development methodology

Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

eXtreme Manufacturing (XM) is an iterative and incremental framework for manufacturing improvement and new product development that was inspired by the software development methodology Scrum and the systematic waste-elimination (lean) production scheduling system Kanban(かんばん ).

Agile usability engineering is a method created from a combination of agile software development and usability engineering practices. Agile usability engineering attempts to apply the principles of rapid and iterative development to the field of user interface design.

Communication in Distributed Software Development is an area of study that considers communication processes and their effects when applied to software development in a globally distributed development process. The importance of communication and coordination in software development is widely studied and organizational communication studies these implications at an organizational level. This also applies to a setting where teams and team members work in separate physical locations. The imposed distance introduces new challenges in communication, which is no longer a face to face process, and may also be subjected to other constraints such as teams in opposing time zones with a small overlap in working hours.

References