自分なりに要件定義をやっていく

前書き

前回の記事にて「就活でこんなのあったら良い」というアイデアを書きました。
melheaven.hatenadiary.jp

今回はどういうシステムで実装いけば良いのかを書いていこうと思います。

要件定義

要件定義では5つのフェーズが重要とされています。

  1. 解決すべき課題とゴール
  2. システム的に実装したい機能
  3. 要求の実現性(予算・納期・技術)
  4. 検討結果を発注者へ(請求・納期・実装内容)
  5. 双方の合意

上2つを軸に考えていきます。
要求の実現性...?うーん、できるでしょ。知らんけど。
発注者関連は今回は無視します。

目的

「就活や研究室選びにおいて、入室前と入室後のギャップを小さくする」

解決策

「組織に属する人間の内部情報を自由に"組織に属している"と宣言した上で発信できる」

具体案

掲示板情報】
  • 現在属している研究室員・社員の情報を記載
  • 価値観・ビジョン・ギャップなど、組織の情報と人の個性に着目した情報を記載
  • 短時間で複数の組織の情報を獲得できる
  • 1名あたりの記載情報を1ページから得られる
【情報発信】
  • 自分の情報を1ページにまとめられる(CMSのイメージ)
  • ユーザー情報とTwitterを結びつける
  • ユーザーの匿名性を調節可能

機能の定義

今回はまずMVPモデルでの開発を目指します。
まずは"組織"の概念を捨てて、自分の情報を発信できるブログのような機能を開発していきます。(あくまで超超超最低限です)
ただアプリケーションの開発を進める中で"組織"の概念は必要なので、希望要件にて定義しておきます。

【 要件(MVPで開発する超超超最低限)】
  • アカウント登録機能
  • ログイン機能
  • エンジニアのマイページを作成する機能(ブログのような形式で書き換え可能/ CMS
  • エンジニアのマイページを削除する機能
  • エンジニアのマイページを変更する機能
  • エンジニアのマイページを公開・非公開する機能公開されないと組織内ユーザー一覧に表示されるが、ページは表示されない)
  • ページをキーワード検索する機能

必要ページ

  • ログイン・アカウント作成ページ
  • マイページ作成・編集・削除ページ
  • ページ一覧(検索画面)
【 要求(MVP開発に成功したらやりたい)】

エンジニアは組織に属していて、次段階では組織内でマスター権限を持つユーザーがエンジニアの参加を承諾する機能を開発したいです。ここもデータベース設計時に定義しておいた方が良いのですが、今の私には上を開発するだけで精一杯です。

  • エンジニアが組織に参加する事を要求する機能
  • 組織への参加要求を承諾する機能(承諾されないと組織内ユーザー一覧に表示されない)
  • 組織ページを作成する機能
  • ログ記録機能

必要ページ

  • 組織参加承諾ページ(組織のマスター権限を持つユーザーに限り)
  • 組織一覧ページ
  • 組織作成ページ
  • 組織内ユーザー一覧ページ
  • 組織権限管理ページ
【 要望(気が向いたらやる(やらない))】

将来的にこうしたい。する気は今の所ない。

  • 閲覧者も自身のページを作成可能
  • 企業と学生、研究室と学生のマッチング

上記の必須条件で解決される問題

  • 学生は企業に属する多数のエンジニアさんの「将来ビジョン」「価値観」「趣味」「業務」「入社の背景」を読める(学生のメリット)
  • 価値観やビジョンに共感した人材と出会える(企業側のメリット)

今後する事

一先ず必要機能とページを列挙しました。
次は各ページのUI設計、機能設計(処理内容・データ・操作)、データ設計をやっていきます。

qiita.com