VOYAGE GROUP CTOの小賀さんから本書を送っていただき、読了。

ひとことで言うなら、本書は「俺たちはこんなに綺麗にうまくやっている」というベストプラクティスと自慢の本とは対極にある、「こんな課題がありました。それに対して俺たちはこうやって向き合ってきました」という、エンジニアたちの生々しい戦いの実録だ。

そんな本書にはところどころに、言葉を見ただけで身体の内側から胃をグッと握られたような、少し内臓が重たく感じられるような表現が出てくる。

「最初期の開発スタイルはオールドファッション」(p.8)、「技術的負債との闘い」(p.21)、「ビッグバンリリース」(p.52)、「20年級大規模レガシーシステムとの戦い」(p.77)、「機能間に謎の依存関係がある」(p.83)、「本来は相関性が高い機能群がまったく異なる領域に存在」(p.83)、「関係者にヒヤリングしても、各人の見解がばらついたり」(p.85)、「オンプレ前提で組まれたシステムをクラウドに移行」(p.90)、「本丸の業務アプリケーションを攻略」(p.109)、「ビルド負荷問題、再燃」(p.128)、「既存システムを修正するべきか、ゼロから作り直すべきか」(p.151)

そしてこれらの課題に対して、それぞれのプロジェクトでどんな風に考え、どんな文化を大切にし、どんな苦労に直面しながら、これらを乗り越えてきたのかが記されている。その内容は「企業の名前を入れた本で、ここまで書いていいのか」と思えるほどに赤裸々だ。興味深いのは、テーマの重さと対照的に、課題を乗り越えるためのアイデアはほとんどすべてがしなやかさや遊び心を感じさせる軽やかなものだということだ。

「とりあえず使ってみる文化」(p.11)、「ついカッとなってパッチを投げまくっていた」(p.25)、「短期間にブルドーザーのようにコードの削減と整理をする腕力」(p.26)、「オブザーバビリティを高めることに注力」(p.35)、「全員がフルサイクル開発者」(p.60)、「重要なのは切り戻しできるかどうか」(p.70)、「レガシーシステムと戦う決意をする」(p.80)、「まず淡々と現状把握」(p.82)、「銀の弾丸はないので鉛の弾丸を打ちまくっていく」(p.83)、「葬りで、問題の分母を減らす(事業葬り、機能葬り、コード葬り)」(p.95)、「式年遷宮」(p.109)、「システムだけじゃなくて組織も再定義した」(p.162)


新しい事業を作っていくことは、地図のない旅に出るようなものだ。
後に地図が出来て旅路を振り返ればより良い道があるとしても、見えない中でその時の最善を尽くしていくしかない。

そして私たちエンジニアは時として、理想を求めるが故に、エンジニアリング観点での正論を主張してしまう。

「何でいまだにこんなに古いものを使っているんですか?あり得ないですよ。」

だがソフトウェアを開発して運用することだけがすべてではない。これは事業なのだ。

一度これにすると決めたその時ベストだったフレームワークが何年か経って技術的負債と化しても、フレームワークをモダンなものにすることよりも顧客価値を高める開発を優先しなければならない場面もある。

そして、成功した事業ほどこの「エンジニアリング的な美しさ」と「事業の成功」のジレンマの苦しみを抱えやすい。

失敗していれば捨てて別のものを新しく作り直すこともできるし、利用者が少なければ変更も容易だ。だが成功した事業ではその影響度の大きさから大胆な改善に躊躇してしまうことだってある。それに事業が軌道に乗ると、エンジニアリングが追いつかないような速度で事業が成長していくこともある。

正論だけではまかりとおらない、事業という複雑で壮大な冒険をVOYAGEのエンジニアたちはどんな風にして生き抜いてきたのか。

本書のサブタイトルは「事業をエンジニアリングする技術者たち」。
そう。ここで登場するエンジニアたちは、ソフトウェアだけでなく、事業そのものをエンジニアリングしているのだ。

そしてVOYAGEとは航海を意味する。
これだけの短期間でこれだけの新規事業を立ち上げてきたVOYAGE GROUPだ。地図のない航海も多かったことだろう。
その航海の途中には、嵐になることもあれば、航路を岩が塞ぐこともある。
そんなトラブルも知恵と明るさとで乗り越えてきたエンジニアたちの冒険が生き生きと記されたのが本書であると言えるだろう。

珠玉のエンジニアリング冒険譚として、ぜひ多くの人に読んでいただきたい一冊だ。



Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち