私は複雑な課題に取り組んでいるときに、芋づる式に新しい問題が現れて、気づいたら多くの時間を消費してしまうことが多いです。このような状態の時に、意識すると良いポイントが本に書かれていたのでまとめてみました。
今回参考にさせていただいた本がこちらです。
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則
ヤクの毛刈り
ヤクというのは牛の一種で、その体を覆う毛が極端に多いのが特徴です。夏になるタイミングで毛を刈るのですが、本体に到達するまでに相当たくさんの毛を刈る必要があるそうです。
同じように問題に取り組んでいる時に、まるでヤクの毛刈りのように、ある問題を解こうと思ったら別の問題が出てきて、なかなか本体に辿り着かない。問題を解こうと思ったら、さらに別の問題が出てきて、、、という状態が延々と続く。
もはや何を解決しようとしていたか、元の問題を見失ってしまうことが私もよくありました。
対応方法1 早々に切り上げる
ヤクの毛を刈っている状態に陥っている状態だと感じたら、立ち止まり、そもそも何が目的だったか思い出すようにする。「目的からすれている」「時間やコストと見合わない」と認識した場合は、すぐに作業を止め、別の道がないか探してみる。
また他の人が同じような状態に陥らないように、作業が立ち止まった顛末をメンバーに共有する。チームメンバーの時間ロスを未然に防ぐことに繋がります。
対応方法2 立ち向かう
基本的に「ヤクの毛刈り」は避けるべきですが、価値ある目的や緊急トラブルなど、「ヤクの毛刈り」を乗り越えて、問題を解決しなければならないときもあります。
(確かに自分自身も、時間をかけて解決したものが、結果的に一番身についていると感じることも多いです。)
その際に注意するべきことが、問題が脳内でオーバーフローしてしまうことです。「ヤクの毛刈り」は1つの問題が解決しないうちに、次の問題が発生してしまいます。問題だけが芋づる式で発生して、脳内スタックがオーバーフローすることがしばしばあります。
この時の意識すると良いポイントが、問題解決を頭の中だけでやらないことです。(←よくやってしまっていました💦)
問題を書きながら、丁寧に、順に、ひたすら問題を解決していく。
プログラミング中でも「ヤクの毛刈り」のような状況は発生します。この時に、複雑なコードを読み込む時こそ、メモを取りながら作業を進めることが重要。
コードの場合、作業より思考の部分が多くなるので、メモを取らずに「思考のループ」に陥ることを防ぎましょう。