概要
Make it simgle ( typo ではない ) という考え方について
Make it simgle って何?
Make it simgle とは
Make it simple と Make it single
を合わせたタスク管理の指針を表す造語です。
(私が作りました ※経緯は後程)
複雑なタスクは、
- シンプルな単位 ( Simple ) に分割する
- 1 つのことだけ行う( Single ) タスクになるまで分割する
という指針です。
このエントリで伝えたい結論はこの指針であり、以降は経緯や細部に関する内容です。
経緯
この記事を書くに至ったきっかけです。
(ฅ・ω・)ฅ .o0 ( 引き出しが増えると、ひとつのことを考えている時に閃くことが以前よりも多いので集中力を保つのが難しい。 )
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr (ฅ・ω・)ฅ .o0 ( 💡閃きの🍳卵は「鉄は熱いうちに打て」の方針にしないと🐥孵化しないように思う。つまり、いま集中している本題を離れる必要がある )
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr (ฅ・ω・)ฅ .o0 ( 思考を巡らせ、グーグルで情報を収集し、実現可能かざっくり調べる。ここまで来てようやく、メモに書くなり Trello にカードを追加するなりして本題に戻れる )
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr (ฅ・ω・)ฅ .o0 ( やっかい(喜ぶべき)なのは、ひとつ目の閃きの最中に次の閃きを得た場合。どんどんネストしていく。yak shaving )
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr そこでポモドーロとmake it simgle。前者で常にメインタスクの優先度を変えることもできますし、後者で閃きを即メモることで戻ってこれますね!
— Koshikawa Naoto (@ppworks) 2015, 2月 5
@ppworks はい!3年前くらいからポモドーロを使ってますが、そういったノウハウがないと長時間 yak shaving したあげく途中の内容を忘れたりしますね。ところで…
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@ppworks make it simgle って、simple or single or simgle(造語?)のどれでしょう。あと、出典とかありますか?気になります。
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr simpleでした!タスクはシンプル化して瞬殺せよって内容の本です。togglで、これからやることを明確にする - pblog
http://t.co/5XPVepcYku に書いたやつです!
— Koshikawa Naoto (@ppworks) 2015, 2月 5
@ppworks ありがとうございます。あの良記事ですね!先程つぶやきましたが、 simgle という、造語も悪くないかもしれません。 おかげさまで、発想が膨らむきっかけになりました。ありがとうございます。
— tbpgr(てぃーびー)☺ (@tbpgr) 2015, 2月 5
@tbpgr simpleにsingleタスクにするsingleですかねえ、面白いですね!
— Koshikawa Naoto (@ppworks) 2015, 2月 5
そう。この記事のタイトルの由来です。
誤字だけど誤字じゃない( 草壁メイちゃん談 )
閃きがもたらすタスクの複雑化
経験値と閃き
- 経験値が増えると、一つの対象に対して様々な改善方法を閃くようになる
- 閃いた改善方法に対して調査をしていると、その改善方法を改善するための方法を閃く
- 以下、延々と続く閃き
閃きの特性
※主観です。反対意見は大いに認めますし、人それぞれでしょう。
- 閃いてから時間が経たないうちに、最低限の深堀りをする
- 個人的に、閃いたあとに寝かせると閃きを形にできないことが多い
- 反対に、そろそろ閃きがでそうな時は寝かせたほうが成功しやすい
- 広がりを見せそうな閃きがあった場合、実現性に関する下調べを後に回すと、継続調査するモチベーションも下がる
- 「鉄は熱いうちに打て」
- 個人的に、閃いたあとに寝かせると閃きを形にできないことが多い
- 閃きを深堀りすると連鎖的な閃きがある
- 閃きがさえている時に継続して深堀りする利点がある
- 閃きハイ・閃き確変
タスクの状態
- スタート時点のタスクからどんどんネストしていく
- 頭の中に保存しきれない情報量
- ヤクの毛刈り状態に。(ヤクの毛刈りについては、別途説明)
main_task ┣ sub_task1: main_task を改善する手法1 ┃ ┣ sub_sub_task1_1 sub_task1 を改善する手法1 ┃ ┗ sub_sub_task1_2 sub_task1 を改善する手法2 ┗ sub_task2: main_task を改善する手法1 ┣ sub_sub_task2_1 sub_task2 を改善する手法1 ┗ sub_sub_task2_2 sub_task2 を改善する手法2
Simplify !!
Images
Before
After
Context
例えば、 かんばん方式のタスク管理ツール Trello で、
特定ボードのラベルを全て削除する というタスクを割り振られたとする。
実現方法を検討している最中に、
- 手動で行うよりも Trello の API Wrapper を利用してスクリプト化すべきことに気づく
- 個別にスクリプト化するよりも、繰り返し実施できるように汎化して gem のライブラリにした方が良いことに気づく
- 「個別のスクリプトを作成するよりも汎化して gem のライブラリにした方良い」というアイデアが以前行った他の対象に適用することに気づく
- API wapper を利用して繰り返し行う処理を自動化するノウハウについて esa.io などで共有する
- 繰り返し行う処理を gem のライブラリとして自動化するノウハウにうちて esa.io などで共有する
- 繰り返し行う処理を単発の Script にするか、 gem にするか判断基準を決めて esa.io などで共有する
- esa.io にノウハウを残す際に template を作成する方が良いことに気づく
- template の存在を知らせるために esa.io にノウハウ共有のガイドラインを作成した方が良いことに気づく
などのように閃きが連鎖した場合を考えます。
Division
閃いたアイデア群を個別のタスクに分割します。
粒度については、 上記の Context の箇条書きの 1 項目ずつをタスク化する。
これを Trello の Card に割り当てる。
各個人に割り振る最小単位のタスク。
一般的な TODO 管理や かんばん系のツールはこの粒度までを扱うケースが多いでしょう。
Sole
一つだけの役割を持つ最小のタスクになるまで分割します。
先の例なら、 Division のフェーズで分割して作成した Card を一つ選びます。
例えば、
- Trello の API Wrapper を利用してラベルを削除するライブラリを作成する
このタスクをさらに分割すると、
- ライブラリの設計(構成)を行う
- 仮に構成設計で決めた各要素を部品と呼ぶ。
- 各部品の, 細部設計・実装・テスト をそれぞれタスクに分割する
このタスクは各個人が自分で管理する最小限のタスクです。
仮に 原子タスク( Atomic Task ) と呼びます。
個人的に、この粒度のタスクを管理するために tudu という gem を作成しています。
自分のためのツールなので、作りが粗いですが、1つのタスクを多くのタスクに分類できる場合は
この gem を利用しています。
( tudu gem については、別途説明)
Timing
閃き群をタスクに分割するタイミングを得るにはポモドーロテクニックが有効です。
ポモドーロテクニックは時間を区切って集中力を保つ手法だが、
区切られたタスクの合間で、振り返りを行う。
この振り返りのタイミングで閃きの内容の
- タスク化
- 優先度付け
- 取捨選択
- 即着手しないが、 Icebox としてアイデアを残しておく
- タスクが増えすぎないように破棄する
を行うことができる。
Workflow
- 閃きで作業が複雑になり始める
- 鉄が熱いうちに最小限の調査をして、メモを残す
- ポモドーロの合間にタスクを Division の粒度で分割, 優先度付け, 取捨選択
- 整理するタスクが多い場合は, タスクの整理自体を 1 つのタスクにする
- 次のタスクを選択する
- 選択したタスクを 原子タスク に分割する
- 原子タスク が多ければ、 tudu gem を利用して進捗管理をする
- ひとつひとつの 原子タスク を消化する
- ひとつのタスクが完了
- Trello のカードを Done に移動
※以下、おまけ要素なので読まなくても良い
ヤクの毛刈り( yak shaving )
ヤクの毛刈りとは?
本題を解決するために新たな問題が発生。
その連鎖を表します。
tudu gem
tudu gem とは?
tudu gem | GitHub tudu gem | RubyGems
原子タスク( Atomic ) を管理するための Ruby gem の CLI ツール。
ググラビリティを考えて、妙な綴りにしています。
以下、どんな gem なのか少し例示。
初期化
Tudufile は拡張のために作ったけど今のところ拡張してない。
反 YAGNI の産物。
% tudu init % tree . └── tudu ├── doings ├── dones ├── todos └── Tudufile %
タスクの追加
% tudu add hoge hige hage hoge hige hage complete add todo 'hoge' to tudu/todos complete add todo 'hige' to tudu/todos complete add todo 'hage' to tudu/todos
タスクの確認
% tudu tasks -c ========TODOS======== hoge hige hage ========DOINGS======== ========DONES======== % tudu progress 0/3|> |0%
TODO から DOING へ
% tudu choose hoge not exists complete remove todo 'hoge' from ./tudu/todos complete add doings 'hoge' % tudu tasks -c ========TODOS======== hige hage ========DOINGS======== hoge ========DONES========
DOING を DONE へ
% tudu done -p 1/3|===> |33% % tudu tasks -c ========TODOS======== hage ========DOINGS======== hige ========DONES======== hoge
タスクをカラー表示
すべてのタスクを実施
% tudu done -p 2/3|======> |67% % tudu done -p All Tasks Finish!! 3/3|==========>|100%