2021/11/18
要件定義とは?を解決する。
要件定義とは
作って欲しい人と作る人の間で「これを実現しましょう」という合意を定めることです。
要件を日常的な単語に置き換えると「注文(オーダー)」が妥当なものになり、
作ってほしい人が 作る人に出す 依頼事項(リクエスト)
ということになります。
書籍 はじめよう!要件定義 〜ビギナーからベテランまで〜
この本を読もうと思ったのか
エンジニアとしてコードをかいたり、技術的なところを磨くことは大事だが、お客様が満足できるサービスを提供するいい仕事や効率のよい仕事をしようと思ったときに、最初の要件定義のところをおざなりにするとお客様にも喜んでいただく仕事ができない、最初の要件があいまいだったばっかりにせっかくつくった機能をもう一度やり直し、自分に時間的な負担もかかり、お客様に迷惑がかかるなど誰にとってもいいことがない状況になり得るので、お互いのためにいい仕事ができるようにしっかりと要件定義をできるようにしたいと思ったので読みました。
なぜ要件定義をするのか?
世の中には「お任せ」というオーダーやリクエストもよく見かけます。ではなぜ要件が必要なのか。
たとえば「美味しいものを作って」と依頼したとします。その依頼に基づいてコックさんがコックさんなりに考えた結果、ニンジングラッセを作ったとします。でもリクエストした人がニンジンが苦手だった場合、そのニンジングラッセが本当においしかったとしても決して受け入れることができないでしょう。
もしあなたがコックさん側だとしたら「だったら先にニンジンはNGって言っといてよ」という気持ちになると思います。そうならないように、納めるために必要な条件を後出しにするのではなく、先に提示して合意した上でその仕事を行うことが大切で
言わなくても伝わる「はず」という仮説のもとにお互いに仕事を依頼したりされたりし、その結果生じる困り事を事前に回避するための知恵それが要件定義です。
定義すべき要件の内訳
・UI
・機能
・データ
UI
UIとはUser Interface(ユーザーインターフェイス)の略です。「ユーザーに接するもの」
代表例は画面(スクリーン)です。PCのみならずスマートデバイスの急速な普及によってUIといえば画面の話になることが大半です。UIとは基本的に画面系である前提に話を進めます。
機能
機能とは「ソフトウェアにやらせる仕事」の総称です。
たとえば、「消費税を計算する」などが機能になります。
データ
3つ目がデータです。先程の「消費税を計算する」という機能の場合計算結果の消費税はデータです。また計算の基となる「売上金額」もデータです。
この3つの要素「UI」「機能」「データ」が明確に定まってそこで初めてプログラマーはソフトウェアを作ることができます。つまりこの3つの要素がソフトウェア開発における要件として必要な情報になります。
ゴール=完成したソフトウェアの状態とは
「完成したソフトウェア」というゴールを達成するには
そもそも何をもって完成したと納得できるのか
ということを考える必要があります。作り手が側がいくら「ちゃんとできました」と言っても依頼主が
納得しない限りは完成したとは言えません。
依頼主はいったい何をどうすることで完成しているかどうかを確認することができるのか、それは、
UIを通じてソフトウェアを操作することによってです。
その上で操作に対してきちんと機能が動作すること
さらに必要なデータが保持されていることつまり、機能が必要とするデータがきちんと揃っていること
が大事になります。
この本の内容をまとめると
画面遷移図を描こうになります。それ以外は要件定義そのものではなくその前後の工程で行うべき作業だということです。つまり、要件定義は上流工程ではなく中流工程であると言えます。企画と実装の間のブリッジそれが要件定義です。他の工程と混ざっているところを丁寧に削ぎ取った結果、
(UI、機能、データ)になり、それらを図示化したものが画面遷移図になります。
(例)
業務で活かせることができる点
自分自身も入社前に自らのポートフォリオ作成を設計から経験し、アプリケーション詳細設計書、画面遷移図、テーブル定義書、ER図、ワイヤーフレームなど制作しましたが、
画面遷移図に関してはこのページにこのボタンがあって、押すとデータが作成され、別の画面に遷移する。作成が失敗すると元の画面でバリデーションメッセージを表示させるなど、遷移図を描こうとしたら一つ一つの機能をしっかりイメージでき、把握していないとできないと思いました。
画面遷移図はアプリケーション開発の実装中に、ここはどうだったかな?どれくらいの機能をつくる必要があるのか、期間はこれくらいかかるかななど、その都度自分が迷わないための道標的な役割を果たし、依頼者にご満足いただけるものを提供することにもつながるのかなと思いましたので、業務でも実践していきたいです。
Author Profile
スターフィールド編集部
SHARE