システム開発の銀の弾丸

 以前から不思議に思うことがある。
 なぜに障害対応!となると問題はあんなに早く収束するのか。
 それまで開発期間中、気づかなかったほどのバグが、あっという間に片付く。
 2002年のみずほなんか、2年程度かけて作れなかったシステム開発が3か月でリリースされ、バグが追加の1カ月で消滅してしまった。
 2年もらって作れなかった(しかも原型のシステムはあったはずで、件数を増やしても大丈夫なように改修するのが主だったはずなのだが)、ものがなぜ4カ月でできてしまったか。しかも最後の1カ月は歴史に残る高速開発だったに違いない。

 ところがその高速開発は「すばらしい」「驚異的な技能集団だ」と評価されて携わった人間は給料2倍!なんて声は聞こえてこない。むしろ、できるのならなんで今までやらなかった、と言われているようだ。
 同じことはいろいろな組織で経験しているだろう。
「到底無理なスケジュールを押し付けられ、何とか納期に間に合わせた。障害が出たが頑張ってなんとか使えるものにした。」
 冷静に考えれば評価は上がるはずなのに(少なくとも短納期の分、人月単価はぐぐっとあがるはずなのに)、なぜか文句だけ言われておわる。
 まずいことに発注側は「短期間で開発できた」のを「成功体験」と思ってさえいるようなのだ。そのあとの開発で「十分な時間をかけるようにしよう」と反省することなく「もっと短い時間でできるはずだ(その方が安い)」と時間を値切りだす。(デマルコさえ、これへの対応はあきらめた。)確かに本人としては、問題が生じたので自ら先頭に立ってテコ入れしたら早期に解決した、と思ったとしても理解できるところはある。たとえそれが二三言怒鳴っただけであっても。(ひいき目に見ても、一番後から押したのであって、先頭に立ったわけではないのだが。)

 開発者が開発に全精力を注入していないのは確かだろう。当然だ。発注する側が全力で金を払っていないからだ。できるだけ安く、に対しては、できるだけ楽に、と対応するのが常識である。

 全力で金を払わない。⇒優秀な人が集まらない。⇒品質が悪くなる。⇒過剰労働になる。⇒更に品質が悪くなる。⇒よくないので値切る。⇒安くても雇える人を呼んでくる。
 これは単純な負のスパイラルではない。あちこちで分流して負の流れが渦巻いているわけだ。
 システムの品質を良くするのは簡単だ。倍の金を払えばよい。20年もたてば好循環が回りはじめるであろう。もっとも今改心しても移民労働者を利するだけになりかねないが。

 とはいいながら、開発者側にも良くない習慣がある。「見てみぬふりをする」。
 以前も書いたけどシステム開発というのは開発するシステムが直接見えないもんだから
「隠そうと思えば隠せるし、気が付く気がなければ気が付かない」
 システム開発に限らず、一般に問題が起これば、一刻も早く認識し、対処するのが当然とされる。しかしながら問題が起こらなければ何もしなくてもいいわけで、できたら聞きたくないのだろうな。後から考えると聞いておいた方が良かったわけだが、聞くは一時の恥、されど聞かざれば恥ならず。
 最初の疑問「障害対応がなぜ早く終わるか」は、否応なく問題点が見えたため「全社一丸となって」対処することができるからであろう。
 ということは、問題点が普通に見えれば対処する方法はアリ、場合によっては全社一丸とならずとも収拾できるはずである。ならばなぜうまく行かないのか。

 ここでプロジェクト管理というよく考えずに移入したやり方が絡むので話はややこしくなる。プロジェクト管理では、課題管理は問題と区別されており、うまく行かなかったことに対処する方法を課題というらしい。ところが「問題管理」と「課題管理」は違う、と宣言することによって「どうやって解決するか」という責任はうまい具合にスルーしているのだ。かくしてプロジェクト管理からはじき出された解決策の策定として経験的に語られるやり方は、せいぜい「残業」「応援」「スケジュールの引き直し」程度になってしまう。(明示的なコスト追加をしようとするとプロジェクト管理に戻んなきゃならないが、すでにプロジェクト管理のスコープからは追い出されている。)
 かくしてプロジェクトリーダーに「こういう問題があります」と報告しても「じゃあ解決しといて」とあしらわれることになる。なので問題を課題にするための手段がプロジェクトの中間管理職にない状態では、問題の指摘すら「めんどくさいこと」になる。だって「解決したか?」とトレースされることが増えるんだもん。かくして問題は隠される。うまく行くはずがない。

 では、うまく行くために仮定を措いてみよう。
 問題の解決策が見つかったとして、課題解決の追加コストはゼロであると。
 その場合でも「こんなことも自力でできないのか」とみなされることを嫌がる人間がいるかもしれないが、とりあえず問題は申告され、課題は解決方法も含めて検討されるだろう。
 いかにも早期に解決されそうではないか。

 ん?非現実的な仮定だって?
 そうでもないよ。新聞ダネになるほどの大きな問題であってごらんなさい。追加コストはゼロではないですが問題にされません。解決策を評価する基準は「実効性があるか」であり、いくらかかるか、ではなくなります。(ここでのコストには「オペレーションがひと手間ふえるんだけど」なんてのもあります。)
 つまり、解決策はあるのです。いろいろ叩くから出てこないのです。
 逆にコストを十分にかけてやれば、システムはあっという間に出来上がります。
 実は制限を緩めれば課題を解決する策をみなさん持っているのです。
 システム障害が発生すると、さほどの間を持たずして鎮静化することが、それを証明しております。

コンピュータネタ、目次
ホーム