同じ方向を向く勇気(前編)
(青年)では改めて質問します。システム開発はどこまでもシンプルなものだというのが先生のご持論なのですね?
(哲人)そうです。システム開発は信じがたいほどにシンプルですし、人生もまた同じです。
(青年)人生の話はいいですよ。
(哲人)いいでしょう。人生の話はさておき、システム開発はシンプルです。
(青年)いや、私は騙されませんよ。私の父は生前、中小企業の社長をやっていましたが幾度となくシステム開発では失敗してきました。
(哲人)なるほど、おもしろい。
(青年)そんな父が去年亡くなり、私が跡を継ぐことになったのです。父が息を引き取る間際、私の手を握ってこう言いました。「開発会社には気を付けろ」と。
(哲人)ふふふ。
(青年)ですから私は誓ったのです。「現代のビジネスにおいてシステムは不可欠だ。しかし今後の開発では絶対に失敗しないよう、開発会社に完全な要件定義を作らせて、メジャーリーガーのトレード契約ばりの厳格な契約書を取り交わしてやる」と。
(哲人)完全な要件定義と厳格な契約書。それでうまくいくとお思いですか?
(青年)いきますよ!いやー、あなたは実に酷い人だ。私はあなたのその余裕綽々の態度を改めさせ、システム開発は複雑だが、要件定義と契約さえ厳密に取り交わせば理想通りのシステムができあがると認めさせてやりますよ。
(哲人)今宵は楽しい夜になりそうです。私は逃げも隠れもしません。ただ、システム開発の成功の鍵は、そんなところにはありません。システム開発は常にシンプルなのです。
(青年)シンプル?
外からもアクセスできる業務システムをオンプレで組もうと思ったら、光回線引いて固定IP取れるプロバイダーと契約してルーターにNATの設定して、サーバにlinuxインストールして、apacheとmysqlとPHP入れて、html5とcss3とjavascriptでフロントコーディングしなきゃいけないという昨今のシステム開発のどこがシンプルだと言えるのですか?
(哲人)・・・システム開発の成功の鍵は「同じ方向を向く勇気」その一言に尽きます。
(青年)同じ方向を向く勇気!?あはっ。そんなキーワードは「ITパスポート試験」にも「MOS試験」にも出てきませんでしたよ。
(哲人)みな、勘違いをしているのです。
(青年)いいでしょう。私が主張する「完全な要件定義と厳格な契約書」が正しいのか、先生のおっしゃる「同じ方向を向く勇気」が正しいのか。今夜は徹底的に語り合いましょう。
(哲人)そうしましょう。
------
(青年)さて、始めにお伺いします。先生は「今からシステムを開発しようとするときに、わたしたちユーザー企業と開発会社とでゴールを共有しなければならない」ということに異存はありませんよね?
(哲人)ゴールを共有。それは必要です。
(青年)語るに落ちましたね!そのゴールを定義したものが要件定義ではありませんか!?
まずわたしからすべての要求を伝え、開発会社がそれを要件定義としてまとめ、それをゴールとしてしっかり共有して、そこに向かって一致団結し努力する、それがシステム開発の成功につながるのです。
(哲人)そうではありません。
(青年)なんですって!?
(哲人)では逆にお聞きします。あなたはこれからシステム開発をお願いしようと思うときに、「システムの完成体」というのが説明できますか?
(青年)それは私はプロではないので、細かいところはわかりませんよ。
しかし、「こういう処理ができる画面が必要」とか「この画面は何秒以内で表示されなければならない」とかいう要求はできます。それらを要件定義に書いてもらえば、それが実現されない状態イコール不具合であるということになります。
(哲人)なるほど。あなたの中では一応システムの完成体のイメージがあり、それを漏れなく洗い出せるというわけですね。それでは、あなたが書いたその説明文や図を読んで、開発会社のシステムエンジニアは正確に意図を汲み取れますか?
(青年)ぐっ。
(哲人)システム開発は、目に見えないものを作る仕事です。あなたが目に見えないものを思い描き、それを文章や図で表現する。それをまったく生まれも育ちも異なる赤の他人のシステムエンジニアが読み解いて同じシステムを想像する。そんな芸当が本当にできるのでしょうか?
(青年)難しいかもしれませんが、やるしかないでしょう!あぁ、先生は本当に意地悪な人だ。
それ以外に方法がないのだから、出来る限り伝える努力をするのです。それをしなければ、開発会社も何を作ったらよいか分からず、何を作ったらよいか分からなければ正確な見積りも出ないでしょう。
(哲人)ふふふ。まさにそこです。しかし、いいでしょう。それではあなたはできるだけ努力をして要求を伝え、開発会社も一生懸命それを読み取り、精緻な要件定義ができあがりました。そしてそれに合わせる形で見積書ができました。次は何をしますか?
(青年)そしたら契約です。
(哲人)私はその時点で意味なく高い見積りになっていると思いますが、そのまま契約も済ませてしまったとしましょう。その後はどうなりますか?
(青年)ははっ。あたりまえじゃないですか。後は、開発会社がひたすら要件定義にある機能や性能を実現するだけです。
(哲人)そうなりますね。しかし、現実にはそこからが地獄の始まりです。大抵システム開発会社は、こんなことを言ってきます。「よく検討するとこの機能がないと業務が回らないと思います。いかがしますか?」と。
(青年)契約前にこちらの要求はしっかり出し切っているのでそんな事態は想定してませんが、「もしもそんなことをいわれたら?」の仮定の話として聞いておきます。業務が回らないなら作っていただくほかないでしょうね。
(哲人)作るなら「○人月のコストアップです」と言われます。「要件定義にありませんでしたから」と。
(青年)ええっ!?業務が回らないのであれば、欠陥住宅のようなものでしょう?二階に風呂を作ったけど配管がない、みたいなことですよね?それはプロとして許されないことです。
(哲人)そうですね。確かに住宅建築ならそんなことはありえませんが、目に見えないものを作るシステム開発ではしょっちゅう起きます。
この記事の後編へ
株式会社plumsa(プラムザ)では、サーバー運用保守サービスも提供しています↓