プロダクト開発における「エンパイアステートビル問題」
不可解なことがある。
この写真を見てほしい。
上の建物は、アメリカにある "エンパイアステートビル" 。作られたのはおよそ100年前(1929年)。高さは443mで、当時の世界最高層。現在の日本最高層ビル(麻布台ヒルズ森JPタワー、330m)よりも高い。
このエンパイアステートビル、作るのにどれくらいの時間がかかったか?少し想像してみてほしい。
…………
…………
…………
なんと、たったの1年である。
(正確には13ヶ月、410日)
エンパイアステートビル問題
麻布台ヒルズより100m以上高いエンパイアステートビルが【100年前にわずか1年で作られた】という事実に鑑みると、現在2023年の状況に対して不可解なことがある。つまりこうだ。
この問いが、プロダクト開発における「エンパイアステートビル問題」である。(なお、私がいま名付けたものなので検索しても出てこない。)
オーケー、あなたの言いたいことはわかる
かなりラフな問いなので、賢明な読者からのクレームが聞こえてくる。この問いを前提として話を進めるために、まずはそのクレームに答えよう。
[クレーム1] プロダクト開発と建築はApple to Appleではない
確かに「プロダクト開発」と「建築」は全く同じものではないが、人類の営みとして抽象化すると「スペシャリストたちを集めて設計して製作する」という構造は共通している。何もキリンの妊娠期間(1.3年)や火星の公転周期(1.9年)といった人類の営みと全く無関係な所要時間と比べているわけではない。
IT業界という閉じた世界で粛々とプロダクト開発をしているとどうしても視野が狭くなってしまうが、フラットに、自分たちのやっていることは大局的に見て人類の営みとしてどうなのか?と見つめ直してみよう、というのが本記事の主題である。
[クレーム2] プロダクト開発に1年かかるものなんてそうそうない
ある。というか世の中のプロダクト開発は大体それくらいかかっている。
例えば昨今のゲーム業界では1本の開発に4~5年かかるのが当たり前になっている。
また、スタートアップ界隈では一見すると3ヶ月や半年で開発しているように見えるかもしれないが、実際は「β版」などいわば「不完全」なものが多い。一定のクオリティに到達する期間でいうと結局1~2年はかかっている。
一方でビルに「β版」なんてものはなく、エンパイアステートビルも「完成」までに1年だ。
話を進めよう
このように、「エンパイアステートビル問題」はあながち無茶苦茶な問いを立てているわけではない。…という前提で話を進めさせてもらう。
CTOたちの回答
この「エンパイアステートビル問題」について、何人かのCTOたちに話を聞いてみたので、回答例とそれに対する私の考察を紹介する。
[回答1] プロダクト開発は「作ってみないとわからないことが多い」から
確かに、プロダクト開発は作り始めてから初めて判明することや、トライアンドエラーも多い。初期的な構想・設計・デザインから一直線で開発が進行してリリースに至ることは少ない。開発期間は膨らみがちだ。
しかし、エンパイアステートビルでも「作ってみないとわからないこと」は相当あったはずだ。当時の世界最高層ビルということは当時の人類が誰も作ったことがないモノであり、意匠も独特なもの(アールデコ様式)を採用していた。つまり過去の建造物の「コピペ」的な設計・製作ではなかった。当然、エンパイアステートビルも不確実性の中でトライアンドエラーを重ねたはずだが、その紆余曲折の積み重ねを含めても【1年】で作られたわけである。
むしろ「コピー&ペースト」がノーコストで実行できる点で、プロダクト開発は建築に比べてトライアンドエラーの速度が圧倒的に有利なはずだ。ビルの建築では柱や窓を1枚作ったら後はコピペというわけにはいかない。
つまり「作ってみないとわからないこと」があるのはビルもプロダクトも同じであり、むしろプロダクト開発の方がコピペができて本来はラクなはず。
それなのになぜ?というのが今回の問いである。
[回答2] プロダクト開発は「作業人数が断然少ない」から
確かに、事実としてエンパイアステートビルの建設作業員は3,000人ほどであり、IT業界の多くのプロダクト開発(数十人)と比べて桁が2つ違う。
しかし逆に、あなたのプロダクト開発現場に3,000人が投下されたらスピードが上がるのか?と考えてみて欲しい。IT業界には「人月の神話」などといって、人員を増やしても生産性は上がらないという主張する人が多いだろう。
つまり、作業人数の差は「エンパイアステートビル問題」に対する解になっていない。むしろこれも、「なぜ建築業界は100年前から投下人数を生産性に結びつけることができているのに、IT業界は現代でも投下人数を生産性に結びつけることができていないのか?」といった具合に、問いに内包されてしまうものだ。
[回答3] プロダクト開発は「解空間が広すぎる」から
これは個人的に興味深い回答だった。
良くも悪くも解空間が広すぎるので、現在の人類のキャパシティでは扱い切れていない、ということ。制約がなさすぎると逆に右往左往してしまって時間がかかる、という経験は多くの人にもあるだろう。
一方で建築物であれば、土地の面積や建蔽率など、物理的な制約条件が存在する。一定の限定性の中で思考と試行をするので、工数が無限に膨らむということが起こりづらい。
私の回答
ここからは「エンパイアステートビル問題」に対する私自身の回答を紹介する。
[回答] IT業界が産業として幼な過ぎるから
「建築と比べてプロダクト開発は産業としてあまりに幼く、まだまだ原始的なフェーズにいるため」というのが私の回答だ。
人類にとって、「建物の建築」は40万年ほど取り組んでいる営みである一方、「IT業界のプロダクト開発」はせいぜい40年ほどだろう。歴史の桁が違いすぎる。
この産業としての「幼さ」ゆえに、ビル建築との速度差を生んでいるのではないか。以下に説明を加える。
原始的すぎて「学問化」されていない
プロダクト開発は建築と比べて産業として幼すぎて原始的なフェーズいるため、建築と違って全然「学問化」されていない。この差異が速度差を生んでいる。
ビルの設計や建築においては、学問的に証明された理論と数式が存在する。根源的な基礎としてニュートン力学があり、そこから微分方程式を扱う基礎的な4力学(材料力学/流体力学/熱力学/機械力学)があり、さらにそこに材料や構造や施工に関する学問があり…と。
建築業界の人たちは日頃、物理と数学を使っているのだ。設計も施工も実行者の「感覚」のみで行われてしまうことはない。
一方でIT業界のプロダクト開発はどうだろうか。もちろん計算機工学や情報科学など学究分野はあるが、プロダクト開発自体については学問的に証明された「理論」や「数式」はあるだろうか?巷に溢れるプロダクト開発論は単なる「経験則」ではないか?
あるプロダクトを作る際に、チームの組成、要件の整理、開発進行、品質管理、について理論的裏付けや数式を用いて実行している人はいるだろうか?たぶんほとんどいない。
この「学問化」度合の差は、ビザスク(スポットコンサル)で募集されている案件を見ていると実感できる。イメージとして、建築業界からの依頼案件が「刷毛につける塗料の最適化を図るための粘度の係数について教えて欲しい」といった粒度である一方、IT業界からの依頼案件は「SaaS開発経験者にコツを聞きたいです」といった粒度である。
良し悪しではなく、産業として学問的な練度に差がありすぎる。
「学問化」されていないからスピードが出ない
プロダクト開発が「学問化」されていないということは、拠り所が理論や数式ではなく経験と感覚頼みだということを意味する。これもスピードを阻害している。
前提として、人間にとって経験頼みの帰納的なアプローチには限界がある。どれほど熟練してN=1の事象経験を寄せ集めても、少し前提条件が変わった瞬間に適用できなくなりエラーを起こしてしまうからだ。
その上、帰納的アプローチはプロダクト開発との相性が非常に悪い。IT業界は前提条件が変わりやすいため、過去の経験と100%同じ条件下のプロダクト開発というものは存在し得ないからだ。
実際、経験と感覚頼みであるがゆえに、プロダクト開発では世界中の人々が同じ過ちを繰り返し続け、過去に誰かが克服したことのあるエラーに対してまるで人類初の困難かのように慌てふためいてる。この、人類規模で見れば本来不必要だったはずのトライと、回避可能だったはずのエラーに時間を取られてスピードが出ていない。
100年後のプロダクト開発
最後におまけとして、「エンパイアステートビル問題」が解消されていく未来を考えてみる。
「学問化」が進めばスピードは上がる
今後プロダクト開発が産業として成熟して、理論や数式など「学問化」が進んで演繹的なアプローチが取れるようになれば、「エンパイアステートビル問題」は次第に解消されていく。
物事が理論化・数式化されると「やらなくても(理論的に既に)わかっている」ことの総量が増えていくので、「やってみないとわからない」要素は相対的に減っていく。すると、要件整理や開発進行でトライアンドエラーを重ねる必要性が減ってロスタイムも減っていくわけで、必然的にスピードは上がる、というわけだ。
「やってみないとわからない」というIT業界が大好きな発言は、産業の成熟に伴う学問化とともに減っていくだろう。
100年後の人類が見たらどう思うか
こうして時間軸を未来に伸ばして考えると、プロダクト開発で "今" 抱えている諸問題は時間経過とともに解消されていくはずだ。
プロダクト開発で "今" 苦労していることは100年後の人類が見れば取る足らないことだろう。100年後には「人月の神話」も笑い話になっていて、100人いれば100倍以上の生産性を出せることが当たり前になっているかもしれない。
プロダクト開発で "今" 持て囃されているスキルも100年後には全く価値がないかもしれない。現代のスーパーエンジニアは、40万年前の「洞穴掘り名人」のような存在かもしれない。
100年後も価値があるスキルとはなんだろうか?
あなたの回答は?
本記事で提示した「エンパイアステートビル問題」に対して、明確な正解は存在しない。
問いに対する答えが出せるかどうかはさておき、たまにはこうして日頃の業務から一歩引いて大局的な視点で思考すると新しい発見が出てくるのではないか。
この記事を読んだあなたの回答を聞かせてほしい。私と会った時に教えてくれてもいいし、SNSで感想や意見を書いてくれてもうれしい。