エンジニア転職日記

エンジニア転職に向けての日記です

サービス設計①

概要

プログラミングスクールの卒業要件であるフリマアプリの開発が終わったので、今週からオリジナルアプリの制作に取り掛かっています。

今回は、オリジナルアプリのサービス設計についてまとめました。

作成するアプリケーションは、

「小学生の親がプログラミング教育に関してメンターを探せるアプリ」です。

メンターさんと話し合った際に作成したスライドを載せておきます。

f:id:shangang7321:20200905091148p:plain

大まかな流れ

アプリケーション開発は、大きく分けて5つの工程で行います。

企画→要件定義→設計→開発→保守/運用

の順番です。

企画

どんなアプリ(機能)を作るか決める段階のことです。企画では始めに、「誰のどんな問題を解決したいのか」を決めます。これが決まったら、解決手段として新しくアプリを作る、またはすでにあるアプリに機能を追加します。

要件定義

作るものの詳細を決める段階です。ユーザーがどのような機能を使用するのか考え、言語化していきます。

設計

どんなコードを記述するのか、どんなテーブルを用意するのかを決める段階です。エンジニアが実際にどのようなアプリを作っていくのかという手順書や必要な設計図を作ります。企画、要件定義、設計が終わってはじめて、実際にコードを書く段階に入ります。

開発

実際にコードを記述していく段階です。インターネットに接続していない状態でまず開発し、完成したらインターネット上にアップロードします。これをデプロイと言います。デプロイの手順は他の記事でまとめています。

 

shangang7321.hatenablog.com

 

保守/運用

アプリが公開されたあとの段階です。どれくらいの人数を使われるものなのか、どれくらい重要なものなのかによって保守/運用のやり方は変わります。医療や金融などはミスが許されないので、何重にも対策が練られます。

サービス設計の手順

具体的に、今回開発するアプリケーションを例にサービス設計を行っていきます。

企画

企画は、「どのようなアプリケーションを作成するか」を決める段階です。

大切なのは、「誰のどんな問題を解決するか」という視点です。

まずは、「誰の」にフォーカスして企画を考えます。

ペルソナ

ペルソナとは、マーケティング用語で「サービスを使用するユーザー」のことです。年齢層や職業、性別や現在の境遇などまで決めることで、よりリアルにユーザーの目線でサービスを考案できます。

今回のペルソナは以下のように設定しました。

年齢、性別:30代後半、女性
職業:パートタイマー、子育てに専念
家族構成:夫、3歳上の会社員、息子、8歳
子どもの教育について心配しているが、家庭教師を雇う余裕はない。
プログラミングは自分が全く関わっていないので、抵抗感がある。

 このペルソナから読み取れる課題は、下記の2点です。

・プログラミング必修化に不安を覚えている。

・家庭教師を雇うほどの金銭的な余裕は無い。

次は、この課題をどうすれば解決できるのかを考えます。

 

ユーザーストーリー

ユーザーストーリーとは、「ペルソナの課題に対して、どのような機能で解決していくのか」を明確にしたものです。

ペルソナの課題はこの2点でした。

・プログラミング必修化に不安を覚えている。

・家庭教師を雇うほどの金銭的な余裕は無い。

この課題を解決するためには、プログラミング教育に関して、安価で相談できる相手を探せることが必要です。つまり、メンターと親のマッチングプラットフォームを構築することが必要です。機能に落とし込むと、以下のようになります。

・メンター一覧機能がある

・メンターのプロフィールが見られる

・メンターのプロフィール編集機能がある

・決済機能がある

・ログイン機能がある

他にも、DM機能やメール通知機能、サブスクリプション課金機能などある方が便利そうですが、一旦は最低限の機能で実装していきます。

これで、企画の工程はひとまず完了です。

要件定義

要件定義とは、開発者などがアプリケーションの仕様を把握するために、詳細まで言語化することです。ユーザーストーリーの段階では、人によってそれぞれの機能の完成形のイメージが異なります。したがって、開発に関わる人全員で共通認識をもつために、要件の定義をしていく必要があります。

要件定義は、ページごとに書くと見やすくなります。

今回のアプリの要件定義は以下の通りです。

トップページ

【ボタン】
・ログイン、新規登録
・ログアウトボタン
・メンターログイン、新規登録
・メンター詳細へのリンク
【表示】
・メンター一覧(名前、写真、簡単なプロフィール)

ログイン、新規登録

【ボタン】
・送信
【表示】
・メールアドレス、パスワードでログイン
・名前、メールアドレス、パスワードで新規登録

プロフィール作成、編集

【ボタン】
・送信
【表示】
・タイトル
・写真
・自己紹介

メンター詳細

【ボタン】
・決済画面へのリンク
・一覧表示へ戻る
【表示】
・タイトル
・写真
・自己紹介

決済画面

【ボタン】
・決済ボタン
・メンター詳細へ戻るボタン
【表示】
・カード情報入力するフォーム
・契約するメンター、金額を表示

 

以上で要件定義は完了です。次回、設計の段階についてまとめます。