日々常々

ふつうのプログラマがあたりまえにしたいこと。

「遅れ」なんてない

「頑張って遅れを取り戻す」

綺麗な言葉ですが、私は嫌いです。その中でも次の言葉が特に嫌いです。

  • 頑張る
  • 遅れ
  • 取り戻す

全部。これらが嫌いな理由をそれぞれ説明していきます。順番は「頑張る」→「取り戻す」→「遅れ」です。

なお、「頑張って遅れを取り戻す」に期待される結果は「他に一切の影響を与えず、遅れだけが綺麗になくなる」だと思われます。

頑張る

「頑張ってなかったん?」と言うと「頑張っていましたが、もっと頑張ります。」みたいなのが返ってきます。でもこれって多分「頑張る」と言われることが求められているからそう返してるだけで、もともと手なんて抜いていない。仮に手を抜いていたとしたら「頑張る」は「手を抜いていました」の宣言になるので、それを許容してる状態が問題になるんじゃないかな。

とか言葉遊びは置いておいて、現実の話をします。こういう文脈での「頑張る」は「長時間連続労働」に他なりません。そこでは「成果=労働時間」の等式が成り立つので、長時間連続労働たる頑張りが成果に直結するわけです。つまり「頑張る」とは「労働時間を稼ぐために長時間連続で労働します。」ということ。実にわかりやすい。

そのようなコンテキストであっても、直接言ってしまうと「成果は労働時間ではない」と返されます。じゃあ長時間連続労働以外の「頑張る」ってなにかを教えてもらいたいところです。仮に他の頑張り方があったとして、それは「頑張る」と表現されるものでしょうか。

私が「頑張る」が嫌いな理由は、言った側が言わされている言葉だから。 言った側は「自分の頑張りが足りなかった」と懺悔し、言わせた側は「懺悔を受け入れる代わりに罰を受けろ」と罰を与えるわけです。そして罰とは長時間連続労働。長時間労働の当然の結果として、イマイチなものが生まれるけれど、それはイマイチなものとは認識されません。「頑張って作ったもの」は聖域化するので、スバラシイものとして扱われます。実際は技術的負債を負って生み出した技術的資産なので、計画的に負債を返済すべきなんですが。

取り戻す

取り戻せない。不可能に挑むのはやめましょう。

取り戻せたシナリオ、つまり「遅れ」が「頑張る」で取り戻せたとして。それならば、遅れてなかった状態から同じことをしてれば、もっと進んでいることになります。それと比べれば遅れているので、永久に遅れはそのままです。

「いやいや頑張り続けることはできないので、それは机上の空論だ」というのはあるでしょう。これも頑張りが長時間労働の文脈だから成り立つ主張。長時間労働以外の頑張りを持ってきてください。それは遅れてない状態では不可能なんでしょうか。

続けられないものは、要するにリソースを消費するものです。例えばお金とかですかね。「遅れを取り戻すためにお金を使う」は一見もっともらしいのだけれど、やっぱり遅れてない状態でそのお金を使ったものと比べれば遅れたままなので、取り戻せてない。この辺りまで拡げてしまうと、遅れが取り戻せても資金は減ってるって話になる。

私が「取り戻す」が嫌いな理由は、言った側が言わされている言葉だから。 つまり「遅れなどなかった。いいね?」に対して「はい、遅れなどありませんでした!」と答えさせるのと同義なのが「取り戻す」という発言なのです。不可能を可能とする、虚偽の強要ですね。ひどい話だ。

遅れ

さて、本丸の「遅れ」です。「遅れ」なんてない。

あるのは遅れではなく、見積もりと現実の差分です。見積もりと現実の差分はただの差分でしかありませんが、きっと「現実が遅れている」よりは「見積もりが違っていた」と捉える方が建設的です。見積もりの正確性などの話は別にしたいところですが、見積もりと呼ばれる未来予測の精度を上げるには、見積もり(訪れるであろう未来)と現実(訪れた未来)の差分を計測することからはじまります。これを「現実が遅れている」とすると、見積もり精度の改善機会を逸することになります。見積もり精度を上げる必要がないなら、別に「現実が遅れている」のままで構わないと思います。

「遅れ」は比較対象がなければ存在できません。私は「遅れ」や「時間がかかっている」と聞くと、「それは何と比べて?」と聞いてしまうことがあるのですが、返ってくるのは「スケジュールと比べて」とか「他の人がやる場合と比べて」とかがほとんどです。

スケジュールとの比較による「遅れ」は「見積もりと現実の差分」です。見積もった人とその見積もりの影響を受ける人に差分を伝えれば有効活用できるかと思います。他者の見積もりと現実の差分を「遅れ」とするのは、見積もり精度の改善機会を奪います。自身の見積もりと現実の差分を「遅れ」と扱う先にあるのは、見積もりに合わせる技術の向上です。見積もりに合わせる技術には問題を隠蔽したり迂回したりする技術も多分に含まれます。これらは非常に役立ちますし、そういう仕事も重要なのですが、技術者として軸に置く技術としては微妙かなと思います。

他の人との比較による「遅れ」は・・・・比較対象の人が実施した現実は存在しないので、ただの妄想でしかありません。仮に具体的な人がいたとして、その人がその仕事を全く同じ条件でできたでしょうか。できるわけがないのです。だってやらなかったんだから。この手の発言は「自分がやった方が早い」という発言や、仕事を引き取った人があっさり片付けてしまったことなどから導き出されたものでしょう。ですが、起こっていない現実はどうなるかわかりません。なのでこれも「見積もりと現実の差分」として扱えます。見えている差分は、見積もり条件が「その人がやったら」に対して、現実は「自分がやった」になります。差分を分析すれば、見積もり精度の改善に活用できるかと思います。

比較対象の質問には、たまに「なんとなく」が返ってきます。こういう時ほど要注意だったりするのですが、状況がさまざまなので別の機会にします。

私が「遅れ」が嫌いな理由は、言った側が言わされている言葉だから。 言った側が「自分の不足で予定通りできなかった」と、言わせた側の責任を自発的に背負いこみます。この儀式は「見積もりは正しく、現実が間違っている」という状態を作り出します。言わせているのが見積もった側で、見積もりと現実に差分があると都合が悪いようなことをしているので、現実が間違っていることにしているのです。

現実を疑うのもたまにはいいかもしれませんが、休み休みやってほしいものです。

ようするに、私のために

「頑張って遅れを取り戻す」

頑張る、遅れ、取り戻す。いずれも言った側が責任を一身に背負おうとする言葉。英雄願望は他所でやってください・・・と思う気持ちもなくはありません。まあそれはそれとして。

私がこれらの言葉を嫌うのは、言った側が言わされている言葉だから。そんな言葉を3回も使っているので、すごくとてもかなり嫌いです。言わされる言葉が嫌いな理由も色々あるのですが、その中でも特に重要なのは「自己責任」にすべてがラッピングされることです。

自己責任に閉じられた世界は強固です。内側のものは容易に外に出てこなくなります。持ち主はまず中のものを外に出そうとしなくなり、出すにしても申し訳ない感じか、渋々と言った感じで出すようになります。持ち主だけでなく、外部からも干渉しづらくなります。お願いしないと出てこなくなるのでそもそも手間ですし、「その人が自分の責任でやろうとしているのだから手を出すのは失礼だ」とか色々理由をつけて視界を閉ざしてしまうことも、私はよくあります。

なので、自己責任にラッピングする前に、一度晒してみて欲しい。私のために。 その問題が改善の機会などの宝物じゃないかを確認してからでも遅くないと思うんですよ。

おまけ: それはそうとして、現実問題の「遅れ」はどうすんの?

その責任をとるのが、見積もりを使った人の仕事です。

もしあなたが見積もりを使う側でないのであれば、あなたに責任はないです。もし責任を引き受けたければ、その権限を得るのがいいと思います。権限もなしに、勝手に取れない責任を取ろうとしないでください。とはいえ、一技術者として「見積もりと現実の差分」にアプローチはできると思います。例えば検出したら即アラートをあげるとか、早期に検出できるように不確実なところから先に手をつけるとかですかね。その辺は矜恃に従ってやればいいと思いますが、責任の所在は別の話です。

もしあなたが見積もりを使う側であるならば、甘んじて受け入れてください。そして自身のできる最大限のことをしてください。「できること」の中には見積もった人や実施者を叱責することや、「遅れを取り戻す」ために何かを強要することも含まれるかもしれません。その結果がどうなるかもご自身の責任ですが。個人的には「「現実と差分があった見積もり」を使ってしまう自分」にアプローチするのがいいと思います。まあそれができる人は「この遅れどうするんだ!」なんて言わない気はするけれど。

追記: 綺麗事

「悪者なんていない」と綺麗事を書いておきます。

基本的に「頑張って遅れを取り戻す」は自発的に出てくるので、他者の意図は介在しません。私は嫌いな発言のことを考えるより、その発言が出た事象をどう見るかを考えるほうが好きです。

もし言わせた側に悪意があるのであれば、言わせた側が悪者でいいと思います。対処はその人(往々にして権力者なのだけど)をすげ替えるとか、面倒なんでとっとと脱出するとか、それも面倒なんで時間が過ぎるのを待つとか、色々あるので好きなように。まあ言わせる意図があったとしても、悪意があるのではなく、策がないだけだったりするのだけど。だって責任取れない人に責任押し付けても何も解決しませんから・・・。