移植・移行をやったことがない人が考えそうなこと

 あるプラットフォーム(たとえば汎用機)から、別のプラットフォーム(たとえばUNIX)に移植、移行作業をする場合、こういうことを考える人ってあんまり経験がないんだろうなぁと私は思いますね。

 それは、ついでにいままでのシステムでいけてないところも直しちゃおうということです。

 これ、絶対失敗します。たとえば、電文で、なくてもよさそうな項目を削ってしまうとか、ファイルレイアウトで非効率的な部分を直そうとか、さらにいうなれば、移行前のプラットフォームなら効率的でも移行後のプラットフォームでは非効率的な部分をなんとかしようとか、そういうのを一緒にやると絶対失敗します。ここでいう失敗とは、見積もり工数を大幅にオーバーするとか、そもそも工数を見積もれないとか、そういう事態になるということです。


 最初は、愚直なまでに可能な限り移植前と同じ姿、同じロジックで移植すべきです。手続き型言語からオブジェクト指向言語に移植するのであっても、手続き型っぽく作るべきです。雑念は排除し、「まず動かすこと」にまい進しなければなりません。


 考えてもみてください。「いままでのシステムでいけてないところも直す」というのはリファクタリングです。


 リファクタリングを上手くまわすにはどうしますか? そうです。リファクタリング前の状態がちゃんと動くこと。ユニットテスト等でテストを簡略化していることです。なので、まずは動かさなければならないのです。


 ということで、まだまだレガシー系からの移植、移行作業がある昨今です。「余計に工数がかかるかもしれないから、ついでに」という気持ちをぐっとこらえて急がば回れですよ。