大規模組織におけるソフトウェア開発に関する誤解 その1:知的作業において「依存関係」が生じるのは、逃れられない物理法則の結果なのか?

背景

ヘンリー・L・ガント

第一次世界大戦の直前、フレデリック・テイラーの同僚であった H・L・ガントは、工程同士の依存関係をはっきり表示するプロジェクト管理表を提案しました。これはガントチャートと呼ばれ、物理的実体によって依存関係が生じる製造・建設・物流等の分野において有用です。(余談ですが、旧ソ連でも第一次五カ年計画においてガントチャートを使おうとしていました。)

SAFeの糸 残念なことに、知的労働と伝統的労働とは異なることを理解せず、ソフトウェア開発にまでこの手法が用いられてしまっています。プロジェクトマネジメント思考に囚われたソフトウェア開発会社は、計画を立てるために、伝統的なガントチャートを用いたり、赤い糸でモデル化したりして、判明している依存関係を考慮に入れようとすることがあります。赤い糸を用いる手法は、百年も使い古されたガントチャートと表面的に異なるだけなのですが、現在でも「アジャイル」なテクニックとして売り込まれています。

ソフトウェア開発(及びその他知的労働)に物理的な例え話を用いるのは、誤解のもとである。

以下に引用したのは実際のコメントです。ソフトウェア開発の現代的な手法を用いずに、物理的労働における依存関係(この種の労働においては現実に存在しますが)の管理ツールを用いようとするプロジェクトマネジャーの考え方を露呈するものです。

 依存関係が時代遅れの考え方による空想の産物に過ぎないと言うのであれば、まず靴を履き靴紐を結んでから、それを脱がずに素足と靴の間に靴下を履いてみなさい。それができなければ私は納得しない。

ソフトウェア開発においては、非同期の「依存関係」が生じるのは、逃れられない物理法則の結果ではない。

複数のスプリントを通じた「依存関係」を考慮に入れた計画を立てねばならないと思い込んでしまうのは、組織構造やポリシー、技術が時代遅れとなっている兆候です。これを問題として正面から取り組まなければアジリティは得られず、逆に、ガントチャートや赤い糸で固定化してしまっては解決しません。靴下と靴の例え話は、ソフトウェア開発においては「依存関係」が時代遅れの考え方による空想の産物であることを、迂闊にも露呈しています。

10年前には、同様の誤解を家の例え話としてよく耳にしました。「家を建てるには、まず土台から。屋根から建築することはできない」と。これは正しいのでしょうが・・・あくまで、家に限った話です。

ソフトウェア開発などの知識労働における根本的な制約条件は、知識を発見し創造する我々の能力である。

例えば、執筆、作曲、プログラミング等の作業に月曜から木曜までを費やしたとしましょう。いくつもの方法を試しては上手くいきませんでした。散歩してみたり、一晩中考えたりしました。リサーチを行い、次こそ上手くいきそうな8番目の方法を見つけましたが、友人に見せると重大な欠陥を指摘されてしまいました。木曜の午後、これまでの取り組みのいい部分を組み合わせた9番目のやり方がほぼ完成し、ようやく終わりそうなところまで来ました。

そして木曜の夜。あなたの飼い猫がキーボードの上を散歩して、一週間の成果全てが消えてしまいました。

さて、成果を復元するのにまた4日間かかるでしょうか?もちろん違います。金曜の朝10時には、木曜の夜の状態よりも先に進んでいるでしょう。つまり、この知的労働を現実に制約していたものは何か?キーボード入力ではありません。それは、新しい知識の習得と創造だったのです。

知識労働において「依存関係」として知覚されるものは、知識のギャップから生じている。

この気づきをしっかりと理解できれば、従来の直感には反するような(そしてしばしばプロジェクトマネジャーのアドバイスとは真逆の)行動に繋がります。不幸なことに、その時まであなたの組織の構造及びポリシーは、知識のギャップを増す方向に機能していたということです。

優れたソフトウェア開発組織であれば、プロダクトオーナーは、プロダクトバックログを並べ替えるだけではなく、ビジネスの観点から優先順位をつけることが許されています。赤い糸はもう片付けてしまいましょう。

更新日時: