ソフトを開発する時に一番最初にしなければならないこと、それは何を作りた いのかをはっきりさせることです。これを「要求分析」と言います。これの重 要性はくどくど述べる必要もないでしょう。何を作ったらいいのかもわからな いのに、どうやって物を作れっていうんでしょう?
これは当たり前のように見えますが、現場では案外できていません。多くの場 合、これをしっかり考えずに「まず出来る所から手をつけよう」とプログラミ ングを始めてしまいます。そして、要求ではなく実現レベルで物を考えがちで す。良くある例は「以前手で書いていたこの帳表をパソコンで印刷できるよう に」という要求です。本当にしたいのはそんな事ですか?それが本当に客先の 要求であることもありますから一概には言えませんが、本当にしたいのは「帳 表を印刷する」ことではなく「管理する」ことのはずです。パソコンを使えば 以前の帳表なんかよりずっと便利で見やすい帳表ができるはずですし、いちい ち紙に印刷しなくても画面だけで手軽に操作ができるはずです。昔のやり方に こだわっていると、それが非合理的なものであればあるほどソフトが作りにく くなります。
「要求」と「実現方法」をきっちり分けて考えないと、もっと効率的で良い実 現方法を考えようという気がなくなってしまいます。以前のやり方の悪い点ま でわざわざ手をかけて真似することになってしまうのです。これでは時間も無 駄になりますし開発者の士気にも影響します。だから「要求」をきちんと考 えそれについて最良の「実現方法」を考えましょう。 多くの場合、最良の実現方法が一番プログラムが楽に作れます。それは要求を 一番素直に実現する方法だからです。ソフトの世界ではシンプルイズベストな のです。だから最良の実現方法を考えるための土台として「何が要求されて いるのか」をまず考えて下さい。
要求分析では、システムに何ができなくてはいけないのかをすべて明確にしま す。要求分析の結果は「要求仕様書」という文書です。この文書では、これか ら作るソフトにどんな機能があってどんな性能を発揮しなければいけないか を記述します。この文書は開発側と依頼側の双方によって作られ一種の契約 書の役割をします。いったんこの文書が取り決められたら、ソフトの開発契約 は「この文書に書いてある事をすべて満たすシステムを○日までに○○円で受 注します」という契約を交わすことになるのです。この文書にない機能は「そ れは契約にはないので別途見積らせていただきます」となりますし、出来てき たものが要求に満たない場合は契約違反だということになります。要求分析は 金銭に直結する大切な作業なのです。
例え社内開発で契約や金銭の問題が起きないとしても要求を明確にするのは 大切なことです。「だから何をすればいいか」というのを考えやすくなるから です。