カーギルでは、穀物エレベーターの操作と関連する商品取引活動をサポートするために、非常に大きなSmalltalkアプリケーションが開発されました。Smalltalkクライアントアプリケーションには、385個のウィンドウと5,000以上のクラスがあります。このアプリケーションの約2,000のクラスは、初期(1993年頃)のデータアクセスフレームワークと対話しました。フレームワークは、オブジェクト属性のデータテーブル列へのマッピングを動的に実行しました。
分析の結果、動的なルックアップはクライアントの実行時間の40%を消費しましたが、不要であることがわかりました。
ビジネスクラスが明示的にコード化されたメソッドの列マッピングにオブジェクト属性を提供することを必要とする新しいデータレイヤーインターフェイスが開発されました。テストにより、このインターフェースは桁違いに高速であることが示されました。問題は、データレイヤーの2,100のビジネスクラスユーザーを変更する方法でした。
開発中の大規模なアプリケーションは、インターフェイスの変換が構築およびテストされている間、コードをフリーズできません。メイン開発ストリームからコードリポジトリの並列ブランチで変換を構築し、テストする必要がありました。変換が完全にテストされると、1回の操作でメインコードストリームに適用されました。
17,100件の変更で見つかったバグは35個未満です。すべてのバグは3週間で迅速に解決されました。
変更が手動で行われた場合、変換ルールを開発するのに235時間かかったのに対して、8,500時間かかったと推定されます。
タスクは、書き換えルールを使用して、予想される時間の3%で完了しました。これは36倍の改善です。