0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【振り返って考える】システム開発の要求と要件ってなんだっけ?

Posted at

 アイスブレイク(創作)
 偉い猫は言いました「スカウトサービスを作れば雇用が流動的になり、企業も求職者もハッピーになる」と……
 反抗的なチンパンジーは問いかけました、「そのスカウトサービスはどの業界をターゲットにしてどのようなユーザーペルソナが考えられますか?ユーザー層によってはモダンなデザインよりレガシーなものが良いような気もするのですが?」
 偉い猫は言いました「それが要件」だと……
 チンパンジーはあまりのショックで台パンし懲戒になりましたとさ。めでたしめでたし

要件と要求ってなんなの

 そもそも「要求」と「要件」の違いって何なのか?私はこう定義しました。

要求
要求は顧客や利害関係者が「システムに」やって欲しいことを定義
要件
要件定義は顧客や利害関係者の視点を元に「システムが」行うべきことを定義

 基本的に利害関係者がこうしたいよねーって脳内だけで言語化されていない考えを、実際のシステム想定で何をしたいのか具体的にしたものが要件になるはずです。

 Q:じゃぁ要件=設計というところ?
 A:設計って言っちゃうと満足して会話しない利害関係者がいて面倒なんすよ。設計終わってるんでしょって……思い出したら「レバ」に一発打ち込みたくなってきた。

んじゃ要求って何なのさ

 例えば……要望として「私はトピックをユーザーに提供し快適にブラウジングを提供するために、それを記述したページに飛ぶリンクをだしたいん……だ!!」ってしましょう。

 面倒なんでぱっと分解したいことを画像化してきました
42d98727-60b7-47c1-8c0e-7ea1c2cf4603.png
 
 要望を分解すると以下の情報が出てきます

1. リンクを出したい
2. どんなトピックを出すのか?

 抽象的な一文を分解して具体として表現するこれを要求定義でもいいんですけどねぇ……もっと踏み込むと主語をつけたいなと。
 WEBサイトなんかはシステムがXXXするだけの主語じゃないですよね?ユーザーがどのように見てどう感じるかも要求の条件の一つになります

1. システムは画面にリンクを出したい
2. システムは特定の条件を満たすXXXを検索する
3. ユーザーはそれをXXXのように見たい

 とより具体的なところに分解されていきます。
 こいつをより具体にすると要件になりますね。

1. リンクの出し方
2. 呼び出しの流れ(画面遷移の情報など)
3. 情報の検索条件の決定
4. どのような情報が返却されるべきか
5. etc

結論:要望から要求、要件の一連の流れはより具体にしていく作業であり抽象的なものを排除していく作業

「先生、実装しているんですがXXXの情報って何ですか?」

 まれによくこういうことが起きますよねー……これもまたアジャイル(?)
 アジャイルだから要望はそのままでも開発できるだろと偉い猫が昔言ってた気がしますが、何のためにイベストとかユーザーストーリーとかステークホルダーを巻き込んだ手法があると思ってんだ!!
 さっさと要望を分解するんだよ90度!
 結局やりたいことを具体化するのはどんな開発手法やどんなチームでも変わらず、それを隠蔽すればするほどのちのタスクで手戻りが発生してしまうんですよね。
 アジャイル、ウォーターフォール関係なく、まともに機能しなくなるのでできるなら要件で細かいのは無理でもある程度、利害関係者の「脳内.zip」を解凍しておきたいですね。

例:アジャイルでの要件

 基本的にアジャイルでも要件定義ライクなものが必要になります、ウォーターフォールみたいにガチガチじゃなくより抽象的なものにはなるのですが……
 そうですね……メタバース向けにクリエーターが3Dモデルやエフェクトを販売できるサイトをつくろうと私が考えていたとしましょう。
 一部を除きどのような企業もまず「Who」「What」「How」を記述すると思います。

  • 「私」はクリエータの販売ページを管理する
  • 「私」は購入者の情報を管理する
  • 「私」は売り上げをクリエータに還元する
  • 「クリエーター」は商品を登録する
  • 「クリエーター」は商品情報を更新する
  • 「購入者」はhogehogehoge

 Whyも書いた方がいいんだけど、今回は省いています。
 これにより商品?売り上げ計算?還元するには領収書とかは?とかとか詰めていけば細かく出てくるはずです。
 それがユーザーストーリーマッピングってやつですね。
ここら辺おろそかにしたまま、いきなりバックログに落とし込もうとしたらアジャイルは死にますね

最後に

 要求分析、要件定義、基本設計、詳細設計となんか専門的なことを言っているように見えるけど……抽象的なことを具体的にしていく作業なだけなんですよね。
 どこまで具体的にすればいいか分からない最初のうちは、実際の課題を自分なりに分解してみたあと10分寝てもう一度見直した時に疑問点がありそれが自己完結できるのであれば具体が足りないのでもうちょっと分解してみましょう。
 第三者を巻き込まないといけないとなれば、それは課題の方に割り振られますが。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?