個人プロジェクトでの Simple is best なタスク管理手法

スポンサーリンク

先月、英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました のエントリーで簡単には書いたのですけど、Imagict 開発時の個人開発でのタスクフローとタスク管理手法についてまとめましたので公開します。

個人的なプロジェクトとして、ウェブアプリケーションを作成する際のタスク管理手法となります。基本的に、個人的なプロジェクトは全部この方法でやっていまして、難しいことは避けてシンプルな方法です。

— 使うツール —
無地のB5サイズのルーズリーフ紙
Redmine(Mac)
Wunderlist(iPhone, Android, Mac)
日々の細かなToDo管理用のテキストファイル(エディタはVim)

上述ツールは自分が好きで使っているだけであり、類似ツールは他にも沢山存在しますので、好みで選んで良いと思います。どれを選んでよいか分からない場合は、最初に上述のツール達にトライされても良いかと思います。

【追記 2014/10/04】 ルーズリーフ紙のサイズをA4と間違えて表記していたのを、B5に修正しました。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

1. 無地のB5ルーズリーフ紙で構想・仕様を練る

まず、最初に行うのは作成するサービスの構想・大まかな仕様の策定です。私の場合、紙のB5サイズのルーズリーフを使います。

サービスの構想
・アイデア出し
・想定ユーザー
・ユーザーストーリー
・類似サービスの調査
・サービス名の決定

サービスの設計・仕様を策定
・使う技術やツールの選定
・提供する機能のリストアップ
・ページの共通レイアウト
・ページ画面のリストアップ
・ページの画面遷移図
・データベースのER図
・画面詳細のモックアップを1画面ずつ作成(ページ毎のデザイン/提供する機能/出力する情報などを記載)

この辺りまでを可能な限り具体的にやっておくと、後の作業にスムーズに進めるので楽です。上記の作業は、書いたり消したり、追加したりやり直したりを繰り返すので、自由に素早く行えるツールを使うのが重要。私は紙に鉛筆で書くのが好きですが、ソフトウェアツールを使っても良いと思います。

ルーズリーフに書いた、Imagict の画面詳細モックアップです。

mockup

ちょっと見にくいですが、以下ページに該当するモックアップ。

左上: ユーザーのプロフィールページ
左下: ユーザー情報編集フォームのページ
右上: 辞書の索引ページ
右下: 辞書の詳細ページ

最初から細部まで全てを洗い出すのは不可能なので、できるだけの範囲で良いかと思います。詳細な設計や実装を行っている途中で、変更や追加は日常茶飯事でした。

ちなみに紙の大学ノートではなくてルーズリーフ紙を使う理由は、後で ScanSnap で簡単にデジタル化できるようにするためです。ルーズリーフだと1枚ずつ外せるので、ScanSnap で読み込むのが簡単。

2. Redmine にチケットをどんどん追加した後、優先順位決定

1 の紙上での構想・仕様の策定が終わったら、次はやるべきタスクを Redmine プロジェクトのチケットとしてどんどん追加しました。

機能の実装に関することから、ドメイン・サーバ契約など雑務まで、あらゆるタスクを全て放り込む。何かやるべきことが発生したり思いついたら、実際作業を行うかどうかに関係なく、とにかくすぐに Redmine に追加しておく。これで忘却を防げますし、不要なら後で削除すれば良いです。

Redmine には、タスクの粒度はあまり考えずどんどん放り込んでいく方針です。タスク粒度の大小は、仕様の細部を考える時やいざ実装を始める時に考える。最初から細かく考え過ぎると、前進しにくい気がします。

あと、タスクの優先順位も後で考えることが多いです。いったん考えうるタスクをがーっと追加して、その後でやるべき順番を決定したほうが効率が良い気がします。

タスク追加後、Redmine の優先度で「今すぐ/急いで/高め/通常/低め」を振っておき、優先度でソートしておく。作業を進めるにつれ、当然新たなタスクがどんどん発生しますが、随時 Redmine にチケット登録し優先度を振る。

Redmine に関しては、以下が参考になります。私個人のプロジェクトでは、ここまできっちりはしていません。
かんばん!~もし女子高生がRedmineで「スクラム」開発をしたら

それから、外出先で何か思い浮かんだ場合は、iPhone/Android アプリの Wunderlist にメモるようにして、必要なら後で Redmine に移していました。ここは重複の無駄があるのでどうにかしたいですが、Wunderlist が好きなので使い続けています。

Wunderlist: todoリストとタスク管理
カテゴリ: 仕事効率化
現在の価格: 無料

Wunderlist はシンプルな ToDo メモツールで、iPhone/Android/Mac/Windows と主要プラットフォーム全てで同期して使えるので便利です。以下参考。
家族・夫婦・友人など少人数でタスクを共有するには Wunderlist が手軽で便利だ | EasyRamble

3. 粒度の大きい Redmine チケットのタスクを分割する

Redmine に追加したチケットを1つずつやっつけて作業を進めるわけですが、すぐに手を付けるには粒度が大きすぎる時も多く、その場合はさらにタスクを小さく分割しました。

細かく分割したタスクを Redmine に長々と書くのは辛いので、私はただのテキストファイルでの ToDo 管理を用いています。以前から日々の細かい ToDo 管理用に使っているのですけど、何と言っても Vim で書けるのが大きいです。

Redmine の優先度「今すぐ」のチケットから、当日/翌日に手を付ける予定のチケットを選択し、そのチケット及びそれを小さく分割したタスクを、この ToDo 管理用テキストファイルに時系列で書いていく。

ToDo 管理のテキストファイル内容

‘-‘ が未着手、’+’ が完了のマーク、これだけの単純な ToDo リストです。各タスクはこれ以上分割できない位の小さい粒度にするよう心掛けています。ticket 1 を細かく分割したものが、task A, B, C です。目安は読んですぐに手を動かせるかどうか、動かないならさらに分割する。大好きな Vim でがりがり書けるのも、実装に向けてモチベーションが上がります。

あと作業終了後に、翌日着手予定の Redmine チケットを選択して、すぐに作業に手を付けられる程度にタスクを小さく分割して、この ToDo 管理リストに書いておくようにする。こうしておくと、翌日の再開時にスムーズに作業に入り込めます。

また行った全ての作業は、この ToDo リストのファイルに記録されており、作業日報的な記録にもなります。1年分が1つのファイルです。

このテキストファイルでの ToDo 管理は、私オリジナルのアイデアではなくて、以下たつをのホームページさんを参考にしたものです。
私の ChangeLog メモ活用法 – TODO 管理

完了したタスクは ToDo 管理のテキストファイルで – を + に変更ます。さらに Redmine チケットの単位で完了したタスクは、Redmine でステータスを終了に変更します。

どんなプロジェクトであれ、この ToDo 管理のテキストファイルは常に用いています。Vim はあらゆるツールの中でも most favorite なツールですので、実際のコーディングだけでなくてタスク管理でも大活躍です。

以上のような流れで、地道に1つずつ日々のタスクをクリアしていきました。タスク管理の参考になれば幸いです!

スポンサーリンク
 
スポンサーリンク

Leave Your Message!