スケジュールの見積もりを適当に答えたらコミットメントにされる問題について

こちらのエントリを読んでいたら、なるほどとてもわかるとなった。そしてこの問題については何らかの解を持っておくべきだと思ったため、ちゃんと考えることにしたのがこのエントリの趣旨である。

上述のエントリには、ソフトウェア開発者がスケジュールのコミットメントを求められた場合、精緻にスケジューリングするためのタスクやスケジュールに余裕を持たせるためのバッファを積むしかなくなり、結果としてソフトウェア開発が遅くなってしまうという話が書かれている。

ソフトウェア開発を実際に行ったことがある人であればこの話には凡そ同意できるとは思うが、それ以外の人には理解に苦しむ話となる。

それゆえに、現代においても「この機能はいつまでにリリースするの?出来なかったらどうするの?」といった質問が横行し、それに対して特に意味のないスケジュールを答えるという虚無の応答が多くのチームでいまも行われている。

ビジネスサイドの仕事という「なんとかなる仕事」

そもそもとして、なぜスケジュールを求める質問が発生してしまうのだろうか。この問いに対して「仕事には納期がつきもの」という回答がなされることがあるが、これは筋違いである。納期があったとしても、納期通りにいかないことが問題だからである。

ところで、なぜビジネスサイドの仕事は納期通りになることが多いのだろうか。この差分こそが、このような問いが発生してしまう原因だと考えている。

つまるところ、ビジネスサイドの仕事は「なんとかなる」のである。営業電話を一本かけなかったところで、提案書が完璧に仕上がっていなかったところで、契約書に不備があったところで、だいたい何とかなるのである。顧客に謝ったりすることはあれど、少なくとも成果がゼロということはない。ゆえに納期に間に合わせることは容易い。納期を優先して品質を犠牲にすれば、なんとかなってしまうからだ。

ところがソフトウェア開発は「なんとかならない」のである。バグがあれば正しく動かないし、インフラに不備があればそもそもアプリケーションが起動すらしない。よって、仕事が正しく終わらないと成果がゼロになるのである。つまり、納期を優先しすぎると成果がゼロとなってしまうリスクを常に抱えているのである。

「自分で決めたスケジュールくらい守れるでしょ」という問いに対するアンサー

ところで、「自分で決めたスケジュールなのだから、それくらいは当然に守れるでしょ」といった問いが当然に存在する。

しかしこれは明確に不可能だというのが現状のソフトウェア開発である。これは各々のスキルの問題ではなくソフトウェア開発の複雑性に起因する。理由を書き出せばキリがないが、これはもう諦めるしかない前提条件というほかない。(数多くのソフトウェアの専門家が同様に諦めている)

つまるところ、スケジュールをコミットしたところでそれを守れるかどうかは本人もわからないのだ。そして、守れるかどうかわからない約束をすることは不誠実であると多くの開発者は考えている。

それゆえに、明確なスケジュールを答えることは通常は避けたいし、スケジュールにコミットメントを求められたとしても困るだけであるし、やむを得ず答えたとしても大して意味のない適当な数字となってしまうのである。

ソフトウェア開発に関わる私たちはどうあるべきか

ソフトウェア開発者側からすると「誠実にありたい」がゆえにスケジュールの明確なコミットを避けたいのだが、とはいえビジネスの場においてはある程度の納期は必要となる。

つまるところ現実的な解は、スケジュールは流動的であることを理解した上で、スケジュールが遅れた時のリスクマネジメントを適切に行うことである。

具体的には下記のような行動が基本となる。

  • 社外含め、期日をコミットしすぎない

  • 開発者は、自身が想定する期日を誠実に伝え、それからズレる可能性がある場合は速やかに共有する

  • 開発者以外のステークホルダーは、開発者を信頼し、期日についてのコミットメントは求めず、期日の見積もりは流動的であることを理解する

  • 期日に間に合わなさそうな時は、機能や品質などの何かを犠牲にすることを厭わず、それらを最初から計画に含めておく

まとめ

ソフトウェア開発のスケジュールについて過度なコミットメントを求めることは誰にとっても価値がない。不誠実な約束でしかないし、もしそれをコミットしたとしても凡そ意味のない数字だからだ。

ソフトウェア開発においてスケジュールを求める場合は、あくまでも参考だと割り切って今後の予測に役立てる程度にすること、もしくは、確実に守らなければいけない期日の場合は機能や品質を犠牲にするしかない。


P.S. 中の人は無職で仕事をさがしています!仕事以外の飲み相手も探しているのでお気軽にご連絡ください!


まいにちのご飯代として、よろしくお願いします。