A03 要件定義書の真実

A.システム開発のウラ側
File written by Adobe Photoshop? 4.0

君は要件定義書を見たか

自分自身の開発経験を思い出してみたのですが、実際に要件定義書を見たのは1回しか記憶にありません、特に、非正規社員のような短気作業に就いた場合、現場で指示してくれた人に従って、ただただ坦々と作業をこなしていたように思う、今思うのは、どのような状況であろうと自分がプログラミング担当として参加したのですから、開発システム全体のどの位置にあるプログラムなのかを把握すべきだったと反省が残りますね、自らが作成したプログラムがどのような環境時に実行されるのか、あるいは、エンドユーザーがどのような要求を出した時に実行されるか知らなかったりするわけです、今思うと、存在価値もわからず物づくりをするなんて、物づくりの楽しさを感じているとは言えませんね、もしかして、要件定義書は要望すれば見せてくれたのかもしれない、誰でも閲覧できるフォルダーに存在しているか、どこかのキャビネットのキングファイルで保存されているかもしれませんね、存在の有無さえ知らなかったのです

子供の頃、あるテレビで見たドラマのタイトルが「君は海を見たか」でした、それを思い出して「君は要件定義書を見たか」としてみました、ドラマ内容ですが、ある男の子が小学校で真っ黒な海の絵を描いたのです、この子は海を見たことがありませんでした、この子の父親は仕事仕事の毎日で我が子の現実に愕然とするのでした・・・・

会議参加者全員を我に返らせた一言

激論伯仲、誰しもがそんな会議を経験しているでしょう、ある時の会議、参加者の一人が声を荒げて言いました「あれ、要件定義書から逸脱していないか、確認してみよう」その瞬間、参加者全員が我に返ったのです、気がつきましたか、議論に熱中しているあまり、要件定義書に存在しない事柄についての議論をしていたのです、この時の会議の様子は忘れられない思い出として残っています、議論を戦わせているうちに負けまいとする発言者の心はありとあらゆる発想をするものなのです

要件定義書のウラ読み

開発技術者達は要件定義書に記述されている事柄の実現に向けて作業に取り組んでいます、ですから、要件定義書に記述されていない事柄は作りこみをしなくて良いことになります「あの機能が必要なのでは」「こんな機能も足りないのでは」開発担当者達はいつもこんな悩みを持ちながら開発作業をしているわけですね、とにかく「要件定義書の範囲外なら不要」これが鉄則です、もし、開発側の営業担当がいたら、営業は要件定義書の一件一件について、ユーザーへの請求金額を算定しているはずです、もし、要件定義書に存在しない機能をシステムに盛り込んだら、それはタダ働きでしかありません、そんな箇所に致命的なバグが出たら、まさに、踏んだり蹴ったりです

そちらにすべてお任せします

こんな話を平気でするユーザーは意外と多いでしょう
実はこれ、大問題なのです、何を望んでいるシステムなのかを明確に聞き出せていないと開発側での勝手な忖度が働き、余計なプログラミングが大量に発生する要因になります、かつ、プログラミング量に見合った開発金額をユーザーは支払わない可能性が大なのです、何故、こんな案件を受注するのでしょうか、それは、自社の経営が順調ではないから、もしくは、自社の営業が受注案件をろくに調査せず「とにかく金になる」そんな思いで引き受けてしまうからです、例えば、在庫管理ってどこまでやる在庫管理なのでしょう、本当に在庫を管理するだけなのでしょうか、ユーザーの希望はおそらく違うでしょう、入荷、出荷、棚卸、はたまた、返品、値引き、年処理、月処理、年処理、帳票、決算、・・・・正直言ってキリがありませんね、それを「在庫管理を作ってくれ、お宅にすべてお任せします」のユーザーの一言のみで一括受注したら、開発者達は徹夜徹夜となるエンドレスな開発をするはめに陥るのです

では、どうすればよいのか、要件定義書は必須

正解はユーザーから聞き取り調査を行い、要件定義書を作成させて、一件一件について金額や期間そして作成順序を確認することです、急ぐ機能、来年以降でも良い機能を明確にしましょう、要件定義書の作成は必須なのです、どんなに大変でも、時間が無くても、ユーザーが嫌がってもです、そして、要件定義書の内容をユーザーに確認してもらいましょう、可能な限り、簡単な箇条書きであったとしても必要です、そこに記述されていない開発は不要です、ここが嬉しい、契約、作業環境、受注代金、これらは開発者の担当範囲を超えていますので、理想は開発者、管理職、営業担当、この3人がユーザーとの会議に参加することです、ところで、ユーザーとのシステム内容の話を行った時、ユーザーから発せられる状況説明や業界用語をあなた(開発者)は理解できますか、そうなんです(古いギャグ)気がつきましたか、開発側にスーパースター(前回投稿を参照)がいなければユーザーとの対等な会話は難しくなります、ここで「なんだ、この会社は、レベル低いな」とユーザーに思われてはいけません、何があっても、ビジネスは信用重視の世界なのです

コメント