''[From June 13, 1998, when it was written in response to XpChallengeLegacySystems.]'' :: This is an early description of the ChryslerComprehensiveCompensation project. ----- ''(Initial thoughts, not entirely positive. Just musings, don't expect anything good yet. I'm trying to get down some framework within which I can think ...)'' C3 is a new system, built to replace (ultimately) some 10 or 14 payroll programs which plug into a myriad of inputting and reporting systems. First generation C3 plugged compatibly into everything, legacy input files, DB2, a KBMS wage attachment system, and lots of bizarre output formats. We did it all in Smalltalk, using XP. The key was the stories, IMO. Because we had a close communion with the customer, who was able to decide and make stick what should hook to what, we did OK. Connecting to everything in the legacy output, using Smalltalk, was problematical. The biggest reasons are the very large number of different outputs that have grown up over the years, which makes for much work to do; and the fact that most of these were undocumented. Each contained a handful of values that looked like they were the total city tax but really contained the sum of the ages of the children, because they needed that value and they didn't need the city tax, and they didn't want to recompile all the COBOL programs. This phase we are producing a standard output, essentially dumping all our detail for each check, into flat records that can be put into DB2 or otherwise processed readily. Consumers can select the info they want by selecting on the keys, summing as they wish, counting the children, whatever. This is requiring more change to the legacy, but keeps bizarre legacy stuff out of the re-engineered bits. It's better. Our first customer was sometimes unwilling to negotiate with providers and consumers for more rational feeds. Our new customer is more open to these ideas and the result will be that the re-engineering will actually spread better. -- RonJeffries