仕事に効くコンピュータサイエンス
積む・並ぶ・引く — データ構造読了目安 10分

並べ方を変えれば、量を減らさなくても楽になる

この章では、たまった仕事や情報をどう保持し、どう取り出すかという観点から、5つの構造を仕事の場面に置き換えて見てきました。最後にここまでの全体を振り返り、次の章への橋渡しをします。

この章の地図

振り返りは駆け足になりますが、それぞれのページで見た要点を、もう一度短くたどり直します。

最初に見たのは、割り込み仕事に向いたスタックと、順番仕事に向いたキューでした。最後に中断したところから戻る割り込み処理と、来た順を守る依頼対応は、似たようでいて、取り出す順番の基準がまったく逆でした。この2つを混同すると、公平さを損なうか、割り込みへの対応が遅れるか、どちらかが起きます。実際の職場では、この2つを単独で使う場面よりも、組み合わせて使う場面のほうが多いことも見ました。全体の受付順序はキューで守りながら、局所的な中断と再開だけをスタックで管理する、という二層構造にすると、公平さと機動力の両方を保てるのでした。

次に見たのは優先度付きキューでした。来た順ではなく、締切や影響範囲という基準で並べ替える構造です。基準を先に言葉にしておくことが、後回しにした理由を説明できるかどうかを分けました。緊急度と重要度という2つの軸を区別しないと、締切のない重要な仕事が放置され続ける、という落とし穴も見ました。優先度のラベルを乱発すると信頼を失うことや、段階を細かく刻みすぎるとかえって迷う時間が増えることにも触れました。

そして索引です。命名規則やタグ付けは、探す時間そのものをなくす仕組みでした。ただし索引は作って終わりではなく、資料が増えるたびに保守し続ける前提の仕組みだという点も確認しました。間違った索引は、索引がない状態よりもかえって時間を失わせることがある、という注意点もありました。索引は自分のためではなく、あとで探す誰かのために作るという意識も、忘れずにいたい視点です。担当者本人にしか通じない手がかりは、本人が異動や休職をした瞬間に機能を失ってしまうのでした。

最後に木構造です。組織図やフォルダのように枝分かれした情報は、1本の列では表しきれません。頂点から枝をたどることで、全体の見通しと部分への集中を両立できる一方、階層を作り込みすぎたり、枝を勝手に横につないだりすると、木構造そのものが機能を失うことも見ました。使う頻度が高い情報は浅い階層に、めったに使わない情報は深くても構わない、という深さと幅のバランスの考え方も、実際にフォルダを設計するときに役立つはずです。

この5つを並べてみると、扱う対象の性質がそれぞれ違うことに気づきます。スタックとキューは「時間の流れの中でどう処理するか」という問いに答え、優先度付きキューは「何を基準に並べ替えるか」という問いに答えます。索引は「探す手間そのものをどう消すか」という問いに答え、木構造は「枝分かれした全体をどう見渡すか」という問いに答えます。問いが違うからこそ、答えとなる構造の形も違っている、と捉えると整理がつきやすくなります。どの構造にも得意・不得意があり、どれか1つが常に正解ということはなく、仕事が何を優先しているかによって、選ぶべき構造も変わるのでした。

5つに共通する1つの教訓

一見ばらばらに見えるこれらの構造には、共通する教訓が1つあります。それは「たまったものの並べ方を変えるだけで、仕事の量そのものを変えなくても、扱いやすさが大きく変わる」ということです

多くの職場では、仕事が詰まったときに「もっと時間をかける」「人を増やす」という発想に流れがちです。しかしこの章で見てきたように、詰まりの原因は量そのものではなく、並べ方の選択ミスにあることが少なくありません。来た順に扱うべき仕事を割り込みで扱ってしまう、重要度で並べるべき仕事を来た順のまま放置する、探す仕組みを整えないまま資料をため続ける、枝分かれした情報を1枚のフラットな一覧にしてしまう。どれも、量を減らさなくても、並べ方を変えるだけで改善できる問題です。

1つの場面に5つの構造を当てはめてみる

最後に、1つの職場の場面に、この章で見た5つの構造をすべて当てはめてみます。

ある担当者が、複数の取引先から届く問い合わせに対応しているとします。まず、通常の問い合わせはキューに乗せ、届いた順に対応します。そこに緊急の割り込みが入ったら、今の作業をスタックに積んで一時中断し、緊急対応を終えたら元に戻ります。問い合わせの中には締切や影響範囲の異なるものが混ざっているので、優先度付きキューとして並べ替え、対応の順番を決め直します。過去のやり取りを参照する必要が出たら、案件番号という索引を使って、探さずに一直線にたどり着きます。そして、これらの問い合わせが属する取引先や案件を、組織図やフォルダのような木構造で整理しておけば、全体としてどの取引先にどれだけの案件が動いているかを、見失わずに把握できます。

1つの場面の中に、5つの構造がそれぞれ違う役割で同時に働いていることが分かります。どれか1つだけを整えても、詰まりが完全になくなるわけではありません。しかし、どこか1つでも構造が欠けていたり、選び間違えていたりすると、そこが詰まりの発生源になります。自分の仕事のどこにどの構造が働いているか、あるいは働いていないかを見つけることが、この章の実践的な使い方です。

このとき役に立つのが、詰まりを感じた瞬間に「これは今どの構造の話か」と自問する習慣です。古い依頼が放置されているなら、それはキューが崩れてスタック的な扱いになっていないか。締切間近の案件が後回しにされているなら、優先度付きキューへの切り替えが要らないか。資料を探すのに毎回時間がかかっているなら、索引がそもそも存在しないのではないか。似たものを二重に作ってしまっているなら、木構造の全体像を見失っていないか。問いの形を先に持っておくと、詰まりに直面したときに、やみくもに時間を投じるのではなく、どの構造を直せばよいかへとすぐに視点を移せます。

もう一つ大切なのは、これらの構造は一度整えて終わりではないという点です。依頼の量が増えれば、キューだけでは対応しきれず優先度付きキューへの切り替えが要ります。資料が増えれば、当初の命名規則では足りなくなり、索引の見直しが要ります。組織が大きくなれば、木構造の深さや幅も見直しが要ります。仕事の量や関係者が変わるたびに、構造も合わせて見直す、という前提を持っておくことが、この章で見た教訓を長く効かせるための、いちばん現実的な鍵になります。

構造を選び直すことは、大きな投資を必要としません。依頼の入り口ごとに扱い方を決める、締切と影響範囲で優先度をつける、命名規則を1行決める、指示系統を1枚の図にする。どれも今日から始められる小さな工夫です。それでいて、積み重なると「詰まる」感覚を根本から変える力を持っています。

ここで注意しておきたいのは、この教訓が「工夫さえすれば仕事量が減る」という話ではないことです。並べ方を変えても、こなすべき仕事の総量そのものは変わりません。変わるのは、同じ量の仕事を進めるときの迷いや、探す手間、戻る手間といった、仕事そのものではない部分にかかっていた余計な時間です。この余計な時間は、意識しないと存在にすら気づきにくく、だからこそ長年放置されたまま、じわじわと積み重なっていきます。構造を見直すという行為は、仕事を増やす行為ではなく、仕事にまとわりついた余計な時間を洗い出す行為だと捉えると、取り組みやすくなります。

次の章への橋

この章では、たまったものを「どう保持し、どう取り出すか」という視点で構造を見てきました。しかし、構造を整えただけでは、大きな問題そのものは解けません。締切に追われる大きな仕事、関係者の多い複雑な調整ごとは、並べ方を変えただけでは、依然として重く、手が付けにくいままです。

次の7章「大きい問題を小さく割る」では、この大きな問題そのものにどう手を付けるかを扱います。

たとえば、複数部署が絡む大型プロジェクトの立ち上げのように、関係者が多く、決めるべきことが山積みで、どこから手を付ければよいか分からない仕事があります。このような仕事は、いくら並べ方を工夫しても、そもそも1つの塊のままでは扱いきれません。まず塊そのものを、扱えるサイズの部分に割る必要があります。

7章で扱う分割統治は、大きな問題を扱いやすい小さな部分に分けて、それぞれを個別に解き、最後に組み合わせて全体の答えを作る考え方です。貪欲法は、その場その場で最良に見える選択を積み重ねていく方法で、手早く進められる代わりに、思わぬ罠にはまることもある考え方です。動的計画法は、一度出した部分的な答えを覚えておいて使い回し、同じ計算を何度も繰り返す二度手間を省く発想です。探索と枝刈りは、調べるべき範囲が広すぎるときに、見込みのない選択肢をどこで打ち切るかという判断基準を扱います。

この章で整えた構造は、次の章で問題を分割していくときの土台になります。たとえば、締切と影響範囲で並べ替えた優先度付きキューがあれば、分割統治で問題を小さく割ったあとも、どの部分から手を付けるべきかに迷わずに済みます。木構造で整理された情報があれば、分割した部分がどこに位置づくのかを見失わずに進められます。

逆に言えば、この章で見た構造が整っていないまま大きな問題を分割しようとすると、分割したはずの部分同士がどう関係しているのか、どちらを先に手を付けるべきなのかが分からなくなり、分割そのものが余計な混乱を生みかねません。たまったものの並べ方を整えることと、大きな問題を小さく割ることは、別々の技術でありながら、一方が他方の土台になっているという関係にあります。構造を整える章から、問題を解く章へ。この章で身につけた「並べ方を疑う視点」を持ったまま、次のページで、大きな問題を解く章の入り口に立ちます。

持ち帰り

  • スタック・キュー・優先度付きキュー・索引・木構造は、それぞれ異なる並べ方の基準を持つ道具である
  • 仕事の詰まりの多くは、仕事の量ではなく並べ方の選択ミスから生まれ、並べ方は今日から変えられる
  • 構造を整えることは、次の章で大きな問題を小さく割って解くための土台になる

やってみる

この章の5つの構造のうち、自分の仕事にいちばん当てはまっていなかったものを1つ選び、今週中に並べ方を1つだけ変えてみてください。変えたあとに、詰まる感覚が実際に減ったかどうかも、1週間後にあわせて確かめてみましょう。