【Chatwork対談】開発組織立ち上げ期から今後の展望までを語る
2019年9月にマザーズ市場に上場を果たし、注目の集まるChatwork株式会社。
執行役員兼開発本部長である春日さんと、同じく開発本部で副本部長を務める田中さんにインタビューを実施し、Chatworkの初期から現在に至るまでの組織の変遷と、2020年に向けた次世代システムについて伺いました。
果たして今後Chatworkが目指す組織の形とは、どのようなものなのでしょうか。
目次
個人プレー主体の開発体制、組織をスケールできなかった当初の開発組織
[先日は、FLEXY主催のCTOmeetupのご登壇、ありがとうございました! また、今年9月にマザーズ市場への上場おめでとうございます!
本日の取材では、Chatworkの開発スタイルの変遷を聞かせていただきたいと思います。
まず、春日さんと田中さんが入社した当初はどのような開発組織だったのでしょうか?
春日 重俊さん(以下、春日):私がChatworkに入社したのが2016年の1月で、田中が入社したのは2013年の4月です。
春日:田中は初期のChatwork開発に携わっていますから、時系列でわかりやすいように、まずは田中から遍歴をご紹介しますね。
ありがとうございます。それでは、クライアントアプリケーション開発部副本部長を勤める田中佑樹さん、入社した当初のことをお聞かせください!
田中 佑樹さん(以下、田中):私が入社したときは従業員が30名ほどでした。池尻のマンションのようなオフィスで開発していましたよ。 ちょうどUIの刷新プロジェクトを進めている段階で、CTOの山本正喜(現在はCEO兼CTO)とデザイナーが中心になって開発を行なっていました。 私はJSなどWebのフロントエンドをお手伝いする形でしたね。あとはAPIのプロジェクトや、メッセージ検索の刷新プロジェクトなども担当しました。メッセージ数が1億ほどで、サービスとしては中規模に到達していた段階だったので、これからどんどん機能追加をしていこうというフェーズでした。
当時はどのプロジェクトも個人プレー主体で、主要となる判断は山本が指示を出しつつ、エンジニア2名程度で小規模かつスピーディに開発をしていました。そこから徐々にメンバーが増えていったのですが、個人で開発を進めていたためドキュメントを残すような文化がなく、開発をスケールさせるノウハウも持っていなかったんですよね。 ミーティングは頻繁に行なっていましたが、誰が何を言った・言わないの問題もかなりありました。 2013~2015年までは、組織の混乱期、あるいは過渡期というイメージです。
2016年頃にはメッセージ総量が10億弱にまで増えて、システム設計的にサービスがパンクしかけていました。その対策として最初に行なったのが、AWSのSQSで非同期処理をするとことでした。 メッセージを遅らせても支障がない人に対してはどんどん遅らせて処理するようにしましたが、それでもメッセージ量は増えるばかりだったので、さらに対策をと考えていたときに入社したのが春日さんです。
混乱期を経て、効率的に開発を進める中規模組織へと変遷
なるほど。増えるメッセージに対しての対策が必要な時期に、春日さんが入社されたんですね。 当時の会社の状況や開発体制はいかがでしたか?
春日:私が入社する以前に、Chatworkは合計18億円の資金調達を行なっていました。
それまでは自己資金で経営しながら社員の満足度を高めることを会社のポリシーとして掲げていたのですが、サービスの導入企業数増加とともに競合環境も激しくなってきたことを受けての決断ですね。 私が入社した2016年1月には、メンバーは会社全体で60名強(開発メンバーは30名強)にまで拡大していました。
システム的には田中がご説明したとおりメッセージ量が倍々で伸びてきていたので、分散システムにして今後負荷が100倍になっても動くような仕組みを導入することになりました。メッセージ基盤の再構築ということですね。1年間ほど費やしました。
わかりやすいように、2014年頃と2016年末頃で、システムの構成図を見比べてみましょう。
過渡期ですね。この頃の開発体制と部署の状況はいかがでしたか?
春日:確かに過渡期でしたね。これまではCTOとマネージャーだけでメンバー全員をマネジメントしていたような体制だったものを、部署として分解したところでした。ただ、その組織をどうマネジメントしていくのかという部分はまだまだ弱かったんです。
ですから私が入社してからは組織として当たり前の意識付けも行いました。報告連絡相談の徹底、1on1の導入、会議は共有事項や決議すべき事項をまとめたアジェンダを作成して臨むことといったことです。 これまでスピーディに開発を進めてきたエンジニア組織に対して、どうガバナンスを効かせながらギアチェンジしていくのかというところを模索しました。 最初は開発速度が遅くなるように見えても、結果的には中規模組織として効率的に動けるような切り替えを図ったのです。
春日さんはSREチームの立ち上げに尽力したと伺っています。
春日:チャットサービスは24時間365日監視しなければならないのですが、インフラ担当者が夜中に一人で見ているような状況でした。 それは当然個人が負う責任としては大きすぎるものだったので、私が1年かけてSREチームを立ち上げ、担ってくれる人材もスカウトしました。
2016年までかけて組織の基盤を再構築したのですね。2017年からはどのような動きになったのでしょうか?
春日:2017年からは、専任のプロダクトマネージャーを中心としてロードマップを引いた開発をしていこうという動きを進めていきましたね。
プロジェクトごとにチームを組成することで、生産性の最大化も図りました。ただ、プロジェクトチームを作って解散という流れでは、どうしてもメンテナンスがおざなりになってしまいます。
そこが現状の問題点でもあるので、今後は開発に関わったメンバーがそのまま運用に移行するようなチーム体制にしていきたいと思っています。
Chatworkが技術的負債と戦い続けなければならなかった理由
組織のスケールに伴う課題に関する話題が出ましたが、現状はどのような課題は具体的に取り組んでいらっしゃいますか?
田中:大きな課題は技術的負債ですね。メッセージ基盤を切り替えることはできたのですが、それ以外の部分はまだ負債が残ったままになっています。というのも、もともとChatworkは社内システムからスタートしているので、ここまでの規模で使用される想定をしていませんでした。
その結果として巨大なモノリス化してしまっていたんです。言ってみればChatworkの開発は技術的負債との戦いの歴史ですね。 少しずつ負債を返済しようとしてはいたものの、一方で新機能の提供もしなければいけませんから限界があります。その中でも今は機能単位でシステムを再構築するプロジェクトを立ち上げて、技術検証をある程度終えた状態までこぎ着けました。いよいよ本番環境で実装していこうというフェーズです。
Chatworkユーザーとしては見えない裏側ではかなり地道な努力が行われていたんですね。
春日:2018年時点でのシステム構成を見るとわかるのですが、もはや画像1枚では書ききれないくらいサブシステムが増えている状態です。
春日:先日リリースしたリアクション機能も、実は上記の図と同じくらいのボリュームを持つサブシステムだったりします。 いわゆる普通のスタートアップが設計するアーキテクチャであればRDB構成でも良いのですが、ここ2~3年で予想されるリアクションのデータ量を加味すると、すぐにパンクするだろうと予想できました。 ですからバックエンドDBをDynamoDBにして綿密な負荷テストも行なった上でリリースしています。
単純な機能に見えますが、裏側ではかなりシビアな性能が求められていたわけです。この点を大きなトラブルなく遂行できたのは、開発組織としての力が高まっているのかなとは思いますね。
今後の組織を担う次代の人材を積極的に発掘したい
9月にはマザーズ市場に上場されてたことが、かなり話題になりました! エンジニア組織の目指すべき方向性についてもお伺いしたいです。
春日:そもそも18億円の資金調達を行なったのは、メンバーを一気に増やす目的もありました。 そこで生じた赤字を黒字にして上場するというところまでが会社としての目標だったので、今後は第三の創業としてさらに人を増やそうとしています。組織基盤も再構築して、拡大に耐えうるスケーラビリティを確保していこうというところです。
実はこういった背景を踏まえて、Chatworkの目指す次世代システムを考えています。 端的に言うと組織規模を拡大した際に生産性を確保するためのマイクロサービス化と、今後ユーザーが増えても耐えうる仕組みづくりですね。もちろん、上場企業としてはセキュリティ維持にも一層務めていかなければなりません。
組織拡大という面ではどのような取り組みを行なっているのでしょうか?
春日:これまでChatworkはずっと中途採用者だけでメンバーを構成していましたが、今年の夏に新卒採用にチャレンジするため、インターンを実施しました。 他社に比べると明らかに後発的な動きだろうと思いましたから、Scalaに興味のある学生に呼びかけて、全国から集めました。 集まったのは7名で、結論から言うとかなり満足度は高かったです。7名のうち5名ははてなブログで当社のサマーインターンについて広報もしてくれました。 これを一つの文化として根付かせていきつつ、2020年代のChatworkを担ってくれるような人材を発掘していきたいですね。
海外からの方も採用しているそうですね。
春日:私が所属している開発本部には外国籍メンバーが3名いますね。アメリカ人とラオス系フランス人、インド人です。 2018年頃に入社してもらって組織の変化を見ているのですが、彼らが開発に参加することで、ストレートに自分の意見を発信するのは良いことなのだという認識が生まれてきたようです。やはり日本人は相手に気を使いすぎて忖度してしまいがちですし、自分の意見を言えなかったりしますから。 あとは彼らの中には英語しかできないメンバーもいるので、自然と英語を話す機会も生まれましたね。 少しずつチームもグローバル化できればと思っています。
採用広報の面ではどのような活動をしていきますか?
春日:Chatworkは良くも悪くも名前だけが先行していて、開発者のキャラクターは見えていません。 会社としてはメンバーがどんな思いでプロダクトを作っているのかを発信していきたいので、インタビューなども積極的に受けるようにしています。 働き方の発信も同じく進めようとしています。 例えば田中は9月に子供が生まれて、奥さんが鹿児島に里帰りしていたので育休を取得していました。一時期はリモートワークもしていましたよ。先進的な制度を取り入れているというアピールでもありますし、Chatworkがあればリモートワークもできると伝えていきたい意図もありますね。 リモートワークで日本各地を転々としながら働いているメンバーもいますし、自治体と連携してコワーキングスペースで働いてみるといった取り組みも行なっています。 田中の育休も含め、どんな様子だったのかは企業ブログで公開中です。
田中:ただ、リモートワーク自体は人を選ぶので、メンバー全員をフルリモート可にしているわけではありません。この人なら大丈夫そうだと感じられる、あるいは事情があって希望する人はフルリモートで働いてもらっているという感じです。 オフィスを東京と大阪に構えているのは、フェイス・トゥ・フェイスのコミュニケーションを重視しているからですしね。 そのあたりの思想はChatwork Liveというビデオ通話機能にも反映しています。対面でやりとりをした方が良い場面は絶対にありますし、オンオフのメリハリをつけて働いてほしいです。
限られた方のみとはいえリモートワークや男性の育休を取り入れているのは、とても先端的で働きやすいですね! そのほかに面白い制度はありますか?
春日:フルリモートのメンバーがいるということで、半年やクォーターに1回くらいの頻度で部署ごとに合宿を行なっています。 フェイス・トゥ・フェイスのコミュニケーションを取るための取り組みの一つです。合宿と言っても会社からはオーダーを出さず、部署のマネージャーの提案でそれぞれ特性のある合宿を実施してもらっています。 例えばスパ施設で合宿する部署もあれば、鹿児島で働いているメンバーがいるからと鹿児島に集まる部署もあります。田中の部署も面白い合宿をしていましたよ。
田中:大阪でバグ合宿をしましたね。自分たちのサービスの中にあるバグをよーいドンでひたすら見つけるというイベントです。見つけたら審査員に報告して、点数を付けてもらいます。
単純にバグを見つけるという目的もありますし、新入社員の人により製品を深く知ってもらうという意図もあります。
1つの機能に対してユーザビリティを追求し続ける、機能型組織を目指して
では、Chatworkにおける2020年の開発組織のあり方とは?
春日:参考にしたいのはSpotifyさんですね。彼らの組織は数千人単位のエンジニアチームを抱えているのですが、1つの大きな機能を開発するのではなく、機能単位で組織を分けています。 先程も軽く触れましたが、プロジェクト単位でメンバーを集めると開発後の改善活動が行われません。その点機能単位の組織を組成すれば、1つの機能に対してユーザー体験を追求し続けることができます。 例えばですが、シャッフルリスト機能を運用しているとすれば、ボタンを押す部分の画像をどう表示すれば最高のUIになるかといった非常に細かい部分にまでこだわれます。 Webサービスの良いところはプロダクトをアップデートできるところでもあるわけですから、それを実施するための機能型組織にチャレンジしたいと思っています。スタートアップ企業であってもいずれは同じような課題にぶつかると思いますし、私たちが成功事例となって世の中にフィードバックできたら最高ですね。
田中:機能型組織にするには、今のシステムをアーキテクチャから変えなければなりません。当然難易度の高い話ですから、今春日さんが言ったような未来にどう近づくことができるのか、模索中という状況ですね。
機能型のエンジニア組織は増えているのでしょうか?
田中:マイクロサービスが増えているということは機能型組織も増えているということだと思います。当社はマイクロサービス化した部分が増えてきているものの、組織構造が追いついていないという感じです。
春日:1つのチームが見るマイクロサービスの数がどんどん増えていってしまうので、理想としては1チームが1マイクロサービスを見るという形にしたいんです。メルペイさんなんかは、大規模な組織を作ることを想定してプロダクトを立ち上げているので、最初からマイクロサービスです。一方で私たちは半ば無理やりマイクロサービス化に舵を切っているような形なので、チャレンジの仕方は違うと思います。
では、今後の開発にかける思いについて語ってください。
田中:以前は障害で数時間ダウンすることもしばしばありTwitterでお叱りを受けることもありましたが、それだけ使ってくれている人が多いということでもあります。上場を経て、Chatworkというサービス自体が世の中に対して持つ責任や意味合いはより強くなっていくのではと思っています。 組織そのものやセキュリティ、アーキテクチャなどをどう改善し、技術的負債を返済していくのか。そういった部分に対してチームの力を最大限発揮していけるようにしていきたいと思っています。
春日:平成から令和という大きな時代の切り替わりがありました。 しかし、海外のカンファレンスなどに参加して痛感するのは、日本という国がデジタル面で取り残されているということです。 海外ではUberで配車を依頼したり、Amazon Goを使って店舗で並ばずに商品を買ったりといったことが当たり前のように生活になじんでいますし、キャッシュレス化に関してもあっという間に中国に追い抜かれていますよね。日本は良くも悪くもそういった流れに即さない、平和な国です。 ただそのことによって私たちの子供の世代がどんどん貧しくなる、ということになりかねません。 私たちが提供しているようなサービスが日本全体のデジタル領域を促進するとまでは思わないのですが、少なくとも中小企業のローテクでレガシーな部分は、私たちのプロダクトを通じて改善し、労働という面において人々を幸せにしたいです。 それを踏まえて、開発面ではまず自分たちが心地よい働き方をしながら楽しんで作ることが重要だと思っています。そうでなければ、ユーザーに受け入れられるはずがありませんから。
AIが今後のIT業界にもたらす、超高速型の開発スタイルとは
それでは、最後の質問になりますが、今後、IT業界全体はどのような方向に向かっていくのでしょうか? ぜひ、ご意見を聞かせていただければ嬉しいです。
春日:私が初めて就職したのが2003年頃で、ちょうどStrutsなどフレームワークの走りが登場し始めていました。それまではシステム開発のいたるところで車輪の再発明が行われていたのですが、それがある程度抽象化され、さまざまな開発現場で利用できるようになってきたというのが2000年代の大きな枠組みです。
2010年代に入ると、オンプレミスからクラウドネイティブへと時代が移っていきました。象徴的なのがAWSやAzure、GCPですね。また、今のエンジニアが当たり前のように行なっているGitHubでコードレビューし合うような文化もしかりです。もともとは個人の端末内で完結していたものがオープンに公開され、いろいろな開発ができるようになったというのがパラダイムシフトだと思っています。
では2020年代はどうなっていくのかといえば、大きな流れとして避けられないのがAI化です。機械学習は今後さまざまな分野に応用されていくでしょう。AIによって開発スタイルがどう変化していくのかといえば、例えば今は2週間で1スプリントと言われているようなスタイルが、1日単位で進むようになるはずです。毎日作っては試すような、高速化された開発スタイルの誕生が予測できます。
10年単位で見ると現在エンジニアの開発現場にあるものが当たり前に存在し続けるわけではないことがわかりますし、大きな時間軸でどういう変化が起きるのかを予測しながら情報をキャッチアップしていかなければならないでしょう。
そうですね、昨今、話題の5Gも登場しています。
田中:もうすぐ我々の生活に導入される可能性がありますね。私はモバイルアプリも見ているのですが、変遷の速さを強く感じます。その分、モバイルエンジニアの人材はどこも取り合いです。
その中での対応力を高める意味でも、うちの部署ではさまざまな分野も担えるエンジニアの育成を目指しています。例えばiOSだけでなくAndroidも担当できるといったようなことです。 もちろんかなりハードルは高いのですが、その分どんな人材でもジョインしやすい開発環境づくりに務めたいと思っています。
貴重なお話、有難うございました!!
採用情報:Chatwork社では、エンジニ・リードエンジニアを募集しています。