いまそこにある2007年問題
プロジェクトが火を噴いている。まぁ、いつものことだとうそぶく自分が情けない。理由は「非現実的な納期」「見積もり不備」「仕様不在」… と、このテの仕事をしている面々には茶飯事なのだが、今回はそれらを押しのけて「2007年問題」が突出する模様。
2007年問題とは、一般に団塊の世代の一斉退職による人材・ノウハウの逸散のことを指す。狭義だとメインフレーマーな人・COBOLerな人の退出によるレガシーシステムのメンテ問題だし、広義ならプロジェクトマネジメントノウハウの流出とも位置付けられる。これを深刻に受け止める人もいれば、むしろ好機とみなす人もいる。日コン11/1号に詳しい。
いまココにある「2007年問題」はそんな上っ面なやつじゃなく、もっと切実なやつ。つまりこうだ。団塊世代は「いけいけどんどん」、即ち作ってナンボ、動かしてナンボの世界だった。止めるのは悪であり、動かすためのいかなる手段も正当化された。よく分からない定数(群)、サブシステムを跳躍するGOTO文、だれも理由をいえないオリジナルインクルード文。
こんがらがって書いた当人も読めないようなコードを「スパゲッティ・コード」と呼ぶが、スパゲッティならまだマシ。スパゲッティなら、まだ皿にのっている。皿からはみ出てテーブルから落ちそうな血まみれ「スプラッタ・コード」となっている。もちろん、誰も読めない(し、メンテも不可能)。
しかし、システムは動きさえすれば善なのであり、動いているコードは触るなという鉄則がある。
その結果、ブラックボックスと化したシステムは、「よく分からないけれど動いてるからいいや」状態で放置。動かすために裏でごにょごにょ手入れしたことは、ドキュメント化されないまま、みんなの記憶の中に放置→やった本人すら忘れている。いや下手に「ワシがやった」などと手を挙げようもンなら、ドキュメント化せよという至上命令が降ってくる。ここは口をつぐんで放置プレイ。
レガシーシステムには、多かれ多かれ「記録に残していない修正」がたっぷりと入っている。こうした「裏でごにょごにょ入れた仕様」を前提とした修正・バージョンアップが繰りかえされる。
…そしてある日、「レガシーシステムを更改せよ」という命令が下される。オープン系? いいねぇ、MDAでやってみる? かっくいー
プロジェクトの俎上に乗る「現行のスペック」には「バックドアから入った仕様」が漏れている罠に誰も気づかない。ゲームだと隠れキャラを出さなくてもクリアできるが、この隠れキャラは突然必然出現する。しかもどこにも書いてないし、「あンとき何かイロイロ入れたなぁ」としみじみと思い出されるのみ。
「記録より、記憶に残るプレイをしたい」という名言を吐いたのは新庄剛志。団塊オヤヂたちよ、「あの頃は大変だった」と遠い目をしているヒマがあれば、記憶よりも記録を残しておけ、たのむ。
--

| 固定リンク
コメント
偶然立ち寄りました。
詳しい意味は専門で無いのでわかりませんが、なんとなく言いたい事はわかります。
すげーおもしろいblogでした。
投稿: 邦雄 | 2004.11.28 09:32
コメントありがとうございますー 邦雄さん
まぁ、腐ったオヤヂが毒を吐いているblogということで
投稿: Dain | 2004.11.30 23:50
しかし元某金融機関のユーザーSEから言わせてもらえば、これこそが案件毎のプロジェクトによるシステム開発の弊害ではないか?と思う。”システムは動きさえすれば善なのであり、動いているコードは触るなという鉄則がある。”ですが、私のところは”動いてるから良いじゃん”でしたけど。プロジェクトが解散したら、もう何もやっちゃいけない(今ちゃんと動いているシステムのドキュメント作成なんてもってのほかな)んですよ。
これらレガシーシステムは例えば銀行オンラインシステムの草創期に半ば国家的なプロジェクトとして団塊世代がユーザー・メーカーを超えて協力し合い、ノウハウ無し、手探り状態で作り上げてきたものですよね。(例えば我々が偉そうに言うノウハウも実はココ(この時代)で培ったものが多くあるのではないか?とさえ思う。)
さて”動けば良い”であるが、プロジェクトとはまさにこれだろうと思うのは極端だろうか?逆に私は企業SEとしてシステムを維持管理していた時期(=大型案件の合間≠プロジェクト)、これら多くのスパゲッティをそれなりに構造化しコメントを挿入しながら改良を加えておりましたね。メンテナンスとはこういうものだと。
スパなのは団塊だから、オヤジだからではなく、コストと期限と品質(動かない綺麗なソースより、ちゃんと動くスパが○)のガチガチなプロジェクトで生まれた製品だったからではないかな?なんて思うのは私がもうオサーンだからですね。
投稿: 鉛のZEP | 2004.12.17 14:35
鉛のZEP さん、コメントありがとうございます。おっしゃる通り、スプラッタの理由を団塊オヤヂのせいにするのはちょっと違いますね。ご指摘ありがとうございます。
「動けば尊し、我がCの怨」とはよく言ったもので、C言語に限らず動くためのいかなる手立ても「善」とされていることには異論がありません。
そして、レガシーシステムを作り上げてきた人々に対し、素直に畏敬の念を捧げます。いま私がおまんまを食べられるのは、そこで培われてきた実績やノウハウがあってこそですもの。
ただ、動かすための手立てを隠れ仕様という形で残し、ほっかむりしたまま定年まで逃げ切る背中へはオイ、チョットマテといいたくなるのです(半分以上愚痴なのですが…)
くり返すデスマをなんとかしたくて始めたPMBOKには「スコープ変更管理が重要だ」などとあります。しかし、開発プロジェクトが終結しているのにスコープ変更が記録されないまま、維持契約が結ばれているのが現実。
それが現実だよ、といえるのは開発会社と維持管理会社が同一会社、もしくは系列会社の場合でしょう。レガシー更改の際に、呼べる距離だし…
しかし、2007年から向こうは。
投稿: Dain | 2004.12.19 00:24
しかし、2007年から向こうは。
使えるヤツだけ定年延長し、契約社員として働かせるんじゃないでしょうか?今は定年がイコールばら色生活の始まりじゃ無いみたいですし。
私はそれまでに事態を何とかするプロジェクトを提案してみようと思いますが、ソレ(コレ)で定年後も安泰と思っている上司に却下されるでしょうね。奴等もちゃんと知っていますよ。
で、使えるヤツ?の定義が曖昧でみんな残ってデカイ顔し続けるんです...昇進の機会もさらに減って、私にとってはこれこそ2007年問題だな。
投稿: | 2004.12.19 18:13
名無しさん、コメントありがとうございます
>私にとってはこれこそ2007年問題だな
思わず目頭が熱くなりました。(つД`)
大量退職→全員契約社員による究極の「ワーク・シェアリング」ですね。退職金もらって、(単価は減るけど)職は確保されて、かつ減った分だけラクできそうですね… んでもって、レガシー更改の際は昔を知っているというだけで「ネ申」として振舞うのでしょう。
しかし、本当の神はエグゼクティブマネージャにクラスチェンジしてたり、あるいは自分で起業していて、既にいないという罠。
投稿: Dain | 2004.12.20 12:22
↑名なしで投稿してしまいました。すみません。
で、私たちが将来同じ手を使おうとしても今一生懸命進めているパッケージ化と共同センター化、(開発場所の)グローバル化の波に飲まれてザッパ~ン。行く所無し。切腹!
投稿: 鉛のZEP | 2004.12.21 10:28
あ、鉛のZEP さんでしたか。コメントありがとうございます。
でもダメですよ、団塊オヤヂと同じワザを使おうとしては。彼らのやんちゃは、彼らだからできるんです。真似したらそれこそヒンシュクものでしょう…というよりも、恥ずかしくてできない。
別の路を拓くのです。
投稿: Dain | 2004.12.21 12:13