CodeSOD:年次報告書 ノート

CodeSOD:年次報告書

マイケルは、メインフレームのレポートを近代化するタスクに就き、古いインテリジェント・クエリー・コードを解読する必要がありました。プロジェクトの目的は、新しいシステムで古いシステムの正確な動作を複製することで、出力の比較に基づくテストを行うことだった。1つのレポートを変換した後、結果がオリジナルと一致しなかった。マイケルは、「Annual」と題されたレポートで使用される変数TODAYS-365に不一致を発見した。アップグレードされたレポートは、1年のデータを正しくプルしていたが、オリジナルのコードには奇妙な行があった:SUBTRACT TODAYS-DATE MINUS 426 GIVING TODAYS-365。この計算により、オリジナルのレポートは実際には過去1年以上約2ヶ月のデータをキャプチャしていた。会計年度の変更によるレポート要件の変更が、この誤った変数名と計算を生み出したと推測される。この問題は、長年にわたり不注意にされていた。修正は簡単だったが、根本的な問題は、時間の経過による不明確で誤ったコードの蓄積だった。これは、レガシーシステムの本当の課題は、プログラミング・ランゲージそのものではなく、蓄積された、しばしば不十分に文書化された「クルフト」であることを示している。