バグのないソフト開発、迷走せず整然としたソフト開発、そして高速なソフト開発、そんなことがしたくて開発メソッド探求の旅に出たんだ。
私がたどり着いた楽園
最初に結論から。私はRedmineを使って半年~1年程度において、おおよそ週単位の計画を立てるようにしている。週報で言うことの計画かな。
ひとつのタスク、私としては「20分程度で終わり、やるべき作業がすでに明確であるもの」、の管理はMicrosoft ToDoを使っている。タスクをまとめたリストの存在、およびタスクをリスト間で移動させやすいので、Getting Thins Done (GTD)とよばれるタスク管理術を実践しやすい。これは1週間ごとにメンテする。
ソフト開発に特化したToDoリストとしては、Github Flowを使うようにしている。こちらは機能ごとにissueを立てることが多いかな。
Redmine
ガントチャートを書くツールである。Githubのissueやマイルストーンを一般業務にも拡張し、ガントチャート表示できるようにしたツールというイメージ。
こんな時におすすめ
- 半年~1年程度のプロジェクトで、一週間スパンのToDOリストとして有用である。メモのところに日々の作業内容を書いて、それをMicrosoft ToDoへ落としながら日々作業するのもいい。
- 全部詳細に書かなくていい。LOD式のように、半年先までタスク(20分で作業できる内容)まで分割、1年先はプロジェクト単位(1週間作業量程度)を事前に計画しておくのにいい。
メリット
- チケット駆動開発を体現できる。Githubだけだと、ソフトウェアはチケット駆動開発できるが事務作業や交渉事がうまくインクルードできない。
デメリット
- 一日以下で実現できるToDoのリスト化には向かない。ガントチャートにうまく表示できない。
- メンテし続ける根性が大事
Microsoft ToDo
Microsoft謹製のToDOリストである。
こんな時におすすめ
- タスク単位(20分でできること)でToDoをまとめたいとき。
- Redmineより粒度が低いレベルのToDoリストですね。
- Getting Thins Doneを実践したいとき。上司に勧められた。
メリット
- シンプルなUI
- リスト間でタスクの移動が容易である。これにより、GTDメソッドが実践しやすい。
Github Flow
Git Flowを簡易的に模した開発フローの提案。作業内容(分類ごとのフォーマットに従って書ければなおよい。バグ修正とか機能実装とか)を書いたイシューを立てて、developerブランチを切って、開発が終わったらプルリクエストを出してmasterブランチに統合する。
こんな時におすすめ
- ソフト開発するときは絶対必須である。
メリット
- 進捗が管理しやすい開発が可能。第三者にも説明しやすい。
- 一言で言って、おすすめである。
デメリット
- メンテし続ける根性が大事。私はさぼり癖が強くてなかなか難しい...ボッチ開発の場合はなおさら続かない。
結論
タスク管理手法は山ほどある。手法を知ることはたやすい。一方で、全部に言えることだがメンテナンスが大変である。少しだけ帰るのを我慢して、また少しだけ朝早く来て、こうしたタスク管理に取り組もう。朝30分、帰るとき30分、昼休みあと30分とかかな。