- 分割

「"困難の分割"は、金田一少年の事件簿では、密室トリックで使われてたぞ。」

マクドナルドのハンバーガーは、ミートパティ、バンズ、ピクルス、ケチャップ、マスタードで作られている。おっと、塩、コショウも使われてるな。これらの材料のうち、ミートは牛肉 100% ってことだから、材料は牛肉だけだな、きっと。バンズは小麦粉、牛乳、塩、イーストで作られている…と思う。詳しくは知らない。ピクルスはキュウリと酢かな。ケチャップはトマトと…なんだろう? まあ、いいや。

さて、ここまでで気付くことは、材料ってのは入れ子になってるってことだ。材料を展開するとハンバーガーは牛肉、小麦粉、牛乳、塩、イースト、キュウリ、酢、トマト、コショウなんかで作られてると云うことになる。

もし、一件一件の店舗が、小麦粉、キュウリ、酢、トマトなんかを仕入れて、各店でバンズ、ピクルス、ケチャップを仕込むところからやらなきゃならないとしたら、各店舗規模は大きくなり、サービスの内容もずいぶん変わるだろうね。「お待たせしません!」なんて言えなくなるかもしれない。たぶん、スピード勝負ぢゃなく、味で勝負するようなビジネスになるんぢゃないかな。学生の短期バイトも難しくなるだろうね。バンズを作るところからハンバーガーを作るところまで、仕事は多岐に渡るから。まあ、簡単そうなところから少しずつ覚えて、「バンズは温度が命なんぢゃ!」ってな感じの職人さんに怒られ続けることになるに違いない。

でも、現実にはそんなことにはなってない。待ち時間のないサービス、一定の味、低価格商品、短期の学生のバイトで成り立っている。バイトを初めて一月もすれば、もう、外からは他のバイトと区別はつかない。実際は、習得した技術に応じてランクがあったりするのだけれどね。

「同じものを作るのなら、そういうこともできるさ。毎回、違うものを作る IT 業界には適用できない。」と思うなかれ。よーく考えてもらいたいのだけれども、50 年前にマクドナルドはなかったんだ (ちなみに日本マクドナルドは 1971 から)。一昔前までは「お前にはまだまだ暖簾は任せられねぇ!!」ってゆー寿司屋、うどん屋、そば屋、ラーメン屋などなど…が、当たり前だったんだ。特定の場所、特定に店に行かないとそこの味を味わうことが出来なかった訳だ。ファミレスチェーンみたいに、どこの店に入っても一定の味のものを食べられるようになったのは、最近のことなんだ。

重要なのは、材料、調理方法、料理、調理者の関係だ。調理方法を分割 (階層化) することによって、一つ一つの部分を小さくできたと云うこと。マクドナルドのバイト学生が、小麦粉からバンズを作る部分を知らなくてもいいような仕組みにした訳だ。調理方法と強く結びついているのが調理者だが、調理方法が複雑だと、調理者が習得するべき事が多くなっちまう。調理者を超人に育て上げるよりも、調理方法を分割する方が簡単に決まってる。それを実現したから、短期バイトの人間ばかりで切り盛りできるようになった訳だ。

これを抽象化して、他の言葉で置き換えてみる。材料は入力、料理は出力、調理方法は処理、調理者は…オペレーターにしておこうか。こういう構造は至る所にある。例えば、オペレーターを新聞社、入力を事件、出力を新聞として、取材方法から記事の書き方、新聞の印刷、配達までを処理ととらえることができる。印刷機なら紙とインクが入力で新聞が出力。オペレーターは印刷機で、こいつは処理も知っている。自動化ってやつだな。IT 業界は、顧客要求が入力、作るシステムが出力、オペレーターはシステム開発会社なんだが、処理に相当する部分がかなりグチャグチャだ。小さいところでは、顧客要求が入力、インタビュアーがオペレーター、出力が要求定義書、処理は … インタビューシートとか用意しているところもあるかもしれないけれど、概ね各人の経験と感なんぢゃないかな? あんまり定型化はされてないと思う。

  • 入力、出力、処理、オペレーターの関係は、いろんなところにマッピングできる。
  • 処理の部分を分割 (階層化) すれば、オペレーターの負担は軽減される。
  • けど、IT 業界は処理の部分が一定ぢゃない。
  • だから、分割できない。

"同じ物を作ってるかどうか?" ぢゃないんだ。インスタンスは別だからね。"処理" の部分が同じかどうか、こっちが本質。次が処理の分割。困難なことは分割して簡単なことの集合にできるし、分割することによって "同じ部分" を増やすことができたりもする。ハンバーガーもチーズバーガーもダブルバーガーもミートパティやバンズを作るところは一緒。調理の過程でちょっとだけ差を埋めることになる。

今日のところはこんな感じ。