「チームでのソフトウェアエンジニアリング」の話です。(つまり、僕がいつもやってることの話)
結局、品質のツマミを常に最大にすることが、成果(スピード)と成長(学習)のバランスのスイートスポットに到達するための方法なんだろうな。
「どうやってバランスを取るか」という思考は、どうしても苦しい。特に、本質的にはトレードオフでないはずのもののバランスを考えるのは、混乱する。
(短期的な)成果も、学習も、長期的な成果のためにあるはず。なのに、なぜ、苦しくなってしまうのか。どちらを取れば長期的な成果が最大になるのか、わからなくなってしまうからだ。
その答えが「品質」なのだと思う。いついかなるときも、自分(たち)にできる最高品質を追求する。そうすれば、自ずと成果と学習の総合は最大限になる(ように思われる)。
正確には、少し妥協した場合に比べると、短期的な成果は「少し減る」だろう。なぜなら、自分(たち)にできる最高品質とは、チームの中で最もできるエンジニアの最高品質と、それ以外のエンジニアの最高品質よりも少し上、を掛け合わせたものだからだ。
この「よりも少し上」がポイントで、ここを妥協すれば、短期的な成果は最大になる。「少し上」にするのは、チームとして余分の労力をかけることになるから。
しかし、誰もが妥協せず、特に、チームの中で最もできるエンジニアが徹底的に妥協せず、他のエンジニアを励まし、基準を高め続けたとき、成長が最大化される。品質も高まる。そして、成長と品質が高まった結果、長期的な成果は最大化される。
たぶん、そういうことだ。
ということが、たぶんこの記事にも書いてある。
以前一度読んだことがあったけど、今回深く考えてみて、ようやくわかったような気がする。