月曜の朝、机の上に依頼が三件重なっています。大型案件の提案書、来週の会議の資料、複数拠点からの問い合わせ。どれも「大きい」と感じ、手が止まります。このページの問いはこれです。大きい問題を前にしたとき、頭の中で何が起きているのか。そしてその立ちすくみは、どうすれば解けるのか。
提案書を例に、もう少し具体的に見てみます。締切は来週の金曜日。中身は現状分析、競合比較、提案内容、価格の四つの要素を含む予定です。ここで多くの人がまず感じるのは、「何から書けばいいか分からない」という戸惑いです。分からないまま数十分が過ぎ、結局は目についた部分から手をつけ、途中で行き詰まって別の部分に移り、また戻ってくる。こうした行きつ戻りつが、実は一番時間を食います。問題そのものの難しさではなく、着手の仕方が悪いために時間が溶けていくのです。
大きさが人を止める理由
問題が大きいと感じるのは、量が多いからではありません。手順が見えないからです。提案書という一枚岩を思い浮かべると、どこから書けばいいか分からず、着手そのものが重く感じられます。ところが同じ提案書でも、「現状分析」「競合比較」「提案内容」「価格」という四つの部品に分けた瞬間、印象が変わります。ひとつひとつは、今日の午後で終わる作業に見えてきます。
コンピュータサイエンスの世界でも、事情は同じです。コンピュータは巨大な問題をひと息に解く魔法の装置ではありません。むしろ逆で、どんなに複雑な処理も、突き詰めれば単純な手順の積み重ねに分解して実行しています。その「分解の設計」を専門用語でアルゴリズム設計と呼びます。アルゴリズムとは、問題を解くための具体的な手順のことです。料理でいえばレシピにあたります。設計という言葉がついているのは、同じ問題でも手順の組み方によって、かかる時間や手間が大きく変わるからです。
つまりアルゴリズム設計とは、大きい問題をどう小さく割り、どの順番で片付け、どこまでやったらやめるかを、あらかじめ決めておく技術です。これは情報科学の専門家だけの話ではありません。提案書を書くときも、問い合わせに対応するときも、実は毎回この設計をしています。ただし多くの場合、その設計は無意識のまま、思いつきで行われています。思いつきの設計は、疲れているときや依頼が重なっているときに簡単に崩れます。優先順位を誤り、同じ調べ物を二度し、見込みのない候補にいつまでも時間を使ってしまう。これらはすべて、アルゴリズム設計が甘いために起きる事故です。
先ほどの提案書の例に戻ります。もし着手前に「現状分析と競合比較は調べ物、提案内容と価格は組み立て」と分けておけば、調べ物の二つを先にまとめて片付け、そのあとで組み立ての二つに集中する、という順番が見えてきます。行きつ戻りつは起きにくくなります。この「先に分けてから着手する」という一手間こそが、アルゴリズム設計の最小の実践です。難しい理論を勉強しなくても、分け方と順番を決めるだけで、体感できる違いが生まれます。
四つの型を先に見ておく
この章では、大きい問題を小さくするための考え方を、四つの型に分けて見ていきます。ひとつめは、問題を独立した部分に分けて、それぞれを片付けてから最後に合体させるという型です。資料のチェックを章ごとに分担し、あとで一冊にまとめる作業がこれに近い発想です。
ふたつめは、その場その場で一番良さそうな選択を積み重ねていく型です。締切が重なった依頼を、緊急度が高い順や早く終わる順に片付けていくやり方が該当します。速く判断できる代わりに、あとから振り返ると必ずしも最善の順番ではなかった、ということが起こり得ます。判断の速さと結果の良さは、必ずしも両立しません。この型の値打ちは、判断にかける時間そのものを減らせる点にあります。
みっつめは、一度出した答えを取っておいて、次に似た場面が来たときに使い回す型です。同じような問い合わせに毎回ゼロから調べて答えるのではなく、過去の回答を保存しておいて引っ張り出す、という発想です。調べる作業そのものを一度で済ませ、二度目以降は保存した答えを取り出すだけにする、という考え方です。
四つめは、調べる範囲をあらかじめ絞り込み、見込みのない候補は早めに切り捨てる型です。取引先候補を全社同じ深さで検討するのではなく、条件に合わないところを早い段階で除外していくやり方です。すべての候補を最後まで平等に調べようとすると、時間が候補の数だけ増えていきます。見切りの基準を先に決めておくことで、この増加を抑えられます。
これら四つは、互いに矛盾する考え方ではありません。ひとつの問題の中でも、場面によって使い分けるものです。大きな提案書を書くときは、まず分けて分担し(ひとつめ)、その中の細かい調べ物は過去の資料を使い回し(みっつめ)、候補となる事例は条件に合わないものを早めに落とす(よっつめ)、といった具合に、複数の型を同時に使うことも珍しくありません。
もう少し別の場面でも確認しておきます。年に一度の全社イベントの幹事を任されたとします。会場選び、ケータリング手配、招待状の発送、当日の運営という大きな塊をひとつの頭で抱えると、身動きが取れません。会場選びとケータリングは並行して進められる独立した作業なので分けて分担します(ひとつめ)。会場の候補は、予算と収容人数の条件で真っ先に合わないところを外し、残った数件だけをじっくり比較します(よっつめ)。招待状の文面は、去年のイベントで使った文面をほぼそのまま使い回します(みっつめ)。当日の役割分担は、確定しやすい人から先にスロットを埋めていきます(ふたつめ)。ひとつの仕事の中に、四つの型がすべて自然に混ざっていることが分かります。
なぜこれが仕事に効くのか
アルゴリズム設計という考え方が仕事に効くのは、判断の基準を「その場の気分」から「あらかじめ決めた手順」に移せるからです。大きい問題を前にして立ちすくむとき、多くの場合は「どこから手をつけるか」を毎回その場で考え直しています。これは思っている以上に負荷の高い作業です。手順そのものをあらかじめ型として持っておけば、目の前の問題がどの型に近いかを判定するだけで、着手できるようになります。
たとえば、複数拠点から届く問い合わせ対応に追われている場面を考えます。何も型を持っていなければ、届いた順に手をつけるか、声の大きい依頼から対応するか、その場の判断に頼ることになります。ところがここに「早く終わりそうなものから片付ける」という型と、「同じ質問には過去の回答を使い回す」という型を持ち込むだけで、対応の速度も一貫性も変わります。型は、状況ごとに使い分けるべきものであって、常にひとつが正解というわけではありません。この見極め自体も、この章で扱う内容です。
もうひとつ大事なのは、型を知っていると、自分がいまどの型を使っているかを言葉にできることです。「これは分けて片付けるべき仕事だ」「これは早めに候補を絞るべき調査だ」と言葉にできれば、他の人に仕事を引き継ぐときの説明も格段に楽になります。感覚で進めていた仕事の進め方を、他人に伝えられる形に変える。これがアルゴリズム設計という考え方を仕事に翻訳する意味です。
型を持たないまま大きい問題に向き合うと、起きる失敗のパターンはだいたい決まっています。ひとつは、分けるべき仕事を分けずに抱え込み、着手が遅れること。もうひとつは、分けた結果を最後にうまく合体させられず、二度手間が発生すること。三つめは、目先の作業を優先しすぎて、重要だが着手が遅れがちな仕事がいつまでも残ること。四つめは、調べ物や比較検討に際限なく時間を使い、どこかで見切りをつけられないこと。この章で見る四つの型は、裏を返せばこれら四つの失敗パターンへの備えでもあります。
次のページから、四つの型をひとつずつ具体的に見ていきます。それぞれの型がどんな場面で効き、どんな場面で裏目に出るかを、職場でありそうな場面とあわせて確認していきます。型そのものは単純ですが、使いどころを間違えると効果が出ないどころか、かえって手間を増やすこともあります。その見極め方まで含めて押さえておくことが、この章のねらいです。
小さくすることにもコストがある
ここで先回りして触れておきたいことがあります。分ければ分けるほど良い、という単純な話ではないということです。分けた部品はいずれ合体させる必要があり、合体させる作業そのものに手間がかかります。週次報告を担当者ごとに分けて書いてもらった場合、最後にひとつの文書へまとめる担当が、表現のばらつきや重複を調整する作業を引き受けることになります。分け方が細かすぎれば、この調整の手間が本来の作業時間を上回ってしまうこともあります。
同じことは、目先の判断を積み重ねる型にも、過去の答えを使い回す型にも、候補を絞り込む型にもあてはまります。どの型にも、効果が出る場面と、かえって遠回りになる場面があります。次のページ以降では、それぞれの型の良さと同時に、この「効かない場面」も必ず確認していきます。良い面だけを覚えて現場に持ち込むと、型が裏目に出たときに気づけなくなるからです。
引き継ぎの場面でも、分け方の善し悪しがそのまま出ます。退職や異動で担当業務を後任に渡すとき、業務を機能ごとに細かく分けた引き継ぎ資料を作ると、一見丁寧に見えます。ところが分けた項目同士のつながりが説明されていないと、後任は個々の項目は理解できても、業務全体の流れがつかめません。分けることと、分けた後にどう合体させて全体像を示すかは、常にセットで考える必要があります。この「合体のさせ方」を考えずに分けるだけで満足してしまうのが、この章で扱う型に共通するつまずき方のひとつです。
この視点を持つと、大きい仕事に向き合うときの最初の一手が変わります。「とにかく手を動かす」のではなく、「これはどの型で解ける問題か」を数十秒だけ立ち止まって考える。その数十秒が、あとに続く作業全体の見通しを大きく変えます。型を選ぶ判断そのものは短くて構いません。大事なのは、判断を省略してしまわないことです。次のページからは、この見極めの精度を上げるために、四つの型それぞれの中身を具体的に見ていきます。
持ち帰り
- 問題が大きく感じるのは量ではなく、手順が見えていないからです。
- 大きい問題の解き方には、分ける・選ぶ・使い回す・早めに絞るという四つの型があります。
- 型を言葉にできると、自分の仕事の進め方を他人に説明しやすくなります。
やってみる
今日抱えている一番大きい依頼を、紙に書き出して二つ以上の部分に分け、合体のさせ方まで一言メモしてみてください。どこまで分ければ着手できそうか、その境目が見えてくるはずです。