グロースエンジニアリングという分野の言語化

明日をもしれぬスタートアップが成長して、次なるフェーズに入ってくると、それまで犠牲にしてきた技術的文脈に対する問題が出てくる。

なにせ、そもそも母数となるユーザ数はフェーズによって違うのだから、そのときに見えている景色と、数年後の景色は違ってしかるべきで、その時なら簡単に直せた問題も、サービスが成長してしまってからだと直すのもままならないというのがある。

最近、良くも悪くも、これに対応する話がマイクロサービスというジャンルで、エンジニアが失敗したらいけない恐怖症の元に、全くグロースしてない段階からマイクロサービスを模索してしまったりして、おいおいちょっと待て、という話がツイッターに流れることも珍しくない。

一生懸命、設計して良いシステムを作ってもサービスがグロースしてなければ意味がない。いや、意味がないはいいすぎで、どうにかサービスをバイアウトすることができれば、バイアウト先の人たちがその恩恵を預かることになる(もしかしたら自分がそこにいるかもしれないし、いないかもしれない)ということなのだと思う。ただ、別にそれで買取金額が上がることはないが、技術デューデリの段階で先方に受け入れられやすくなる効果はあると思う。

まあそれはともかく、グロースしてからの改修は大変なのだ。

これを技術的負債の返済と呼ぶこともあるが、マネジメントキャリアパスという本にならって、もっと前向きに「持続可能性」の実現のための活動と呼ぼう。

大変という言葉は、そうしないことを避けることを必ずしも意味するわけではない、むしろそうなったらそうなったて立ち向かうという話なのだと思う。リスクマネジメントはリスクに立ち向かうということなので、大変なことだからこそ、やる意味があると思えなければ、この仕事はやっていけない。

生きるか死ぬかわからない初期フェーズを乗り越えて、持続可能性を模索すべきフェーズに入る。この2つを違うフェーズと意識したい。

初期フェーズは生き残るために、わかっていても技術のかくあるべしを無視してでもリリースを優先する。もちろん、その時のメンバーの技術力によっては、わかってないケースもあるだろうが、あえて選択しなかったという事実は簡単には判別できない。数字があがらなければ技術のかくあるべしを無視してでもスピードを重視しなくてはいけない時は存在すると僕は思う。

後者は安定した成長を前提に、より成長させるためにサービス成長性と持続可能性の両方を実現し、既存顧客と新規顧客の両方の満足度を実現するフェーズと言える。

この両者は人間同士の信頼関係がないと、ソースコードを目の前にして精神的に対立する。

もう一度書くが「あえて選択しなかった、やらなかったと言う事実」はソースコードや設計からの判別は難しい。

この辺の違いがあまりこの業界で言語化されてないような気がしていて、それ故の感情のモヤモヤみたいのや感情の行き違い、セグメントの違いが不明瞭な中での葛藤というのをたまに見ることがある。極めてここへの言及はセンシティブだということだとは思う。

とりわけ、作ってた人がすでにいないような会社だと、後の人からするととばっちりを受けてるように感じてしまう。何故そうしたのか?が語られずにソースコードとデータベースだけを見ると、何故、最初からこうしなかったの?みたいな気持ちになるのは否めない。

だからこそ、なのだがフェーズが違う「スタートアップエンジニアリング」「グロースエンジニアリング」という定義があってもいいのかなと思う。

グロースエンジニアリングの手法には、各社見ていてやり方はいろいろある。

・一つはひたすらリファクタリングする

・アマゾンみたいに組織の軋轢をどうにかするためにマイクロサービスとして作り変える

(マイクロサービスが組織ありきなんて当たり前の話で、そもそも組織で問題が起きたからマイクロサービス、、、当時はSOAですね、、、にしたんだと、アマゾンのマイクロサービスの取り組みとしてはCTOのwerner氏が言ってたから、そのレベルまで組織が成長してないなら、コストがかかるならやっちゃいけない選択なんですよね。その段階ではすでにワールドワイドの企業だったので変化をもたらせたエンジニアリングパワーは推して知るべし)

・言語やフレームワークを完全に入れ替えてリファクタリングをセットで作り変えしてしまう

これらはフェーズの問題で共存する話かもしれないし、どれが正解で不正解かもわからない。まあ選択肢はいろいろあるということだ。

最終的にみんなが笑えていればいいんだが、グロースエンジニアリングみたいな言葉は、今後、類する名前で体系化されてくるであろうことを期待する。

シリーズAを超えたスタートアップでは、どこも当たり前にやっていることなのかもしれない。

「こういうフェーズがあるから避けられないよね」で少しでも楽しめるようなら良いのではあるのだが….高い技術力の元で、安定的に変化をもたらすという工程が存在するということはもっと僕らは意識してもよいかなと思う。

こういう話をすると、東横線の代官山駅のリファクタリングを思い出す。代官山駅を一晩で別の線路に入れ替えた工事。全く東横線のユーザーに迷惑をかけずに線路を入れ替えて、東横線渋谷駅の場所を変えたというエンジニアリング力は、成熟しつつあるWeb業界でもしっかり意識していかないといけないことかなと。

東横線渋谷~代官山間地下化工事(2013年・2014年春取材まとめ[2])

この写真はTop of the rock、ロックフェラーセンターの上からの写真なのだが、この世界一の高さのビルは第二次大戦の前にはすでにあったような話を聞いた。つまり建築という分野において、高層ビルを立てるエンジニアリング手法はこのビルを建てる時にはすでに確立していて、20世紀後半以降は安全性、メンテナンス性、生産性などの話になっていたんじゃないかと想像する。

Web業界も、一から作る話が多いが、持続可能性に関するエンジニアリングが存在するということは強く意識していきたいところかなと。幸か不幸か建て直しが聞くからこそこのような話になるので、この世に全く存在しないエンジニアリング手法ということになるのだとは思うが。

【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください