『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』ができるまで #voyagebook

昨日(2020年8月7日)、書籍『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』(ハッシュタグ #voyagebook)が出版されました。この本は私(@t_wada)がVOYAGE GROUPに在籍する主要なソフトウェアエンジニアにインタビューし、その内容をラムダノートの編集者鹿野さん(@golden_lucky)が本としてまとめたものです。2020年代のウェブにおけるビジネスとソフトウェア開発の在り方を濃縮した1冊に仕上がっています。

f:id:t-wada:20200808124643j:plain

書名:Engineers in VOYAGE 事業をエンジニアリングする技術者たち
著者:株式会社VOYAGE GROUP 監修、和田卓人 編
(A5判、224ページ、ISBN:978-4-908686-09-2、本体価格1,800(+税)円、電子版のみ1,000(+税)円)
発行:2020年8月7日

メインタイトルが『Engineers in VOYAGE』、サブタイトルが『事業をエンジニアリングする技術者たち』です。Twitter のハッシュタグ #voyagebook をつけて感想をツイートいただけると大変嬉しいです。

購入するには

購入はラムダノートの直販サイトがおすすめです。紙書籍+電子書籍のセットが価格1,800(+税)円、電子版のみは1,000(+税)円です。

Amazon でも購入できます。

ジュンク堂池袋店には何冊か入荷しているとのことです。

ジュンク堂池袋店に掲載いただく POP も書きました。

f:id:t-wada:20200804101529j:plain

「はじめに」のはじめに

1999年創業のVOYAGE GROUPは、ソフトウェアの力を活かして成長してきたインターネット領域の事業開発企業です。20年間で100以上の事業やサービスを創出し、現在は広告プラットフォーム事業やメディア事業を中心に20以上の事業やサービスを運営しています。

私は2014年からVOYAGE GROUPの技術コーチを務めています。

『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』は、そのようなVOYAGE GROUPのさまざまな事業やサービスを牽引するエンジニアに2020年1月から2020年5月にかけて行ったインタビューを1冊の書籍としてまとめたものです。事業をエンジニアリングの視点で考えたり、さらにはエンジニアリングの視点で事業を作り出したりと、「ビジネス」と「エンジニアリング」を両輪にしてITシステムを開発・運用しながら実社会で活躍している技術者や技術者のチームの生の声が収録されています。

このエントリでは、『Engineers in VOYAGE』の冒頭に私が書いた「はじめに」を本書紹介のために再編成しながら、同書の読みどころをご紹介します。

本書のきっかけ

本書の企画は、もともと「VOYAGE GROUPのエンジニアをもっと多くの人に知ってもらいたい」というCTO小賀さん(@makoga)の想いから始まりました。企画発足当時の小賀さんの問題意識は以下ようなものでした

  • VOYAGE GROUP(VG)の採用面接を受けた人や入社を決めた人と話をすると「思っていたよりも技術力があり、いい会社ですね」と言われることがある
  • 他社に転職したエンジニアからも「VGの技術力は高かった。強い人が多かった」等の感想を貰う
  • 知名度のある強いエンジニアも在籍しているが、VGのブランディングとは結びついていない

VOYAGE GROUPの技術力や実践内容、在籍しているエンジニアは、社外のエンジニアにも魅力のあるものとなっている。であるならば、外部にうまく発信することができれば広く認知向上につながるのではないかという仮説を立てたといいます。VOYAGE GROUPのいくつかの事業会社のシステムを支えるエンジニアに取材した内容をインタビューとしてまとめ、それを技術同人誌のような形で頒布することが意図されていたようです。

私は、同社の技術コーチを務めている関係から、この企画のインタビュアーの打診をいただきました。長くお取引のあるお客様であり、いくつもの事業部を見てきた関係上、インタビューしてみたいという思いはありました。ただ、並列でいくつもの仕事を手掛けている関係上、書き下ろしの本を執筆する馬力はありませんでした。しかし今回はラムダノートの鹿野さんと組んで仕事ができるということを伺い、改めてインタビュアーを拝命したことを覚えています(そのころ鹿野さんはどう考えていたかは、鹿野さんのエントリに詳しく書かれています)。

インタビュー準備と本番

インタビュアーを拝命した時点で、頭の中にひとつイメージできるかたちがありました。

VOYAGE GROUPで春に行っている「配属予定部署エンジニアパネルディスカッション」です。これはVOYAGE GROUPの各事業会社のCTOが登壇して行う新卒エンジニア向けのパネルディスカッションであり、私がモデレータを務めています。短時間で手間なくフラットに情報を引き出し、各事業部の飾らない現実問題としての情報を伝え、「配属先のイメージをつけられるくらいの参考情報が得られること」を目的としています。各事業会社の技術やエンジニアリング文化を軸として情報を伝えるパネルディスカッションは、今回の書籍のベースイメージになりました。

パネルディスカッションのモデレータを務めるときの心得は以前 ajitofm 40: How to Moderate a Panel に出演させていただいたときに話していますが、私はぶっつけ本番で議論をするのではなく、事前の準備や打ち合わせを重視します。インタビューに関しても同じアプローチで臨みました。

まず人数ですが、インタビュアー1名、インタビュイー2名の計3名で行うことを基本としています。ここにさらに鹿野さんと小賀さんが加わります。Podcast出演人数は、議論が発散しすぎず、かつ第三者の視点も得られるので3人がベストという話を ajito.fm ホストの suzuken さん と話したことがあります(suzuken さんは第1章 fluct のインタビュイーでもあります)。これもインタビューと同じであると考えました。

次に人選ですが、CTO(あるいはテックリード)のような技術と事業を両方見ながら意志決定する方を柱に、その方より社歴が長くプロダクトを最初から見ているベテラン(第1章、第2章のパターン)か、日々前線で開発を続けている若手(第3章、第4章、第5章のパターン)に出演してもらうかたちにしています。歴史を語れる人を一人は配置する人選にしたのは、事業が進むに従って様々に変化する制約をどういった設計判断で解決してきたかを聞きたいからでした。第6章だけは例外で、データサイエンスエンジニアの西林さん(@hagino3000)と一対一でインタビューしています。

概ね隔週でインタビュー収録の予定を入れ、インタビュー本番の前の週に各事業会社のキーパーソン、インタビュイーの方々とランチを共にします。このランチで雑談をするのですが、それがインタビュー本番のすじがき(show notes)作成を兼ねています。ランチでは以下のような点をざっくばらんに話していき、聞いた内容のメモの中から印象的な言葉やエピソードを抽出し、順序などを再編集します。

  • 事業の説明と背景
  • システムのはじまり
  • 事業の成長とアーキテクチャの変遷
  • 技術的負債とその返済
  • 意思決定プロセスについて
  • 事業とシステムのこれから

また、ランチ雑談の中でインタビュイーの方々から参考となる URL をいただくことがあり、これはインタビュー本番までに読み込み、 show notes に反映します。

そうやって作成した show notes を手に本番収録に臨むと、そこでインタビュイーの方々が語ってくれたのは、現実の世界で次々に発生する問題やチャレンジングな目標を時には腕力、時には調整力、時には洞察力でもって解決していく、当事者意識と技術力を備えた技術者たちによる格闘の歴史でした。インタビュー本番の目安は2時間ですが、章によっては3時間近く話していたこともあります。

インタビュー終了後、同席していたラムダノートの編集者鹿野さん(@golden_lucky)による執筆(文字起こしと編集)が行われます。各章のインタビュー文章はGitHub(ラムダノート社アカウント)にコミットされ、レビューはインタビュイーの方々を中心に GitHub 上で issue や pull-request を作成して行います。適度なタイミングで PDF も生成されます。

そうして生まれた文章は、一企業の技術者の認知度向上という当初の目標を遥かに超え、「事業をエンジニアリングしていく」というITシステムが事業の中核になった現代において普遍的なテーマについて当事者が語る貴重な証言を集めた内容になっていました。

これは良い本になるという手応えを掴みました。「この本は多くの方にヒントを与える本であり、広く読まれるべきである」との想いから、鹿野さんの出版社であるラムダノートから正式に書籍として発行するに至ったのです。

各章の読みどころ

本書はさまざまな読み方ができる本です。すでに触れたように、本書のもともとの意図は「VOYAGE GROUPの名前は知っているものの、どんなエンジニアがどんなシステムを作っているかまでは知らなかった」という方に興味を持って手に取って読んでもらうことでした。もちろん、すでにVOYAGE GROUPに知り合いがいる方にも、一種のファンブック的に楽しんでもらえるでしょう。

しかし私は、本書はそれ以上のものであると考えています。なぜなら、本書に登場するVOYAGE GROUPのシステムには多くの方が「自分の扱っているシステムが置かれている状況に似ているな」と思えるような面がどこかにあり、したがって本書には「自分事としてとらえられる切り口」が必ずどこかに見つかるはずだからです。

たとえば、大量のトラフィックをさばくためにエラスティックにスケールアウトしていく配信システムもあれば、複雑な情報を扱う管理画面もあります。オンプレミスで始まったシステムもあれば、最初からクラウドコンピューティング基盤を活用したシステムもあり、さらに最初からクラウドネイティブなマネージドサービスを使っているシステムもあります。散らかったデータの収集と前処理から着手して、現在ではデータサイエンスの力を活かしてリアルタイムの予測を導入しているシステムもあります。BtoBのシステムもBtoCのシステムもあります。ゼロから立ち上げて数年の若いシステムもあれば、20年もののレガシーシステムもあります。

ここからは各章の構成を紹介しながら、あわせて現時点でいただいている感想も引用させていただきます。

第1章 fluct ― 広告配信の舞台裏の技術者たち

第1章のfluctは、インターネット広告配信でメディア側の基盤となる「SSP」と呼ばれるシステムを開発運用している会社です。老舗SSPのシステム開発の軌跡をたどりつつ、アドテクを支える技術、オンプレミスとクラウドの双方におけるSREやDevOpsの考え方、技術的負債の返済に必要な腕力、オブザーバビリティ、広告とプライバシーの問題といった、インターネットで働く多くの人が気になっている要素が語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第1章 fluct ― 広告配信の舞台裏の技術者たち
  広告配信システムひとめぐり
  「2010年に広告配信システムを作る」ということ
  とりあえず使ってみる文化
  クラウドとの向き合い方
  インフラと開発は最初から分離しない方針だった
  技術的負債との闘い
  オブザーバビリティ
  これからのfluct

第2章 Zucks ― フルサイクル開発者の文化

第2章のZucksは、アフィリエイトやアドネットワークと呼ばれる仕組み、それにfluctが担うSSPと対をなす広告主側のシステム「DSP」を開発運用する会社です。広告配信という点だけを見るとfluctと似ていますが、最初からフルクラウドで実装されたこと、さらにはビジネス上の要件がまったく異なることもあって、開発者の文化もだいぶ様子が異なります。その開発文化を横軸にしながら、「フルサイクル開発者」というソフトウェア開発者の働き方が語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第2章 Zucks ― フルサイクル開発者の文化
  アドネットワークとしてのZucks
  DSP開始
  Zucksのエンジニア文化
  ドキュメントがまったく存在しないシステム
  新しくジョインしたら初日に機能をリリースする
  重要なのは切り戻しできるかどうか
  チームの文化はスケールできるのか
  広告業界の変化に向き合う

第3章 VOYAGE MARKETING ― 20年級大規模レガシーシステムとの戦い

第3章のVOYAGE MARKETINGは、老舗ポイントサイト「ECナビ」を中心に、インターネットメディアを運営する会社です。20年モノのウェブサービスをどうやってメンテナンス可能にするかという、これから多くのウェブシステムが直面するであろう「2025年の崖」をすでに乗り越えつつある同社の直近5年間の開発体制を通して、技術的負債が満載されたレガシーシステムとの戦い方が語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第3章 VOYAGE MARKETING ― 20年級大規模レガシーシステムとの戦い
  VOYAGE MARKETINGとECナビ
  2015年、レガシーシステムと戦う決意をする
  まず淡々と現状把握
  現状把握から、レガシー攻略の大戦略を立てる
  オンプレ前提で組まれたシステムをクラウドに移行するには
  葬りで、問題の分母を減らす
  本丸の業務アプリケーションを攻略
  レガシーシステムといい感じに付き合うスキル

第4章 VOYAGE Lighthouse Studio ― 数十万記事のメディアをゼロから立ち上げる

第4章のVOYAGE Lighthouse Studioは、国内最大級のゲーム攻略サイト「神ゲー攻略」を運営する会社です。ゼロから静的ウェブメディアの配信システムを立ち上げて数十万記事を擁する規模にまで成長させる歴史を振り返りながら、SEOへの考え方をはじめ、ウェブメディアの立ち上げという挑戦を個々の課題へと落とし込み、さらにそれを実装していく様子が語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第4章 VOYAGE Lighthouse Studio ― 数十万記事のメディアをゼロから立ち上げる
  競合が多い「ゲーム攻略」のウェブメディア
  ユーザーを待たせないため、静的サイトジェネレータから作る
  丁寧な記事が成長の最初のきっかけ
  増加したビルド負荷緩和としてのMarkdownエディタ開発
  予測して準備できないトラフィック
  ビルド負荷問題、再燃
  動的なコンテンツに対応する
  APIサーバーはGAEとGoで開発
  開発即戦力の参加
  業界最大手へ向けたアーキテクチャの見直し
  システムがもたらす制約をいかに減らすか

第5章 サポーターズ ― 事業の成長を止めない手段としてのシステム刷新

第5章のサポーターズは、学生向けの就活支援サービスを運営する会社です。同社では、外部の業者に発注した初期のシステムの延命が困難と判断し、サービスは止めずにシステムのフルリニューアルに踏み切りました。その決断に至った背景にある、エンジニア側のサービスの特性に対する理解と、その理解をサービスに取り入れて運用していくビジネス側の協力が語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第5章 サポーターズ ― 事業の成長を止めない手段としてのシステム刷新
  BtoBとBtoCの両面をもつ事業を支えるシステム
  既存システムを修正するべきか、ゼロから作り直すべきか
  ビジネスと開発の距離を縮める
  小さく作り出す
  ゼロから作り直すという判断をめぐって
  新システムを育てていく
  システムだけじゃなくて組織も再定義した
  オフィス統合がもたらしたさらなる変化
  組織としてもサポーターズに合流
  「全員、やればできる」体制
  依存ライブラリは週一で上げる
  事業の成長スピードを止めないシステムへ

第6章 データサイエンス ― エンジニアによるビジネスのための機械学習

第6章のデータサイエンスは、機械学習をはじめとするデータサイエンスの力をビジネスにどのように取り入れたらいいか、という話題です。広告単価を決めるアルゴリズムにデータサイエンスを取り入れているZucksでの話を軸に、ソフトウェアエンジニアとしてデータサイエンスを活用するという立場で両者の差を埋めるためのヒントが語られます。

https://www.lambdanote.com/blogs/news/engineers-in-voyage

第6章 データサイエンス ― エンジニアによるビジネスのための機械学習
  なぜアドテクでデータサイエンスをやるか
  データサイエンスのきっかけ(エンジニアとして)
  データサイエンスのきっかけ(Zucksとして)
  データを活用できるようにし続ける
  広告配信で機械学習は「やっていて当たり前」
  アドネットワークでクリック率を予測してもうれしくなかった
  DSPの開始でもたらされた機械学習のビジネスインパクト
  データサイエンスからビジネスのやり方を変える提案が生まれる
  ファーストプライスオークションとセカンドプライスオークション
  データサイエンスの面白さ
  理論だけではうまくいかない
  エンジニアがデータサイエンスをやる強み
  これから

様々なバックグラウンドの方におすすめ

システムは事業の種類によっていろいろと姿形を変えます。そしてVOYAGE GROUPという会社では、さまざまなフェーズにある多様な事業を扱っており、強いエンジニアリング文化がそれを支えています。したがって本書のどこかのページには、システムに携わっている方の多くにとってヒントとなる(あるいはアンチパターンとなる)逸話がきっとあるはずと考えています。

インターネット上で事業を営んでいる企業に属しているエンジニアの方々は、自社がこれまでに経験したことやこれから経験しそうなことについて、いろいろなステージの事業が登場する本書からヒントを見つけられるでしょう。アーキテクチャの変遷や技術的負債の返済の道のりなど、エンジニアリングの力によって問題を解決していくさまに共感しながら読めるのではないでしょうか。

受託開発を行っているエンジニアの方々におすすめしたい本書のポイントは、インターネット企業のエンジニアたちの等身大の姿、事業に対する当事者意識、ビジネス上および技術上の意思決定のスピード感などを具体的に読める点だと考えます。それだけでなく、たとえば第3章のVOYAGE MARKETINGへのインタビューに顕著ですが、「SIの現場で培ったスキルのウェブ系のサービスでの活かし方」といった観点でも参考になると思います。

さらに本書は、技術者だけでなく、ビジネスを営んでいる方々にもおすすめできます。それは、全編を通して「オーナーシップを持った技術者が事業をエンジニアリングする姿」を見られるからです。ビジネスとエンジニアリングが事業の両輪であるからには、エンジニアたちの考えを知り、彼らの気持ちを汲み取れることは、ビジネスにとって必須のスキルだといえるでしょう。

本書全体にいただいた感想ツイート

VOYAGE GROUP社長兼CEOの宇佐美さんのツイート

おわりに

特定の企業のエンジニアリング文化を解説する書籍はこれまでもありましたが、それらに登場するのはGoogle、Amazon、Facebook、Appleなど、技術者の数も多ければエンジニアリング的な体力もふんだんにあるメガプレーヤーたちです。VOYAGE GROUPは、それらメガプレーヤー企業に比べると遥かに規模が小さいにもかかわらず、強くしなやかなエンジニアリング文化を備え、自分たちで問題を解決しながら日々前進している企業だと思います。その意味では、「あれらの企業はそもそも特別すぎるから」という先入観から離れ、より現実的で模倣可能なエンジニアリング文化を本書から読み取っていただけるのではないでしょうか。

f:id:t-wada:20200808182942j:plain

自分で言うのも面映ゆいのですが、とても面白い本に仕上がっていると思います。このブログエントリをきっかけに『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』にご興味を持たれましたら、お手にとっていただければ幸いです。そして、 Twitter のハッシュタグ #voyagebook をつけて感想をツイートいただけると大変嬉しいです。

書籍『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』を、何卒よろしくお願いします。