まえふり
自社企画であれ、受託開発であれ、WEBサービスやモバイルアプリの開発をしていると、事前に考えておくべきことが抜け落ちたりして、開発の最後に工数が上積みされることがよくあります。また、工数が上積みされるだけならまだいいのですが、作業をやり直さなくてはいけなかったり、発注者と要件についてもめたりします。
そんな経験を何回かやるなかで、できるだけ開発プロセスが抜け落ちないように工夫してできたのが、以下の内容です。実際は、もっと詳細にそれぞれの項目について記述しているのですが、ここでは概要という感じで簡単に紹介したいと思います。
内容について
ここでは、「WEBサービスプロトタイピング道場」で扱う内容の一部を抜粋して紹介しています。追加情報に興味がある方は、「WEBサービスプロトタイピング道場」へお越しください。
6つの視点
- 顧客視点
- 運営視点
- 設計視点
- 品質視点
- 実装視点
- 運用視点
想定する受託開発のサイズ
予算50万から500万くらいで、納期が1ヶ月から6ヶ月くらいのものです。それ以上のサイズのものはあまり想定していません。500万の場合は、プロセスAからFまでを5,6周するイメージです。
A1. コンセプト
プロジェクトについての質問に回答します。Name、What、Why、How、Who、When、Where、How much、How many、Vision、Customer、Problem、Solution、Channel、Cost、Revenue。
A2. ペルソナ
想定ユーザーを可視化します。デモグラフィック属性、サイコグラフィック属性、ITスキルなど。
A3. ユーザーストーリー
What: なにをやるのか? ◯◯ が、 ◯◯ をできるようにする。Why: なぜやるのか? ◯◯ という課題があり、これができるようになることで、◯◯ になるからだ。
A4. 案件タイプ
システム概要、システムカテゴリー、必要機能、こだわりポイント、ロードマップとマイルストーン、(a)クライアントサイド、(b)サーバーサイド、(c)データフロー、(d)インフラ、(e)ダウンタイム
A5. ペーパープロトタイプ
サイトマップ(画面一覧)、スクリーン(画面構成)、(a)画面の分類、(b)画面命名、(c)参考デザイン、ユーザーフロー(画面遷移)\=> コードサイズ/複雑さ、ルーティング数/API数、スキーマ定義
A6. ワイヤーフレーム
ViewのStateを把握する、POST系アクションを把握する、Databaseから取得するデータを把握する、View内のリンクを把握する
A7. カラーリング
カラーパレット作成、必要なグラフィックを把握 、ワイヤーフレームの色入れ、Sketchのグループでclass名設定、marvel / flinto の作成
B1. 運営組織
ブループリント、運営に関わる人のロール/ペルソナ、ロール別の業務内容、採用計画など
B2. マーケティング要件
インバウンドの設計、マーケティングコスト、プロモーションの要件、イベント企画など、テクニカル要件など
B3. セールス要件
アウトバウンドの要件、セールスコスト、見込み顧客リスト、パートナーリスト、提案資料、契約書類、利用マニュアルなどの作成、セールスのテクニカル要件など
B4. サポート要件
カスタマーサクセスの定義、サポートの人的コスト、サポートマニュアル、サポートのテクニカル要件、サポート利用ツール(テクニカル要件)
B5. リーガル要件
商標、特許、不正アクセス防止法、特定商取引法、消費者契約法、下請代金支払遅延等防止法、古物営業法、個人情報保護法、金融商品取引法、特定電子メール法、資金決済法、景品表示法、著作権法、薬機法
B6. 収支構造
ユニットエコノミクス(CAC/LTV/損益分岐点)、損益分岐点、コスト(コストシステム費/人件費/一般管理費/原価ベース)、料金表 (pricing)
B7. 事業メトリクス
分析指標の可視化
B8. 管理画面
運営に伴う作業(自動/手動)、管理画面設計
C1. 設計レビュー
A4(案件タイプ)、A7(Marvel/Flinto)、B8(管理画面)の内容から、画面一覧、画面構成図、画面遷移図、ER図をエンジニアの視点で再度検証し、仕様書を作成する。
C2. 開発ツール選定
仕様書に合わせて、開発ツールを選定する。Rails, React, Swift, Java, AWSなど。
C3. アカウントの取得
メールアドレスを用意し、アカウントを取得。二段認証、電話番号登録などを設定し、パスワード管理ツールに登録。
C4. チケット作成
開発で必要になるコードを小さなデモとしてたくさん作る。どんなデモを作るのか、1つのデモあたり1つチケットを作成する。利用するライブラリ、APIの調査、ドキュメントの調査をする。
C5. 静的プロトタイプ構築
A7(Marvel/Flinto)からコーディング作業をする。ブラウザの場合は、Slim/Sassなど。iOSの場合は、Auto Layout。Androidの場合は、XML。
C6. サンプルコード作成
C4のチケットの分だけ、サンプルコードを作成する。CodebotにDiffを使ってコード作成の手順を記述する。
C7. 事業工数の見積り
C1~C6 を参考に、工数を見積もる。
D1. テストケース
正常と異常を定義し、テストケースを実装する
D2. ベンチマーク設計
計測対象を定義し、速度の優先度を決めるサイトのレスポンスタイムやDBのロード時間など”
D3. セキュリティ要件
安全性の優先度を決める
D4.高トラフィック要件
同時アクセス数のスケーラビリティ。AutoScaleの利用など
D5. UI/UX要件
システムを利用する時の、定性的な感覚の要件。なんとなく使いづらいなどへの対応について。”
D6. システムアップデート
利用しているミドルウェアのバージョンアップやセキュリティパッチへの対応について
D7. 依存する外部サービス
利用しているSaaSサービスやAPIがダウンしている場合の対応について
D8. 不具合の発見と修正
不具合の報告方法、不具合が発見された場合の修正手順
E1. 開発環境セットアップ
ローカルでの開発環境構築手順、リポジトリの管理、CIやテスト環境、Staging環境、デプロイ手順など
E2. サーバーサイド/テスト
サーバーサイドの実装とテスト
E3. クライアントサイド/テスト
クライアントサイドの実装とテスト
E4. インフラ/テスト
インフラの構築とテスト、基本的にはプロビジョニングで自動化。
E5. 全体テスト/手動テスト
テスト要件から自動テスト、その後で手動テスト
E6. セキュリティテスト
セキュリティ要件からテスト
E7. リリースチェック
Production環境へのデプロイ。アプリはストア申請。
F1. サイト監視
サイトの監視レポートの自動生成
F2. クラッシュレポート収集
サイトのクラッシュレポート/バグレポートの自動生成バグ発生時は手順に従って修正し、再度デプロイ