あの企業の開発環境を徹底調査!Hack the Team
エンジニアが働く上で気になる【開発環境】に焦点を当てた、チーム紹介コーナー。言語やツール類を紹介するだけではなく、チーム運営や開発を進める上での不文律など、ハード・ソフト面双方の「環境づくり」について深掘りして紹介していく。
あの企業の開発環境を徹底調査!Hack the Team
エンジニアが働く上で気になる【開発環境】に焦点を当てた、チーム紹介コーナー。言語やツール類を紹介するだけではなく、チーム運営や開発を進める上での不文律など、ハード・ソフト面双方の「環境づくり」について深掘りして紹介していく。
まだ世にないサービスを生み出し、ユーザーを獲得していくのがスタートアップの醍醐味だ。そこではゼロイチで新しい価値を生むことが求められるが、サービスが成長していくにはその後迎える1→10、1→100の段階をどう乗り越えるかも大切になる。
このフェーズをうまく乗り切れずに終わってしまうスタートアップが数ある中で、2010年創業のSocketは開発チームの編成を工夫することで次の局面に歩みを進めようとしている。
同社の主力サービスであるスマホ向け販促プラットフォーム『Flipdesk』は、現在10名弱のエンジニアが開発に携わっている。
執行役員でCTOの生内(いくない)洋平氏いわく、現在のチーム編成は「サービスの未来を作るチームと現時点の商品力を上げていくチームの2つに分かれており、両輪を回しながら『Flipdesk』のユーザビリティを高めている」そうだ。
人的・資金的なリソースが決して潤沢とは言えないベンチャーにおいて、目先の機能改善だけでなく中長期的な成長も見据えたチーム体制にするのはなかなか難しいことだ。Socketでは、少数精鋭の開発チームでどうやって「未来」と「今」の両方をフォローアップしているのか。
彼らが今年2月に行っていた、MySQLからAmazon Aurora DBへの移管プロジェクトを例に詳細を聞いた。
Socketが2014年9月にリリースした『Flipdesk』とは、サイト訪問ユーザーの行動特性に合わせてクーポンやバナー表示、お知らせ通知などを自動で配信できるようにするBtoBサービスだ。
当該サイトにタグを1行埋め込むだけで利用できるという手軽さが評判を呼び、CVRや売上向上を狙うEC事業者のほか、会員登録増を目的にOne to Oneマーケティングを行いたいと考えるサービス事業者など、400社超への導入が進んでいる(2016年4月時点)。
今回紹介するAmazon Aurora DBへの移管プロジェクトは、サービスの特性上、ちょっとしたDSPと同程度のトラフィックに対して即時レスポンスが必要だという観点から、「MySQLを使う上で課題の一つだったレプリケーションラグというタイムラグを最小化するため」(生内氏)に始まった。
ただ、導入事例がまだ少ないAurora DBを使うことには一抹の不安もあったという。そこで移管前に諸々の技術検証を担当したのが、同社のインフラチームだ。
2015年11月から検証作業に取り掛かったインフラチームは、「Aurora DBについてのドキュメントがまだ少ないこともあって、MySQLとの互換性やチューニングの手法など、細かい点まですべて自社内で試しながら調査してきた」と話す。
結果、MySQLとさほど変わらない手間で運用が可能と分かり移管を決めたそうだが、もう一つ、このプロジェクトで重要なポイントとなったのが「サービスを止めずに移管する」というミッションだった。
カギを握ったデータ移行用バッチの開発を手掛けたのは、「現時点の商品力を上げていくチーム」に所属する太田賢志郎氏。
2015年10月にSocketへ入社する前は無印良品で販売スタッフをしていたという異色の経歴を持つ太田氏は、このミッションを生内氏や直属の先輩となるインフラ担当の石井那由他(なゆた)氏らに教えを請いながら見事に完遂した。
そしてAurora移行プロジェクトで得られた検証結果は、同社アーキテクトの奥田佳享氏へ貴重なケーススタディとして引き継がれることになる。
奥田氏が所属するのは「未来を作るチーム」。このチームに課せられた役割は、同社サービスの長期的な戦略を担う「どこまでもスケールするシステム」のアーキテクチャ構築だ。
『Flipdesk』がMySQLからAmazon Auroraへの移管を行ったのは、システムを刷新し続けることで技術的負債を抱えないようにするという狙いもあった。が、さらにもう一つ、別の理由があったと生内氏は言う。
それは、「やりたいという思いを持つ人に仕事を任せる」という文化をチームに根付かせることだ。
今回それぞれのプロジェクトにかかわった太田氏と奥田氏には、新卒入社がSIerだったという共通点がある。太田氏は新卒から約2年間、金融機関向けの大規模案件で運用保守の仕事を行い、奥田氏は2015年1月にSocketへ入る前の5年半をメーカー系SIerで過ごしていた。彼らが転職してきた理由は、「自分の手でサービスを開発したい」、「技術的にも新しい取り組みをしてみたい」というものである。
特に奥田氏はこの思いを強く持っており、人生の同じ時間を掛けるなら、よりプロダクトに近い場所で自分なりにビジネスと技術にかかわりたかったそう。
直近ではScalaに興味を持ち、独学していたこともあり、現在はRuby on Railsで作られている『Flipdesk』のシステムをScalaで書き換えるプロジェクトを主導している。
このプロジェクトでは、Amazon Auroraと同じく分散ストレージを用いたマネージドサービスのDynamoDBをメインデータストアとし、DDD、クリーン・アーキテクチャを主軸として保守性を担保しつつ将来のビジネス要件の変化にも適応しやすいアーキテクチャをScalaネイティブで実現するスタイルを採用した。
「ちなみにこれは、僕がScalaが好きということ以外にも理由があります。チームとしてオブジェクト指向言語と関数型言語の両方の性質を持ったScalaでの開発経験も積んでおくことが、将来的にプラスになると考えたためです。その点については、生内としっかり議論した上でプロジェクトを進めています」(奥田氏)
ともすれば最新技術をいじりたいというエンジニアならではのエゴで進みがちな取り組みも、「僕の経験上、やりたいと強く思ってやる仕事はやらされ仕事よりも良い結果を生む」(生内氏)という理由で推奨しているという。
生内氏の話によると、このような仕事をSI業界での経験を持つメンバーに任せているという点にも、成功の秘密があるようだ。
「これもあくまで僕の経験上ですが、SIerで比較的大きなシステム開発案件を経験してきた人たちは、スタートアップでのWebサービスの開発経験しかない人に比べてビジネス的な側面や運用面についての思慮が深い傾向があるように感じています」(生内氏)
【個人の思い】と【技術的なパフォーマンス】を天秤にかけながら、物事を判断する仕事習慣があると、前述のように過度な技術ドリブンで開発を進めることも少なくなる。
実はこれが、少人数ながら「未来を作るチーム」と「現時点の商品力を上げるチーム」の両輪を機能させるSocket流の勝ちパターンなのだという。
実際、現在いる10名弱の開発チームで半数以上がSI出身者ということで、「当面は中途採用も『SI出身者歓迎』で行っていく」と生内氏は言う。
大規模かつミッションクリティカルなシステム開発になればなるほど作り手の自由は失われがちだが、逆にそういう環境で仕事をしてきたSI出身者が自分の意思ありきで開発を進めるSocketでの仕事にすぐ適応できるのか。
この疑問に対して、太田氏はこんな経験談を語り取材を締めくくった。
「Socketは裁量労働制を採っていて、先輩が会社にいない時もあるので、入社当時は『開発経験のない自分がやっていけるのか?』と不安になったこともありました(笑)。でも、何でもまずやってみるという姿勢がなければ技術力も身に付かないし、そういうワークスタイルが好きなんです。放置されているわけではないですし、すぐに慣れると思いますよ。『自分の手で何かを生み出したい』という強い思いがある人ならば」(太田氏)
取材・文/伊藤健吾(編集部) 撮影/竹井俊晴
NEW!
NEW!
タグ