Lambdaカクテル

Common Lispを書くMT-03ライダー(初心者)です

セルフマネジメントについての分析

セルフマネジメントできていないという問題がある.

俺は裁量労働であって,エンジニアには自分の裁量で仕事を遂行する権限が(ある程度)与えられているので,どの仕事を取るかは自分でコントロールし,スケジュールも自分で建てなければならない.自分が担当している範囲の仕事は自分一人の力で管理する(必ずしもやり切るという意味ではない)必要がある.だがそれができていない.仕事中に次にどうしたらよいか分からずに困るということがままある.これについて考える.

問題はどこにあるのか

まずはどこに問題があるのかを知るために,今どのようにして仕事をしているのか考えてみる.今やっている仕事のやり方・とらえ方にどこか悪い箇所があるために,セルフマネジメントという大きな目的が達成できていないと考えられるからだ. ひとまずこの,仕事のやり方・とらえ方に問題があるということは確実に言える(それ以外であれば,改善のしようがない)ので,この中に問題を求めることにする.

仕事の内容をおおまかに分解することにしよう.

  1. タスクをつかむ(手持ちタスクの増加)
  2. タスクをアレンジメントする(進捗に応じた優先順位をつける)
  3. タスクを実行する(手持ちタスクの消化).これらが適宜実行される

これらが行われる.

また,1.タスクをつかむ を行うとき,a. タスクの概要を把握する,b. タスクをつかめるか確認する,c. タスクを既存のスケジュールに組込む を行う.

また,2. タスクをアレンジメントする を行うとき,a. 優先度を変更しなければならないタスクがあるか確認する,b.適切な優先度に設定し直す,c. 必要であればリスケジューリングなどの加勢を要請する を行う.

また,3. タスクを実行する を行うとき,新たなタスクの発生が起きるかもしれない.進捗がスケジュールよりも進むかもしれず,遅れるかもしれない.

これらの過程のどこかがうまく機能していないのである.

さてこれらの過程の中で考えられる問題がいくつかある.

  • タスクをつかむ とき
    • 見積もりに失敗している,あるいは見積もりを行っていない
    • 見積もりはできているが,現状の処理能力やスケジュールにあてはめてそのタスクをつかめるか把握できていない
    • いつやるのか,既存のスケジュールに組み込めていない
  • タスクをアレンジメント(すなわち,スケジューリング)する とき
    • そもそもアレンジメントを行っていない
    • 手持ちのタスクを把握しきれていないので不正な優先度をつけてしまう
    • 優先度変更(すなわち,リスケジューリング)の必要性を発見できていない
    • 不可能な優先度付けを行っている
    • リスケジューリングの要請に失敗している
  • タスクを実行するとき
    • 周辺知識が不足していて想定よりも時間がかかる
    • 時間が分断されて集中力を失う
    • 想定外の理由でタスクが停止する,連帯不足でタスクが停止する

今日はこれくらいにしておこう.またより深く掘り下げる必要があれば,その箇所に絞ってよく分析しよう. では,これらの問題について検討する.

タスクをつかむときの問題

見積もりに失敗している,あるいは見積もりを行っていない

見積りとスケジューリングは双子のようなもので,どちらかが欠けているとまともに仕事は回らないはずなのだが,どういうわけか計画的に物事をやるという社会的スキルを身に付けないまま大人になってしまった. 改善策として,タスクを受け取る際にどのくらいかかりそうかちゃんと見積るようにし,フィードバックを期待する意味も兼ねてこれをSlackなどに書いてみるというのが考えられる.

見積もりはできているが,現状の処理能力やスケジュールにあてはめてそのタスクをつかめるか把握できていない

これは自分のスケジュールを把握できていないので無尽蔵にタスクを拾ってしまうか,その逆に暇にしてしまう,という問題である.解決のためには,スケジュールを把握できるようにする,と言ってしまえば簡単だが,まあ難しい.スケジュールといっても,いつ始めていつ終わる予定なのか,実際に終わりそうなのか,という情報を含んでいる必要がある.一般的なTODO管理ソフトウェアでは,デッドラインしか管理できないことが多いので,結局手で管理することになるかもしれない.デッドラインだけだと,とにかく目の前にあるタスクたちをがんばって片付ける,という状態になりがちで,モチベーションにつながらないし,疲れ果ててしまうおそれがあるし,ひとまず定時までがんばる,といった時間ベースの管理になってしまい,スケジュールを引く意味がそもそもなくなってしまいそうだ. 実際にやれそうな対策は,タスクを日単位程度に分解し,進捗具合を把握できるようにするとか,物理的にフセンなどで進捗を管理するといったものだろうか.ここは難しい.

いつやるのか,既存のスケジュールに組み込めていない

やるとだけ言っている状態である.あたりまえのことだが,スケジュールに組み込まなければ,タスクは終わらない.いつかやりたい,という状態はたいてい永遠に終わらないので,ちゃんとスケジュールに組み込むべきである.臨機応変にタスクをこなせるほど器用ではないので,ちゃんとスケジュールに組み込むという対策を行う.

タスクをアレンジメントするときの問題

そもそもアレンジメントを行っていない

いつやるのか,いつ完了させるつもりなのかをそもそも考えていない状態.繰り返すがスケジューリング能力が低いので,割とこの状態になっていることがある.スケジューリングの徹底を行いたい.

手持ちのタスクを把握しきれていないので不正な優先度をつけてしまう

今どういう進捗状況なのかがわからないので,どこに挟めば,どこで急げばよいかわからない,という状態.タスクを進めるたびに,どのくらい進んだのかを全体的に俯瞰して視るというステップを挟む必要がありそう.

優先度変更(すなわち,リスケジューリング)の必要性を発見できていない

タスクをすすめているうちに,別のタスクが放置されていて進める必要があるとか,このタスクはもう結構進んでいるからしばらく置く,といったことが発見できなくなっている状態.これも進捗をまめに記録し,参照できる状態にしておくという対策が考えられる.

不可能な優先度付けを行っている

これはいわゆる見積りが甘い,に近い状態で,自分の遂行能力を過大評価しているか,その逆か,ということである.こうなっているとタスクがうまく終わることはないので,積み上がったタスクを見てぐったりするか,タスクがなくて閑になってしまう.対策として,見積りに対して実際はどのくらいかかったかを記録していく必要がある.

リスケジューリングの要請に失敗している

見積りが外れるなどの理由で期限内のタスク遂行ができないと悟ったときには,リスケジューリングやタスクのやりとりなどができる人間に調整を頼むべきだ.どちらかといえばこれは義務に近い.これを守るためには,現段階でタスクを完了できるのかについて普段から気を配っておく必要がある.

タスクを実行するときの問題]

周辺知識が不足していて想定よりも時間がかかる

思っていたよりもコードや仕様が複雑で時間がかかる場合.業務知識・技術的は経験によって補っていくことができるが,周辺知識が足りないかもしれないことを察知して見積りを増やすとか,ペアプロなどを頼むという対応をするのが良さそう.

時間が分断されて集中力を失う

チーム全体が逼迫してきて,あるいはチーム以外の仕事によってタスクが増えるとか,MTGが頻繁に入るといった状態. これは自分から自分の時間を確保するというムーブをかます必要がある.同僚は自分のカレンダーに自分で予定を入れて,他の用事が入るのをブロックしたりしている.

想定外の理由でタスクが停止する,連帯不足でタスクが停止する

タスクにかかわるメンバーが多い場合,コミュニケーションコストがかかるため,これによってタスクが止まるということがある.対策としてはタスクが止まらないようにするか,タスクが止まっても進捗するようにスケジュールを組むか,といったところか.そもそもタスクが止まらないのが一番良いので,相手が知りたいであろう事柄を先回りして用意しておく,といった対策を行うのが一番筋が良いように思える.とはいえ回避不可能なこともあるので,予備のタスクを用意しておくといった進め方を考えることができる.

なすべきこと

自分の感覚と合わせて検討したところ,以下のような状態であることがわかった.

  • 見積もりとスケジュールへの組み込みができていない.
  • タスクを取るか取らないかを判断するために,スケジュールを参照していない.
  • スケジュールを把握していない.
  • チームメンバーが仕事しやすいような連帯をしていない.

これらの解消に向けた対応を行う必要がある.

したがって,

  • タスクを取ろうとする場合,見積もった上でスケジュールを参照してから取るか取らないか決める
  • タスクを取る場合,見積もったら即座にスケジュールに組み込む
  • 小まめにスケジュールとその進捗を更新・把握する
  • 相手が何を求めているのかを気にかけながら仕事をする

といったアクションプランを置いた.今後はこれを実践し,1週間ほどしたら振り返りたい.