転職のお知らせ

世間は地震により慌ただしい。震源地近くの被災者の方にはお見舞いを申し上げる。 この最中に、個人的な報告を投下するのはちょっと憚られるものもあるのだけれども、あまり時期を外しても書く機会を逸するので思い切って書くことにしよう。

1月一杯で約3年務めた 株式会社スケールアウト を辞め、3月1日から Google Japan で働き始めた。twitterでは大勢の方に祝っていただき有り難い限りである。

Googleについては特に語ることはない。みんなが知っているし、私もまだみんなが知っているようなことの他は僅かしか知らない。だからスケールアウトについて語ることにしよう。

株式会社スケールアウト

スケールアウトは広告配信エンジン/広告在庫管理システム/広告入稿システム/広告案件管理システムをフルスタックの製品「ScaleAds」を提供するスタートアップである。

創業

創業者の山崎大輔さんは、元はYahoo! Japanの広告配信システムを構築した人である。一部では「 最速配信研究会のid:yamaz 」と言ったほうが通りがよいかも知れない。 まだ日本のネット業界が成立するかしないかの頃、彼はまだそれほど大きくなかったYahoo!に入って、今の巨大なサイトで高速にアクセスごとに最も適切な広告を選択して配信しているシステムの構築に携わった。

山崎さんはその実績もあってYahoo! Japanではそれなりに地位を得ることができたが、ある日自分の伸び悩みを感じて「このまま会社にしがみついて生き残ることは可能かもしれないが、それでは老害と化してしまう」と判断し、社外に挑戦の場を求めて武者修行に出ることを決心したそうである。そうして、スケールアウトを創業した。

そのスケールアウト社が作ったのがScaleAdsである。Webコンテンツを持っている会社が自社サイトに載せる広告を管理することを主に想定しているが、それに限らない。実際、メールマガジンでの広告の管理にも対応しているし、汎用のコンテンツ配信管理システムとして設計されている。 月間10億インプレッション程度であれば鼻歌混じりに捌き、サボらずにまともに設定すれば僅かなサーバー数で100億インプレッションを処理する。理論的には1000億PVもOKだ。

参加

現在のWeb業界にとって広告はオフラインとWebを繋いで経済を循環させる太い血管である。この血管の構築に携わりたいと思って、私もScaleAdsの開発に途中から参加した。そして、在庫管理システム/広告入稿・案件管理システムの継続的な改善に取り組んだ。

山崎さんの知識に基づく強力な配信エンジンを持つScaleAdsであるが、一方フロントエンド側や中間処理は私が参加した時点ではスパゲティであった。このレガシーコードとの戦いが私の仕事であった。あれを見たときにはコードベースを捨てることを提案したが、さすがにそれは山崎さんによって却下された。

レガシーコードを動いたまま移行させるのは書き直すことに比べて遥かに高く付く。それでも、そのコストに組織やメンバーが耐えることができたなら、危険な大きなジャンプをすることなく、機能のデグレードにも見舞われることもなく持続的なメンテナンスの可能なコードベースに移行することができる。 振り返って考えるに、恐らくコードベースを捨てて作業すれば半年で移行できたであろうが、代わりに一時的に大きな障害を引き起こした可能性もあったろう。Webシステムにあって最も金銭に近い *1 部分の1つである広告システムでは、資金的余裕の少ないスタートアップにはそのような失敗は許されない。こうして我々は3年間にわたる茨の道を歩くことになった。

十分にモジュール化されていないシステムを切り開き、テストハーネスを取り付けた。移行用のテストを書いてはモジュールを移行させ、テストを捨てた。いや、捨てるべきテストを捨てきれずに失敗した部分もある。幾つかのテスト戦略を試しては、幾つかは失敗した。これによりシステムから少しずつ腐ったコードが無くなっていった。拡張可能性を手に入れたシステムに、幾つか大きな機能追加を施した。

この時期この部分の開発に携わったメンバーを聞けば、東京のWeb開発者コミュニティ(特にRubyScala)にいる人ならば、この製品がどういうものであるのか分かるだろう。

一応、会社のサイトで公開している(いた)メンバーだけリストしたけれども、他にも一時期手伝ってくれた人は大勢いる。

転職

スケールアウトの長い戦いは今収束しつつある。安定性を更に増すために継続的インテグレーションで処理するテストケースはもっと増やすべきだが、それにしても主なモジュールのスパゲティは解消した。コードベースは継続的なメンテナンスが可能なものになった。継続的インテグレーションやその他諸々開発インフラも整えた。事業的にも顧客を増やして成功してきている。

一仕事終えた私はここでスケールアウトを一時離れることにした。これには2つ理由がある。1つには苦闘の日々が一時収束したので、次の大きな機能拡張の時期が来るまでは他でもっと面白いことをしていたかった。ただ、退職を決めた後になってから「次の大きな機能拡張」が思ったより早く来そうなことが判明したので、これについてはちょっと早まった判断だったかも知れない。

もう1つは、先に述べたようにスケールアウトはYahoo! Japanからのスピンアウト組を含んでいるということが関係ある。彼らが持っている大きな組織での開発者の政治的力学の経験や異分野の尖った専門家との繋がりというものを見て、興味を持った。そしてそれを体験してみたくなったのだ。 このため今回の転職ではチームでそれなりに大きな規模で開発している会社というのを一つのコンセプトとした。

このコンセプトに沿い、かつ 私が望むweb に貢献する会社を探した。そしてたまたまGoogleとご縁があった。こうして転職したのである。

*1:「金銭そのもの」であるオンラインバンキングやトレーディングを除けば