Extreme Conversion

The C3 ExtremeProgramming team just completed converting the live customer database to GemStone 5.1.x from 4.1.x. The process was very time-consuming, in large part because we found serious problems in GemStone versions. It was also exacerbated by the fact that GS 5.1 has re-rooted a large number of the collection classes, and other classes, to move closer to the "standard" Smalltalk hierarchy.

The database conversion code supplied by GemStone ran for three days on the 9 gig database. The team's post-conversion code ran another 14 or so hours.

We ran our 30,000 UnitTests and our thousands of AcceptanceTests. All scored identically. We tested all the user GUIs, finding and fixing a number of differences between the versions. All GUIs run identically.

We ran some AcceptanceTests partway through in the old version, then converted the test database to the new version and completed them. They got the same answers, and all the output files were bit-for-bit equal to the old ones.

We ran several hours of our standard database summary steps on both systems, and compared the output bit-for-bit, with a complete match.

Two days before all the tests completed, the customers were already completely sure that the conversion would be successful. Confidence just kept going higher and higher, until everyone was almost bored with the certainty.

Quite a triumph for hackery, when you think about it ... and we don't even have the top 5% of programmers in the world. ;-> --RonJeffries


EditText of this page (last edited January 12, 2005) or FindPage with title or text search