Cha道

Chatworkの「人」「組織」を
伝えるメディア

新卒で入社してから15年。Chatworkの歴史を見てきた、開発組織マネージャーの肖像。

ビジネスパーソンの価値観は多種多様であり、数年ごとに働く環境を変える人もいれば、1つの企業で長く働き続ける人もいます。サーバーサイド開発部(PHP)でマネージャーを務める渋谷悠司は後者の典型例です。Chatworkに新卒入社し、それ以来15年以上にわたりこの会社で働いてきました。そんな渋谷に、Chatworkで印象に残っている経験やこれから実現したいことなどを聞きました。

■プロフィール

渋谷 悠司
プロダクト本部 サーバーサイド開発部(PHP) マネージャー

大学卒業後、当時まだ黎明期のスタートアップだった株式会社EC studio(現・Chatwork株式会社)に2007年4月入社。以来、15年以上にわたりChatworkで働き続ける。キャリア初期の頃はフロントエンドからバックエンドまで幅広く担当し、キャリア中期・後期はバックエンド(PHP)を担当。最近は主にマネジメント業務を担っている。

自分の携わった仕事が会社の成果に直結する環境を求めていた

――まずは渋谷さんがエンジニアを目指した経緯からお聞きします。

高校時代にバンド活動をしていて、そのWebサイトを開設することになり、試行錯誤しながら作ったのがきっかけです。自分の作ったものを簡単に公開できることを知り、Webという世界はすごいと感じました。もっとプログラミングを学びたくて、大学ではネットワーク系を扱う学部を専攻しました。

就職活動では「規模の小さな会社で、かつ自社開発をしていること」という軸で企業探しをしました。大きな企業で歯車のように働くのが嫌で、自分の携わった仕事が会社の成果に直結する環境を求めていました。

その頃のChatworkはまだ黎明期で、私が求める条件とぴったりでした。当時は大学生に対して2週間に及ぶインターンシップを実施しており、そこで社員と一緒に課題をこなすなかで「こういう人たちと働くのか」「毎日こんな内容の仕事をするんだ」と、働き方のリアルなイメージを持てたのが大きかったです。

それ以来、15年間ずっとChatworkで働いています。現在は、サーバーサイド開発部(PHP)でマネージャーをしています。PHP部のメンバーのマネジメントをしつつ、PHPを用いた開発プロジェクト全般を統括しています。

15年働いてきたなかで、印象に残る仕事

――15年を振り返って、特に印象的なプロジェクトは何ですか?

3つありまして、1つが「Chatwork」の有料プランを開始した際の開発プロジェクトです。「Chatwork」はもともと社内だけに提供していたサービスで、その後フリープランで社外に提供し、さらに有料プランをリリース、と少しずつ拡張してきたサービスです。

プロジェクト開始段階では仕様がきっちり決まっておらず、開発担当のもう一人のメンバーとディスカッションしながら仕様を策定していくスタイルで進めました。現在の開発スタイルとの違いを感じますよね。

「○○のケースの場合に、○○だとまずいのでは」などと話し合いつつ、エッジケースも考慮しながら設計の改良をくり返しました。リリースに間に合わせるために、大変なこともたくさんあったので、そういう意味でも印象に残っています(笑)。

有料プランをユーザーに購入してもらえたときは、自分たちの仕事の価値が認められたようで、すごく嬉しかったのを覚えています。プロジェクトマネジメントやシステム設計などで多くの学びがあり、印象深いプロジェクトでした。

2つ目は、参加しているグループチャット内で音声通話やビデオ通話ができる「Chatwork Live」の開発です。「Chatwork」の節目の年にリリースされた目玉機能であり、私一人で開発を担当しました。重要度の高い機能を、仕様の策定から設計、実装までまるまる担当できたので、やりがいが大きかったです。

音声通話やビデオ通話の機能は、WebRTCの技術を使って開発します。SDKを用いるためWebRTCの深い理解は不要だったものの、使い勝手の良いアプリにするためにUIなどで考慮すべき点が多く、苦労したプロジェクトです。特に、画面共有機能の仕様や設計を考えるのは、大変だった記憶があります。

もしも「Chatwork」の年表があるならば、「Chatwork Live」は間違いなくそこに記載される機能です。だからこそ、無事にリリースできたことで「Chatworkの歴史に名を刻めた」と感じ、大きな達成感がありました。

3つ目はチャットログ・エクスポートという、メッセージのログ情報をすべて出力できる機能の開発です。リリース直後にパフォーマンス関連の問題が発覚して、反省点と学びがあったプロジェクトでした。ローカル環境での開発時は特に問題がなかったものの、いざ本番環境にリリースすると、アプリケーションの動作が非常に遅くなってしまったのです。

確認してみると、データベースのインデックスが適切に設定されていないのが原因だと判明しました。「Chatwork」はサービスの規模が大きく、取り扱うデータも膨大です。そのため、こうした不適切なデータベース設計にしてしまうと、すぐにパフォーマンスが劣化してサービスが落ちてしまいます。この件を教訓に、データベース設計やクエリは適切かどうか、どのくらいのデータ量になるのかなどを、強く意識するようになりました。

「自分がいなくても仕事が回る状態」が理想

――PHP部のマネージャー業務についても伺います。

マネジメント業務に携わるようになってから、5年ほどになります。この業務を通して、チーム開発に関する考え方が徐々に変わってきました。これまでのChatworkでは、仮に複数のメンバーで開発プロジェクトを進める場合でも、一人ひとりが自分の担当タスクのみに集中しており、チーム開発とは言えない部分があると気がついたんです。

チーム開発をマネジメントする経験を重ねながら、メンバー同士のコラボレーションを促進することが重要だとわかってきました。「チームに仕事を任せるというのはこういうことなんだ」と理解できるようになりましたね。

――マネジメントをするうえで、どのようなことに気をつけていますか?

自分が前に出過ぎないように気をつけています。私はChatworkにいる年数が長いので、1つの話を聞くと、なんとなくタスクやプロジェクトの全体像が見えてしまうんです。だから、ついつい「これは○○○ということですよね」と、答えを言いたくなってしまいます。

ですが、自分が出しゃばってしまうと、メンバーは「渋谷さんの方が詳しいだろうし、自分は黙っておこう」と考えるようになりますし、組織の成長にもつながりません。私が答えを提示するのではなく、なるべくメンバーたちに考えてもらうよう意識して行動しています。

それから、目標設定と、その推進の方法を工夫するようになりました。もともとPHP部では部署の目標は掲げられていたものの、適切に運用できておらず形骸化していました。そうすると、メンバーが何かを提案しても、目標に沿わない的外れな意見になってしまう。そして、マネジメント側も「どうしてこんな提案をしたのだろう」と不信感を持ってしまう。これでは、お互いに不幸になってしまいます。

『LeanとDevOpsの科学』(インプレス)という本を読んだことをきっかけに、これではいけないと思い、運用方法を変えることにしました。部署として具体的な指標を決めて、それに紐づいた目標を立て、その大方針に沿っていれば何をやってもいい、という方針にしました。

――組織を改善するために、マネジメントにおいてチャレンジを続けているのですね。マネージャー業務をやっていて、楽しさを感じる瞬間を教えてください。

自分がいなくても仕事が回っているのを実感できたときに、マネージャーをやっていてよかったと思います。いかにして、属人化せずにプロジェクトを円滑に進めるかを大切にしています。特定の誰かがすべての情報を抱え込むと、Chatwork全体の成長につながらないですから。

「インフラのようなサービスに携わりたい」という思いを実現

――Chatworkでの働きがいはどのあたりにあるのでしょうか?

企業の変化がすごく大きいことです。同じ組織なのに、数年ほどで別物のように変わっていきます。15年間働いていますが、飽きることがありません。長く働き続けられたのも、それが大きいです。その環境に身を置くことで、自分自身も成長できています。

この15年でいろいろな点が変化しましたが、特に働く環境やプロダクトの変化が大きいと思います。経営陣によるトップダウンの意思決定だけではなく、メンバーからのボトムアップ的な意見も積極的に採用するようになりました。

また、教育制度も以前はOJTだけだったのが、社内研修が充実して体系的にスキルアップできる環境になっています。昔はプロジェクトが属人的な頑張りに支えられている側面が大きかったのですが、現在は会社や開発組織が育ってきて、より社員が働きやすい職場になったと感じます。

プロダクトの変化としては、サービスの信頼性が大きく向上したと感じます。以前はサービスがよくダウンしており、復旧まで数分、ときには数時間かかることもありました。そんなときにユーザーからSNSなどで「頑張ってください」といった温かい言葉をもらうと、かつての私はありがたい気持ちになっていました。

ですが、ある社員から「落ちたときにユーザーから優しい言葉をかけられるのは、裏を返せば必要とされていないということだよ」と言われ、ハッとしました。現在は、サービスが落ちるとネットニュースで取り上げられますし、SNSなどで厳しいお言葉をいただくこともあるので、責任の大きさを感じるとともに、「そういう世界に来られたんだな」と思っています。

――今や、「Chatwork」はインフラのようですよね。

そういえば、“インフラ”という言葉を聞いて思い出したエピソードがあります。「Chatwork」がリリースされる前にエンジニア仲間と飲み会をしたとき、私は「社会のインフラを担うようなサービスを開発したい」と言っていました。その目標を叶えられたのか。なんだか、感慨深いですね。

これからも技術的な改善を続けていく

――今後の目標についてお聞かせください。

PHPのバージョンやライブラリのアップデートを、計画的かつ戦略的に進めていきたいです。これまではバージョンアップ対応が後手後手に回っており、どうしても必要になったタイミングで、必要に迫られてアップデートしたという側面が強かったです。

「Chatwork」のユーザー規模や社会的インフラとしての役割を考えると、パフォーマンスやセキュリティの強化がより重要です。今後は先手を打ってアップデートすることで、迅速に対応できるようにしたいです。

――最後に、この記事を読んでいるエンジニアにメッセージをお願いします。

「Chatwork」のように、PHPで書かれており、かつ高トラフィックなサービスは日本国内では珍しいです。ユーザー数も増え続けており、グローバル展開も見据えています。そのサービスの開発にチャレンジできるのは、PHPエンジニアにとって非常にやりがいがあります。より良いシステムを実現するためにメンバーも自己研鑽に励んでおり、切磋琢磨しながら成長できる環境がChatworkにはあります。

また、メンバーがボトムアップで提案でき、その意見を受け入れる土壌があるのもChatworkの魅力です。たとえばPHP部の事例としては、静的コード解析ツールのPHPStanを入れたいという提案がメンバーからあったことを機に、導入して使うようになりました。良いツールや良いアイデアは積極的に取り入れたいですし、メンバー全員が発言しやすく働きやすい環境を、今後も作っていきます。

 

撮影場所:東京オフィス(WeWork 日比谷 FORT TOWER)