予定

「予め定めるから予定。さて、何を定めた?」
予定は、意思決定すれば実現するものか、十分な実績があって予測が十中八九実現するものかに大別できる。前者ですぐに思いつくのは、遠足、運動会、忘年会、後者では、電車の到着時刻や、工場の生産台数などだ。

なかなか予定通りに行かないシステム開発ではどうだろうか? 納期を定めたって、それまでにシステムが完成するなんて滅多にないし、KKD*1がまかり通るところに十分な実績による予測なんて存在しない。で、うまくいかなかった結果について、「最初から予定に無理があった」などと云う分析をよく聞くが、実は予定に無理などないのだ。それどころか、ちゃんと予定通りに進めていることの方が多いかもしれない。「何を言っているのだ?」「とうとう錯乱してしまったか?」と思われたかもしれないが…。

"予め定める" ことを予定と呼ぶ訳だが、問題は「何を定めるのか?」だ。基本設計を 2 ヶ月行い、他の工程は端折って 8 ヶ月後に納品する予定を作ったとしよう。これで予め定まったのは、基本設計*2と呼ぶ作業を 2 ヶ月間行うことと、納品と呼ぶ儀式を 8 ヶ月後に行うと云うことでしかない。「何ができあがるのかは定まっていない」のだ。

機械の例でもう少し補足すると、「基本設計マシーンを 2 ヶ月間使いますよ (動かしますよ)」ってことに相当する。少し抽象化して、タスクとリソースと呼ぶけれど、予定として予め定められるのはタスクのボリュームではなく、リソースの使用期間だけなのだ。意思決定で予め定められるのは、これ。残念ながらボリュームの方は定められない。考えてみれば機械だってそうだ。予定として 1 日に 100 個の部品を作ると定めたところで、生産能力が 10 個/日なら実現はできない。当然、生産能力の範囲内の数量を作ることになる。それを達成するために、機械の使用時間を定める訳だ。ただ、機械の場合は生産能力が一定していて、原材料の投入量も決められるから、使用期間を定めると製造数が決まってしまう。このあたりが概念の分離を困難にしているのかもしれない。

最初に「十分な実績があって予測が十中八九実現するもの」を予定に含むと書いたが、それは "意思決定で決められる予定に基づいて、必然的に帰結する結果" と説明する方が適切なのだ。工場での製造量は、それぞれの機械の稼働時間、資材の投入量などから求められる結果で、電車も同じで、到着時刻 (始発駅以降の発車時刻も) は帰結する結果としての予定だ。

…と云う訳で、予定には意思決定による予定と、その結果として帰結する予定の2種類に分けられるのだが、システム開発における予定は意思決定による予定 (納品や打合せのようなイベントと、基本設計や実装のような、リソースの稼働期間) だけだ。機械では生産能力が確定要素だが、システム開発の作業は (一般的なやり方では) 個人の能力に依存するところが大きいため確定しないし、ボリュームは完成後にしか分からないので、帰結する予定は導き出すことはできない。従って、システム開発における納品予定は新幹線の到着予定とは種類が違って、"帰結予定" ではなく単独の "意思決定予定" なのだ。

27 才の独身者が、まだ相手もいないのに「28 才の誕生日に結婚式を挙げる!」と定めるのと同じ種類で、到達プロセスとは切り離されている。「その日に納品に行きますよーん。手ぶらになるかもしれないけれど。」と云うことだ。考えてみれば、なんとなく実現確率も近い気がする。

…そういえば、最近は晩婚化傾向にあるなぁ。

*1:IT 技術者の必須スキルである経験と勘と努力の略だそうな (涙)。

*2:そもそも "基本設計" が曖昧すぎるのだが、脱線するので触れない。