「七夕祭り」が「夕映祭り」に見えた。俺って終わってる

過去に自分が書いた日記を読み返して思い出したんだけど、2003年4月から2004年7月まで従事していた、岩手県の某デパートさん向け新流通トータルパッケージの開発、あの作業は色々な意味で駄目だったなぁ。
以下の説明を、2004年の3月から、顧客の環境で新流通トータルパッケージが本番稼動すると言う事を念頭に置いて読んでください。1ヶ月ぐらい並行稼動で様子を見るとか、そんな甘い事ではありません。ただし、作業者である自分は、直前まで3月からの稼動とは知っていませんでした(2003年の内は、いつ稼動開始するかマジで知らなかったし、2004年2月ぐらいまで、どうやら今年度から導入する風情だから4月からだと考えていた)。
自分が勤める会社が担当した作業を仮に(1),(2),(3)としますと、(1)は2003年4月から作成を開始し、元請会社には9月までに随時納入し、元請でテストを行って、先行するシステムって事で11月に顧客に納入と言う予定でありましたが、8月くらいまで顧客のとの打ち合わせのたびに仕様変更が入りました。その結果、9月からテストでは不具合が大量に出ました。
9月ってのは自分に(2)の仕様書が回ってきた時期です。要は、こんな時期まで仕様が詰められていなかったって事です。1本あたりA4で100ページの仕様書があるプログラムの作成が3本、しかも1週間に1本のペースで完成させるように命令されました。これだけでも大変なので、自分は(2)に専念させてもらえる手筈だったのですが、(1)の不具合修正の方が量が増えて追いつかなくなったので、2度ほど(2)の作業を中断して(1)の手伝いをすることになりました。結局(2)が一応の形になったのは10月です。プログラムを書いて、エラー無く最後まで実行されることまで確認したのですが、出てくる結果の検証が殆ど手がついていません。本来なら現時点での仕様でデータの検証まで行うのですが、どうせ元請でテストが始まるまでに仕様が変わるんだから、ここで時間をかけても無駄になる可能性が高いので、このまま出しましたw。結局のところ、これは自分の評価を下げる結果に繋がる悪手でした。でも、仕様はコロコロと変わったのも事実です。11月の段階で先行して導入する(1)を完成させる為に、10月末から土日も祝日も無く、朝から晩まで作業と言う状態になりました。いわゆるデスマーチです。それでも、納期には完璧な状態にはなりませんでした。一部不具合を残したままの納入となり、修正は12月までかかりました。
で、この間に下請けに作成が回されたのが(3)です。自分はノータッチだったのですが、上がってきたプログラムを見て驚いた。全く構造化されていなかったのです。これは、(3)に対する仕様変更に応じた修正や不具合対応で露見したのですが、時、既に遅しです。構造化しないプログラムって書くほうは楽ですよ。同じ計算式はカット&ペーストすれば良い訳ですから。でも、保守する側は大変です。3ヶ所も4ヶ所も使われている計算式が間違っていたり、仕様変更されたりする毎に、全てを書き直さないとなりません。しかも、デスマーチ状況ではコノ手の作業をすると単純ミスが発生し易くなります。
年が開けて2004年となってからは、(1)に対する仕様変更の対応(リリース直前まで仕様変更が存在してました)及び(2)(3)に対する不具合の修正と仕様変更対応で大忙しでした。リリース後も、不具合の修正とか、「使ってみたら、思っていたのと違う」と言う要件のミスマッチによる仕様変更対応に追われ、収束したの9月ぐらい、なのかな?っという状況でした。

ちなみに(1)に関して、簡単なものは下請けに回し、複雑な機構を持つものに関しては、自分が作成を担当しました。勤務態度はともかく、技術力に関しては上司から信頼されていたと言う事だと思います。自分が作成したプログラムは、自分が納得いくまでテストした甲斐もあり、仕様の複雑さの割に不具合は殆ど出ていません。不具合は、仕様変更に対応して後から手直ししたような部分に多く見られました。
また、(2)に関しては、後になって作り直される事になりました。別の会社に発注されたのですが、作業期間5ヶ月、工数的には10〜15人月だったみたいです。自分は、そんなプログラムを3週間で作れって言われていたみたいですw

問題点は、元請の会社がしっかりとしたプロジェクト管理をしてなかった、この1点に尽きるね。「何月何日までに、ここまで作業を終わらせる」って指標(マイルストーン)を用意し、遅れているようなら然るべき手を打つ。あの元請は、リリースするまでプロジェクト管理に失敗してる事を顧客に隠しとおしてきたけど、最終的に1億ぐらいの弁償金を支払った模様。顧客側も、リリース前で顧客に供されたサンプルが、不完全・未完成のものっての段階でプロジェクト管理ができてない=製品が信頼できるものに仕上っていない事を見抜くべきだったかと。
末端の作業者である自分らは死ぬような作業量を課せられていましたが、それを持ってシステムの素晴らしさを保証できる訳ではありません。むしろ「完成したところで、このシステムは駄目駄目だ」と言う認識を持っていました。