Lesson3 タスクばらし

タスクばらしとは、仕事にとりかかる前に、仕事をタスクにばらすこと。

タスクばらしができると、無駄な仕事をせずに済んだり、自分の仕事を把握し自立して仕事できるようになる

  • 仕事の要素を分解
    • 進め方の道筋をたてる
    • かかる時間やリスクなどの見通しを得る

タスクばらしの方法とコツ

タスクを1時間以内で終わる単位に小さくばらすのがミソ

  • 方法

    1. ゴールを確認・理解する
    2. ゴール達成のために必要な項目をリストアップする
    3. 実行順に並び替える
  • コツ

    1. 小さく分解すること -> 1時間以内で終わる単位で分解する

タスクを洗い出す (読書ログアプリの場合)

  • トップページ
    • 登録ページへのリンクを貼る
    • データベースから読書ログの一覧を取得する
    • トップページを HTMLで表示する
    • トップページのスタイルをCSSで整える
  • 登録ページ
    • データベースに読書ログを保存する
    • 保存したらトップページへリダイレクトする
    • 登録ページをHTMLで表示する
    • 登録ページのスタイルをSSで整える
  • Web上に公開
    • Herokuのアカウントを作成する
    • Heroku上でアプリケーションを動かす
    • Heroku上でデータベースと連携する

これでもまだ多くの技術要素が混じってて難しい
PHP, DB, HTML, CSS, Heroku

小さく、1つずつやろう

まずは簡単なところから。技術要素を1つずつやっていこう

  1. テキスト版アプリケーションを作成
  • PHPのロジック部分を扱う
  1. テキスト版アプリケーションをデータベースに対応させる
  • PHPからデータベースへデータを保存・取得する部分を扱う
  1. Webアプリケーションを作成
  • HTML, CSSでWebページとして表示する部分を扱う
  1. Herokuを使用してアプリケーションをWeb上に公開
  • Web上で動作させる部分を扱う

タスクにばらそう(読書ログアプリの場合)

  1. テキスト版アプリケーションを作成
  • 読書ログを表示する
  • 読書ログを登録する
  • メニュー化し、アプリケーションとして動作する
  • 複数の読書ログを登録・表示する
  1. アプリケーションをデータベースに対応させる
  • 読書ログを保存するテーブルを作成する
  • PHPからデーターに接続する
  • 読書ログをデータベースに登録する
  • 読書ログをデータベースから表示する
  1. Webアプリケーションを作成
  • [登録ページ]HTMLで表示する
  • [登録ページ]読書ログを登録する
  • [読書ページ]CSSでスタイルを整える
  • [トップページ]HTMLで表示する
  • [トップページ]読書ログの一覧を表示する
  • [トップページ]CSSでスタイルを整える
  1. Herokuを使用してアプリケーションをWeb上に公開
  • Herokuアカウントを作成する
  • Heroku上でアプリケーションを動かす
  • Heroku上でデータベースと連携する

Microsoft ToDo と連携

以上のタスクばらしで作ったタスクを実行するだでの段階になると、そのタスクの管理方法が必要になる。
takeshi-gはMicrosoft謹製ToDoアプリ、「ToDo」にタスクを落とし込んで、タスクを一個づつ実行できるように環境整備してみた

To Do へようこそ

Lesson3 プログラムの作り方2 要件定義

システムを作る上で、「必要な条件」を定義してシステムに落としこめるようにしよう。

  • 業務要件
    • 業務フロー
  • 機能要件
    • ページ遷移図
    • WF(画面図)
    • 機能
    • データ
  • 非機能要件
    • 性能
    • 拡張性
    • 可用性
    • セキュリティ
  • 運用・保守要件
    • 運用体制
    • 保守体制
    • 障害時体制

業務要件(業務フロー)

登場人物ごとに業務(行動)の流れを図にしよう

人物 — 業務フロー

自分 — サイトを開く –> 読書ログを登録する –> 読書ログを閲覧する

自分 — サイトを開く –> 読書ログを閲覧する

機能要件(ページ遷移図)

必要なページを洗い出して、ページの流れを図にしよう
ページ遷移図

機能要件(WF・機能・データ)

ワイヤーフレーム、機能、データをページごとにまとめよう

「トップページ」

トップページ

「登録ページ」

登録ページ

Lesson3 プログラムの作り方1 課題定義

課題定義の方法

  • 何の課題を解決するのか、どのような状態になればよいのかを最初に決めよう
  • 課題定義で決めること
    • 背景。目的
    • ゴール(達成状態)
    • やらないこと

背景・目的

  • 解決したい課題は?
  • 何のためにしたいのか?
  • なぜシステム化する必要があるのか?

ゴール(達成状態)

  • 目的は?
  • 達成した時にどのような状態になっていればよいのか?

やらないこと

  • スコープの対象外のことは?
  • 制約条件は?

インセプションデッキ

もっとちゃんとやるなら、インセプションデッキに基づいてやっていく

WHYを明確にする

  1. 我々はなぜここにいるのか
  2. エレベーターピット
  3. パッケージデザイン
  4. やらないことリスト
  5. 「ご近所さん」リスト

HOWを明確にする

  1. 技術的な解決策
  2. 夜も眠れない問題
  3. 期間を見極める
  4. トレードオフスライダー
  5. 何がどれだけ必要か

「読書ログサービス」 の課題定義

背景・目的

  • 日々本を読んでも内容を忘れてしまう。
  • 読んだ本の感想を記録しておけるようにしたい。
  • 書籍名や著者名、評価スコア、読書状況も管理したいが、既存のメモアプリだと項目ごとに管理できない
  • 既存の読書管理差ビスもあるが、自分好みに項目を設定できない

    ゴール(達成状態)

  • 読書ログを登録できる(書籍名、著者名、読書状況、評価、感想)
  • 読書ログを表示できる

    やらないこと

  • 最低限以外の機能(変更、削除、会員登録機能など)
  • PHPの高度な機能の使用(クラス、例外など)
  • インフラの構築(Herokuを使用)