技術をどれだけ身につけてもコモディティ化する理由
石垣氏は2015年にDMM.com(以下、DMM)に入社。ID基盤、認証基盤のプロダクトオーナーを務めた後、20年よりDMMの入り口である総合トップなどを管轄する総合トップ開発部の立ち上げを行い、現在はサービスの立ち上げからスケール、ID・認証・CSプラットフォームを管轄する部門の部長としてメンバーを牽引するほか、DMM全体のエンジニア・デザイナー組織課題を解決するVPoE室のメンバーとしても活躍している。
セッションタイトル「事業をスケールさせるエンジニアたち ~技術のコモディティ化にエンジニアは敗北する~」からも分かるとおり、どれだけ最新技術を身につけたとしても、技術がコモディティ化するため、石垣氏は「エンジニア自身がコモディティ化する」と言う。
コモディティ化とは、市場参入時には高付加価値を持っていた商品の市場価値が低下し、一般的な商品になることだ。「個性が無い状態」と石垣氏は言う。例えば牛丼はその一つ。各社それぞれこだわりはあるが、消費者の差別化要因は価格だったりする。牛丼だけではない。ガソリンも家電製品など、需要があるものはコモディティ化に陥る。コモディティ化すると、すべてが平均的な価値となり、「あとは価格競争になってしまう」と石垣氏は話す。
これは技術においても同様だ。コンテナ技術やクラウドサービス、マシンラーニングなど新しい技術が次々と登場するが、魅力的な技術であればあるほど、さまざまな企業や個人からたくさんのプラクティスが出されたり、技術の標準化・規約化が行われたりするからだ。さらに技術のコモディティ化を促進しているのが、クラウドの発展だと石垣氏は言う。
XaaSの登場により、これまで自前でリソースを所有するところから、必要な分だけ利用する時代に変わった。それによりエンジニアもプロダクトの中でクリエイティビティを発揮させる部分と、XaaSに任せる部分を思案することが求められている。「これまでのように上から下まで自前でやる必要はなくなりました。しかも技術のコモディティ化により、苦労して実装したモノが、平等に利用可能な武器となってしまっているのです」(石垣氏)
つまり技術のコモディティ化により、エンジニアもコモディティ化すると石垣氏は言うのだ。さらにノーコードやローコード開発が今後、さらに加速していく。「一部の天才を除いては、『コードを書く』『サーバを構築できる』というシンプルなスキルだけでは、淘汰される」と石垣氏は警鐘を鳴らす。
では、淘汰されないためにエンジニアはどうすればよいのか。
「事業をスケールさせるエンジニアリングを学ぶことが1つの解である」と石垣氏。事業をスケールさせるエンジニアリングとは、習得した技術を武器として、事業に観点を与えることに力点を置くこと。次に技術を使いこなした先にある、事業への問い、解を与えること。例えば仮説検証レコメンドアルゴリズムに参加することで、何を作るのか、なぜ作るのかなど仮説検証を行うのだという。コモディティ化した技術を使えば、今まで時間をかけていたものに、時間をかけなくて良くなる。そのバッファーを事業のスケールさせるエンジニアリングに費やすというのである。
エンジニアリングで事業に観点を与えている例として、石垣氏があげたのがNetflixである。NetflixのKPIは良い作品をたくさんプールし、映像を見てもらうことで解約(チャーン)させないようにすること。Netflixはユーザー一人ひとりの趣味嗜好に合った作品がレコメンドされることはもちろん、スクロールやスワイプするたびに、表示される作品を変えるなど強力なパーソナライズというアプローチを採用し、クリック率を上げ、解約をさせない工夫をしている。
エンジニアリングを武器に事業のスケールに注力するエンジニアを育てるにはどうすればよいのか。石垣氏は、「まずはエンジニアが1行のコードから財務諸表を意識できるようにすること」と話す。エンジニアが書く1行のコード、1行のプルリクエストというミクロな集合体がプロダクトを作り、事業の収支を作っていることを財務諸表レベルで感じてほしいと言うのだ。
第二にセクショナリズムによる分断を避けること。セクショナリズムによる分断があると、ビジネスサイドから渡された要求定義で決まっているモノを「どう作るのか」という実現可能性だけにフォーカスしがちになり、「なぜ、作ったのか」「作った後にどうなったのか」という意識が欠如してしまうからだ。
第三に品質に対するスピードとコストがトレードオフの関係にあるという誤解を解くこと。「事業責任者もエンジニアもそこから逃げてはいけない」と石垣氏は指摘する。
ここで石垣氏は米ソフトウェア技術者のマーティン・ファウラー氏の記事「Is High Quality Software Worth the Cost?(品質の高いソフトウェアはそのコストに見合うのか)」を紹介した。品質には外部品質(機能やインターフェイス)と内部品質(アーキテクチャやコードなど)の2種類がある。機能やUIが優れているが、内部品質が悪いAプロダクトと、機能が少ないが、内部品質が高いBプロダクトがあったとする。初期は多くのユーザーがAプロダクトにお金を払う。だが、ファウラー氏によると、最短1カ月以内にはBプロダクトのほうが開発スピードは上回り、損益分岐点、負債・福利も指数関数的に伸びていくというのだ。