今回のプロジェクトは、バグだらけシステムを作り直すというプロジェクト。そんな物が出来上がってしまったプロジェクトの進め方や体制にも問題があり、デスマーチ体制の建て直しも必要。これの四苦八苦が当面続きそう。
このプロジェクトは、既に5年と数億円を使ってしまっていて、今年の初めに、一度はシステムが完成した。エンドユーザは、かろうじて何とか使えてはいる。仮に、某ケミカルメーカーの人事管理システムとしておく。
フレームワークなど基盤部分の基本設計が確立しないまま、SEの調達をオフショアに依頼したことで、アプリケーションは何となく完成したが、バグが多く、レスポンスも悪いというクレーム満載のシステムが出来てしまった。
これを直して使えるものにするというのが、プロジエクトのメインの目的。
Windowsサーバによる中規模システムで、クライアントアプリは.NET、サーバ側のデータベース処理にもアプリを挟んだ3層構造になっている。給与計算システムなど、他システムとの連携も、.NETアプリでWindowsサービスを作っている。
まず、多発している不具合を改善しようとして気付いたのが、ソースがスパゲティで、直すと動かなくなるかもしれないという状態であること。ドキュメントもシッカリしたものはない。
当面の作業目標はスパゲティのソースをキレイにすること。私も.NETは初めてであり、まずは勉強、勉強。チーム内の.NETスペシャリストに聞いたところ、これらの本を薦めてくれた。
・リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
・レガシーコード改善ガイド (Object Oriented SELECTION)
・リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
どれも分厚いので、1冊づつ読んで紹介していく。