タスク管理って何？どんな考え方やツールがある？エンジニアとしてどう向き合うべき？その辺の話をまとめてみた

結局のところタスク管理とは何なのか。どんな考え方やツールがあるのか。またエンジニアとしてどのように向き合えばいいのか。その辺の話を自分なりに咀嚼し、まとめてみました。

# 対象読者
- 「タスク管理？何それ？」という方
- タスク管理という言葉は知っているが、なんだが胡散臭そうで無視している方
- タスク管理は日頃から取り入れているが、新しいアイデアやネタを知りたい方
- 何かツールやサービスを開発したいがネタが無い方

雑多にまとめているので、上記に当てはまらない方でも興味ありそうな部分を拾い読みしていただければと思います。

# タスクの種類
タスクは大まかに分けて三種類あります。

- チームタスク（チームプロジェクトタスク）
- 個人タスク（個人プロジェクトタスク）
- TODO

## チームタスク（チームプロジェクトタスク）
複数人で実施するプロジェクト（何らかの大目的）を達成するためのタスク（小目的や中目的）。

プロジェクトの例:

- 仕事での製品開発
- 自社製品紹介イベントの開催

チームタスクの例:

- 自社製品紹介イベントの開催
  - 日程を決める
  - 会場を決める
  - 紹介コンテンツを決める
  - 参加者ターゲットを決める
  - ...

## 個人タスク（個人プロジェクトタスク）
個人で実施するプロジェクト（何らかの大目的）を達成するためのタスク（小目的や中目的）。

プロジェクトの例:

- 書籍執筆
- 趣味のソフトウェア開発
- 私生活の引越し
- ...

個人タスクの例:

- 書籍執筆
  - テーマを決める
  - 読者ターゲットを決める
  - ニーズや既存の本を調べる
  - 執筆手段を検討する
  - 章を設計する
  - ...

## TODO
個人でやらなければならない、あるいはいつかやりたいが、プロジェクトにするまでのない小さいもの。

例:

- 飲み会参加メールに返信する
- 風呂掃除する
- 扇風機を買う
- 洗剤を買う
- ...

# タスク管理とは何か？
種類毎に分けて書きます。

## チームタスクの管理
チームタスク管理とは、チームで取り組むプロジェクトを完遂させるための一手法です。具体的にはプロジェクトを「タスク」という作業単位に分解することで、以下を実現します。

- 状況を把握する
  - 例1: 誰がどのタスクを担当し、また進捗はどうなのか
  - 例2: 残作業として何が残っているのか
  - 状況がわかれば対処も打ちやすい
- プロジェクトを円滑に進める
  - 例1: タスク1は手強いのでベテランのAさんに割り当てよう
  - 例2: タスク4と5は、今期では間に合わないので来期に回そう
  - タスク単位で仕事を制御できるため、わかりやすく、また制御しやすい

### チームタスク管理をしないとどうなる？
Ans: **混沌に陥ってしまい** プロジェクト完遂どころではなくなる。

プロジェクトに対して何のタスク管理もされていないと、誰が何をどのようにやるのか、またどの仕事がどこまで進んでいるのかといったことが全くわからず混沌に陥ります。そんな状態ではプロジェクトの完遂など夢のまた夢です。

いかにして複雑なプロジェクト（のタスク）を管理し、運用し、完遂していくかという話は多くの先人によって開発されてきました。また、今なお発展し続けています。この手の理論や書籍は腐るほど存在します。それほどに重要です。

※タスク管理というより「プロジェクト管理」という大枠で扱われることも多いです。

### どうやって管理するの？
Ans: 色々な方法がありますが、大別してアナログとデジタルがあります。

アナログ:

- [かんばん](https://ja.wikipedia.org/wiki/%E3%81%8B%E3%82%93%E3%81%B0%E3%82%93_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA)) …… ホワイトボードや付箋などを使うケースが多いと思います
- ...

デジタル:

- [Redmine](http://redmine.jp/)
- [Trac](https://trac.edgewall.org/)
- [JIRA](https://ja.atlassian.com/software/jira)
- [Trello](https://trello.com/)
- ...

チームタスク管理はその性質上、複数人で利用・共有できるような仕組みとなっており、使い方や概念が煩雑になる傾向にあります。解説に本一冊以上を要することも珍しくありません。

## 個人タスクの管理
個人タスク管理とは、個人で取り組むプロジェクトを完遂させるためのプロジェクト管理手法です。やり方や考え方はチームタスク管理と同じですが、チームでの協調や共有を前提としない分、シンプルになります。

### 個人タスク管理をしないとどうなる？
Ans: 残作業や進捗がわからず、期日までにプロジェクトを完遂できなくなる。あるいは完遂が遠回りになる。

個人タスクを管理していないと、残りどれほどの仕事があって、どの仕事がどこまで終わっているのか、ということがわからなくなり、期日までにプロジェクトを終わらせることが難しくなります。

そもそも、ある程度複雑なプロジェクトになってくると、タスクという単位で分解しない限り、全体像や作業内容は見えてきません。たとえば引越しを検討する際も、思いつきで適当にこなすのではなく、まずはタスクを洗い出すと思います（中には前者でサクっとこなしちゃう猛者もいますが）。

### どうやって管理するの？
Ans: 色々あります。

上記「チームタスクの管理」で取り上げた手段を一人用として使うこともできますし、下記「TODO の管理」で取り上げた手段を使うこともできます。あるいは専用のタスク管理手法あるいはツールを使います。以下に例を挙げます（名前のみ。詳細は後述）。

- GTD
- タスク管理ツール
  - [TaskChute](https://cyblog.biz/pro/taskchute2/)
  - [Todoledo](https://www.toodledo.com/)

## TODO の管理
TODO 管理とは、TODO を抜け漏れなく確実に消化するための管理手法です。

### TODO 管理をしないとどうなる？
Ans: **TODO を失念してしまう**。

逆を言うと、自分の頭だけで忘れず対処できるなら管理は不要です。

### どうやって管理するの？
Ans: 色々あります。

詳細は後述しますが、ここでは名前のみ書きます。

- TODO リスト
  - 紙や付箋に書く
  - [todo.txt](https://qiita.com/sta/items/0f72c9c956cf05df8141)
  - [todo.md](https://qiita.com/koh-taka@github/items/05703694163803dfe7b9)
- スケジューラー
  - アナログな手帳
  - Google カレンダーや Outlook などのスケジュールツール
- リマインダー

# 主要なタスク管理手法・ツール
ここでは上記してきたタスク管理手法やツールについて、少し詳しく紹介します。

## TODO リスト
特に説明は不要と思います。やること（TODO）を並べたリストをつくって、やったものにチェックを付けるというシンプルな方法です。

紙や付箋などアナログに使うこともできますが、デジタルな手段も多数存在します。本項ではデジタルツールをいくつか紹介します。

### みかんリスト
[みかんリスト](http://www.cc9.ne.jp/~pappara/mikanlist.html)

クライアントアプリの例としてみかんリストを。Windows 用の TOOD 管理ソフトです。

![mikanlist](http://www.cc9.ne.jp/~pappara/picture/mikanlist_window01.png)

出典: [みかんリスト](http://www.cc9.ne.jp/~pappara/mikanlist.html)

可愛らしい見た目と、タブによる複数ページ作成が特徴でしょうか。Windows ソフトの中では無難に使いやすいと思っています。Vector でも 2018/05/19 時点で [人気一位](https://www.vector.co.jp/vpack/filearea/win95/personal/pim/) です。

### Google Tasks
[Googleが単独のトゥドゥアプリGoogle Tasksをリリース、メールやカレンダーと連携あり | TechCrunch Japan](https://jp.techcrunch.com/2018/04/26/2018-04-25-google-debuts-a-standalone-to-do-app-google-tasks/)

ブラウザアプリの例として Google Tasks を。使ったことないのでさらっと書きますが、Google 謹製の TODO アプリです。メールやカレンダーとの連携に重きを置いているようです。

### todo.txt
[todo.txt](https://qiita.com/sta/items/0f72c9c956cf05df8141)

TOOD 管理手法の例として todo.txt を。単一のテキストファイルに 1行 1 TODO を書いていく、という手法です。

TODO 管理ツールは多数存在しますが、使い勝手の良いものには中々出会えません。todo.txt は言うなれば「最低限の使い方を定めた手法だよ」「テキストエディタで書けるよ」「でもツール使ったらもっと運用しやすいよ」「何ならツール作ってくれて構わないよ」という世界観です。他のツールに馴染めなかった方には刺さるかもしれません。

### todo.md
[todo.md](https://qiita.com/koh-taka@github/items/05703694163803dfe7b9)

todo.txt と同系統のモノですが、こちらは Markdown 形式（もっというと GitHub Flavored Markdown）に則っていますので、よりエンジニアに親しみやすいと思います。

## タスク管理ツール
TODO リストよりも概念や機能が複雑になったのがタスク管理ツールです。使いこなすにはマニュアルの読解や操作の練習が必要になりますが、慣れたら手放せなくなります。

### TaskChute
[TaskChute](https://cyblog.biz/pro/taskchute2/)

クライアントツールの例として。Excel 製のタスク管理ツールです。

![taskchute](https://cyblog.biz/file/top_tc.jpg)

出典: [タスク管理ツール・TaskChute2](https://cyblog.biz/pro/taskchute2/)

コンセプトとしては以下になると思います。

- 洗い出したタスクを上から順に消化していく
- 今日やるタスクだけやればいい（明日以降のタスクは先送りにする）
- タスク毎に見積時間や実施時間も記録するので、あとで振り返るのにも適している
- 設定より規約（高機能だからといって好き勝手に使うというよりも TaskChute が想定する使い方に律儀に従う系）

いわゆるガチでタスク管理したい方向けです。有料ですがググれば記事やら愛用者らがわんさかヒットする程度には流行っています（エンジニア界隈ではほとんど見かけませんが）。

派生として以下があります。

- [たすくま(Taskuma)](https://itunes.apple.com/jp/app/taskuma-taskchute-for-iphone/id896335635?mt=8) iPhone アプリ版
- [TaskChuteCloud](https://taskchute.cloud/users/top) ブラウザ版

### Toodledo
[Toodledo](https://www.toodledo.com/)

ブラウザツールの例として。高機能なオンラインタスク管理ツールです。主に海外で流行っていますが国内でも最近よく名を聞くようになりました。

使ってないのでさらっと流しますが、とにかく機能が豊富で、ただの TODO リスト的な使い方から TaskChute レベルのタスク管理まで色々こなせるようです。

参考:

- [無料で抜群に高機能なオンラインToDoリスト「Toodledo」を使ってみた - GIGAZINE](http://gigazine.net/news/20140327-toodledo/)
- [Toodledoの全機能紹介と、Todo管理やGTDでの利用方法 - 京都の日々々記](http://sunstar78.hatenablog.com/entry/2016/02/20/100000)

## GTD
- [GTDとは - GTD Japan](http://gtd-japan.jp/about)
- [15分で分かるGTD ? 仕事を成し遂げる技術の実用的ガイド | POSTD](https://postd.cc/gtd-in-15-minutes/)

タスク管理手法の例として。GTD とはタスク管理界隈では有名なタスク管理手法です。本一冊くらいにはなるガチな理論ですが、要約すると、

背景:

- やること/やりたいことについて **頭の中であーだこーだ考えて消耗するのをやめたい**
- そういった消耗をなくせば、その分をもっと生産的な仕事に充てることができる！ハッピー！

どうやって消耗をなくす？:

- (1) まずは頭の中に入ってる「やること」「やりたいこと」を全部書きだす
  - 2-3 時間くらいかけてじっくりと
- (2) 吐き出したブツは「システム」に放り込んで、なるべく頭を使わずに消化していけるようにする
  - 「システム」は何でもいいが、GTD ワークフローを参考にするのが無難

こんな感じです。また、GTD ワークフローとして「インボックス」「プロジェクト」「連絡待ちリスト」「週次レビュー」など色んな概念も出てきます。

おそらくタスク管理の中でもトップクラスにムズイヤツですが、その分、マスターすれば効果は素晴らしいみたいです。ちなみに私は  [本を読んで少し試した程度](http://stakiran.hatenablog.com/entry/2017/09/19/201328) なので詳しいことはよくわかりません :sweat:

# タスク管理に関する諸概念
ここでは（主に個人）タスク管理に関する主要な考え方や概念について紹介します。

適宜取り入れると日々のタスク管理が捗るかもしれません。

### リマインド
タスクの存在を明示的に知らせること。特に **アラームやダイアログなどで（何か作業に集中していたとしても強引に）気付かせる** こと。

タスク管理をしていても、あるタスクに夢中になっている場合は他のタスクが見えないため失念することが多い。リマインドを設定しておくと強引に気付かせてくれるため、失念せずに済む。

たとえば打ち合わせに対してリマインドを設定しておけば、プログラミングに没頭していても気付くことができ遅刻を回避できる。

リマインドを設定する仕組みまたはツールを **リマインダー** と呼ぶ。

### 定期タスク
毎日、週一、毎週金曜日など **定期的に実行するタスク**、あるいはそのようなタスクを実現する仕組みのこと。

定期タスクはタスク管理ツールにて楽に扱えるようになっている。たとえば実行頻度（例:週に一度）を設定しておくだけで、そのタスク終了後にそのタスクが（日付が一週間後に更新された上で）複製される。**手動で一週間後のタスクを作る手間がない**。

定期タスクの用途として「ルーチンワークの管理」が挙げられる。特に「自分が何をやっているか全部可視化したい！」といったように高い意識でストイックにタスク管理したい場合、ルーチンワークだけでも何十と存在するため、いちいち手作業で設定していては大変である。ツールの定期タスク機能を使えば負担無く処理できる。

### タイムトラッキング
いわゆる **見積もり** のこと。

チームタスク管理ではお馴染みで、仕事でも見積もりを行う方は多いかと思う。

個人タスク管理ではあまり馴染みがないが、たとえば [TaskChute](https://cyblog.biz/pro/taskchute2/) では各タスクに開始時間と終了時間、さらには見積時間（そのタスクを終えるのに何分かかるかという予想）が存在するため、「見積に対して実績はどうだったのか」がすべて見える。その分、扱いが煩雑であり、使いこなすのには根気と練習が必要。

### タスクシューティング
タスクを **「実行するべき順」に並べた後、上から順番に消化していく** ようなタスク実行手法のこと。

シュートとは Shoot ではなく Chute である。発案元は [TaskChute](https://cyblog.biz/pro/taskchute2/) 。

※「タスクシューティング」は私が勝手に作った造語です。正式には何と呼ぶんだろう。[直列タスクリスト](https://cyblog.jp/28866) ？

### インボックス
「ここを空にすればいい」という目的を持たせたタスク保存領域、あるいはそれを活用したタスク管理手法のこと。

たとえばメールの運用におけるインボックスでは、処理するべきメールを一つのフォルダに放り込み、それを今日中に空にすることを目指す、という運用になる。こうすることで「空にすれば全て終わり」という明確な目標に向かって進んでいけるため、迷うことなく仕事を進めていける。

### クローズドリスト/オープンリスト
クローズドリストとは細分化したプロジェクトタスクや今日やるタスク一覧のように「一度やることを決めたら、もう他のタスクが入り込む余地はない」ようなリストのこと。オープンリストとは、Wish List(欲しいものリスト) のように「不定期に後から更新される」ようなリストのこと。

タスク管理においては以下のように使い分ける。

- クローズドリスト → やらなければならないタスク
- オープンリスト → （やらなくてもいいが）やりたい、できればやっておきたいタスク

クローズドとオープンを混同しないことが重要。たとえばクローズドなタスク一覧の中にオープンな項目があったりしたら混乱しやすい（破綻しやすい）。

### レビュー
実行済のタスク情報（記録やログ）を見て **振り返る** こと。週次レビュー（週に一度振り返る）、月次レビュー（月に一度振り返る）、年次レビュー（年に一度振り返る）などがある。

レビューを行うことで自身の処理能力を把握したり、どこに無駄があるかといったことを発見したりして改善に繋げることができる。意識の高いビジネスマン

レビューを行うためには、タスク管理ツールに「実行したタスク情報を記録していく機能」が必要となる。アナログなタスク管理では実現は厳しい。

### アイドリングタスク
タスクではない作業や行為をタスクとして記録すること。

たとえばトイレ休憩、水分補給、ぼーっとしていた時間などがこれにあたる。

アイドリングタスクもタスク管理ツールで扱うことにより、どれほどのアイドル時間が存在していたかを可視化することができる。ストイックに仕事や生活の改善に取り組む際には重要なヒントとなる。

# エンジニアはタスク管理とどう向き合えばいいか？
タスク管理と聞くと「面倒くさそう」「意識高い人がやってるやつ」「胡散臭そう」といったイメージを持つと思いますが、食わず嫌いはもったいないです。

ここではエンジニアがタスク管理とどう向き合えばいいかについて、私見ではありますが、各タスク管理の種類毎にまとめておきます。

## (1) チームタスク管理は必須
まずチームタスク管理は言うまでもなく **必須** だと思います。仕事で使っている方も多いでしょう。

- 「かんばん」はアジャイル開発では定番
- [Redmine](http://redmine.jp/), [Trac](https://trac.edgewall.org/), [JIRA](https://ja.atlassian.com/software/jira) あたりは SIer でも使われるほど普及している
- [GitHub](https://github.com/) はバージョン管理プラットフォームですが Issue やら Project 機能があり、タスク管理としても重宝されている
  - オンプレだと [GitHub Enterprise](https://enterprise.github.com/home)
  - フリーなら [GitLab](https://about.gitlab.com/) とか [GitBucket](https://github.com/gitbucket/gitbucket) とか
- 古い職場だと共有フォルダ + Excel などで工夫して運用していたりも

もし導入していないのなら、ぜひとも導入するべきです。プロジェクト規模と人数が小さいならまだしも、たいていの場合は管理しないと収拾がつかなくなります。まあ、だからといってツールの導入や整備や運用に力を入れすぎるのも考え物で、失敗例もよく聞きますが。バランスが難しいところです。

## (2) 個人タスク管理は必要なら
続いて個人タスク管理ですが、**必要なら使う** 程度で良いでしょう。

自分の頭だけで済むならそれに越したことはないのですが、人間の頭はそこまで優秀ではありません。大きな目標をタスクに細分化して、経過を記録して、進捗を可視化して……といった定量的なアプローチ、つまりタスク管理をすれば、やることも見えてきますし抜けや漏れも少なくなります。

## (3) TODO 管理はできればやりたい
最後に TODO 管理ですが、**できれば導入する** ことをオススメします。

TODO は主に会社やプライベートの雑事から構成されますが、そんなことのために貴重な頭を割くのはもったいないです。かといってサボるわけにもいきません（特に会社絡みは）。なので **出来る限りシステム化して、必要最小限の手間で漏れなく消化できるように** しておきたいものです。

私の場合、以下の様にして運用してます。

- [Tritask](https://qiita.com/sta/items/2b1248869078ac8032d6) というタスク管理ツールに TODO を全部ぶちこんでいる
- Tritask は必ず見る（そうする習慣を染み込ませた）ので、ここに書いておけば見逃すことはない
- Tritask は日付管理（いつやるか）や定期タスク管理（何日の頻度で繰り返すのか）もしてくれるため、今日の TODO にだけ集中できる

まだまだ完全ではないですが、「Tritask に全部書いてある」「Tritask が教えてくれる」「Tritask に従って TODO を消化するだけでいい」という安心感があるため、気兼ねなく仕事や趣味（もっというと創造的な活動）に没頭できます。TODO をしそこねて会社で上司に叱られたり、プライベートで「あ、あれやるの忘れてた」となったりといったこともなくなってきました :smile:

## まとめ
長々と書きましたが、まとめます。

- チームタスク管理は言わずもがな必須
- 個人タスク管理は、（特に大きな仕事については）適宜導入して可視化すれば色々見えてくるかも
- TODO 管理は、自分の頭だけで対処しきれないならシステム化して最小限の手間で漏れなく消化していく

# タスク管理ツールを開発する
タスク管理ツールを使うという話はあまり技術的ではありませんが、タスク管理ツールを作る、という話だと技術的になります。興味のある方は遊んでみると良いでしょう。

ここでは刺激ネタとして「どんな風に作るか」というアイデアを三つほど述べておきます。

## 既存手法やサービスのクライアントアプリを作る
いきなりタスク管理ツールをつくるのはハードルが高いので、まずは既存手法のクライアントアプリを作るのが良いでしょう。

- todo.txt や todo.md のクライアントアプリを作る
- [Toodledo の REST API](https://api.toodledo.com/3/) を使って Toodledo のクライアントアプリを作る

私は [todo.txt の秀丸エディタ版](https://github.com/stakiran/todo.txt-hidemaru) を作ってみました。結局使ってませんが、エディタのマクロ機能や Python スクリプト呼び出しの練習も兼ねて、そこそこ楽しめました。

## オリジナルのタスク管理ツールを作る
仕組みから自分で考えた、オリジナルのタスク管理ツールを作るのもまた面白いです。「こんなタスク管理ツールがあったらいいのに」と実用的理由があればなおさらです。

私は Tritask というツールを作りました。（以下自己満の日記が続きます）

- [エンジニア向けのタスク管理ツールを作ってみた - Qiita](https://qiita.com/sta/items/2b1248869078ac8032d6)

![tritask](https://user-images.githubusercontent.com/23325839/36819300-517d1a7a-1d2c-11e8-92bb-7cbcf4fd2cbd.gif)

コンセプトは以下のとおりで、

- タスク管理はコーディングみたいにバリバリ手を動かすものである
  - テキストエディタ上でガシガシいじれる
  - データは plain text なので管理しやすい
- ソートしただけで全タスクを見やすく並び替える
- todo.txt みたいに「手法」と「ツール」に分けてあるので、他のエディタ向けツールも作れるよ
- 使い方が限定されない（シンプルだし使い方もあまり規定してないので好き勝手に緩く使える）

まあ TaskChute に影響受けまくっているわけですが、TaskChute は個人的に合わなかった（Excelベースなところと設定より規約なところ）ので、自分に合うようなブツを作ってみた、という話です。

今では仕事でもプライベートでもガッツリ使っています。つい最近は集計機能も組み込みまして、

```markdown
# Monthly
All 11 keys.

- 2018/05 : 166 Tasks, Total:36.6[H], Avg:13.2[M]
- 2018/04 : 737 Tasks, Total:152.9[H], Avg:12.4[M]
- 2018/03 : 719 Tasks, Total:181.5[H], Avg:15.1[M]
- 2018/02 : 678 Tasks, Total:161.9[H], Avg:14.3[M]
- 2018/01 : 609 Tasks, Total:133.2[H], Avg:13.1[M]
- 2017/12 : 752 Tasks, Total:157.3[H], Avg:12.5[M]
- 2017/11 : 728 Tasks, Total:167.2[H], Avg:13.8[M]
- 2017/10 : 500 Tasks, Total:106.1[H], Avg:12.7[M]
- 2017/09 : 728 Tasks, Total:172.4[H], Avg:14.2[M]
- 2017/08 : 441 Tasks, Total:107.2[H], Avg:14.6[M]
- 2017/07 : 227 Tasks, Total:58.5[H], Avg:15.5[M]
```

こんな感じで集計結果を見てニヤニヤしてます。どうも私は 1 タスクを 12-15 分くらいの粒度で扱うタイプのようですね。今後はグラフ描画にもチャレンジしてみたいですね。

……とまあ、自己満ではありますが、中々楽しいです。

## 儲けるためのタスク管理ツール・サービスを作る
エンジニア界隈ではあまり盛り上がらないタスク管理（チームタスクではなく個人タスク）ですが、需要やニーズ自体はあると思います。腕試しがてら、あるいはガチで儲けるために、ツールやサービスを開発してみるのも良いでしょう。

私もあわよくば一儲けしたいと企んでいるところではあります :smirk:

# おわりに
かなり雑多になってしまいましたが、タスク管理についての私見を整理してみました。

何かの参考や刺激になれば幸いです :smile: