Four Keysの自前取得からサービス導入で自動化。高信頼性組織を目指すセンシンロボティクスの取り組み
企業や社会が抱える課題を、ドローンをはじめとするロボティクス技術で解決する社会インフラDXのリーディングカンパニー、株式会社センシンロボティクス。エンジニア組織における個人の振り返りや組織の課題発見に、エンジニア組織支援クラウド「Findy Teams」を活用いただいています。
今回は、サービスクオリティディレクターを務める高橋和也さんと、開発チームのマネジメントを務める中山淳さんにインタビュー。開発チームにおける課題や取り組み、「Findy Teams」導入のきっかけなどについて伺っていきます。
目次
入社4~5年目、初期から開発組織を支えてきた2人
──お二人のこれまでの主なご経歴と、現在の業務内容を教えてください。
高橋さん:主な経歴としては、Web制作会社やデザイン会社などを経て、前職はWebサービス系のクラウドソーシングやポイントサービスをやっている会社で、エンジニア技術統括やCTOをしておりました。センシンロボティクスには、2017年に入社し、僕が実質1人目のエンジニアとしてプロダクトをつくり始めた経緯があります。
これまで部長として開発部の組織をつくってきましたが、今年の春に組織の体制が変わり、現在は品質向上を担うサービスクオリティという役割で、運用設計やQA、チーム立ち上げなどを担当しております。
中山さん:私はずっとソフトウェアの開発をやってきていて、メインフレームの端末エミュレータやグループウェア、エンタープライズサーチと言われる領域の製品をつくったりしていました。
センシンロボティクスに入ったのは2018年。エンジニアが5~6人の頃でした。入社からエンジニアとしてやってきて、今年春からはテクノロジーグループのマネージャーをしています。
現場にも足を運ぶ、オフィスだけでは完結しない仕事
──開発チームの特徴やミッションについて教えてください。
高橋さん:僕らのプロダクトやサービスでは、データの取得から分析、そして利活用まで、一気通貫で提供しています。データ取得はドローンやロボットを使って自動化や効率化を行い、AIを使って分析します。そして、Webアプリケーションやモバイルアプリケーションなどを提供して、お客さまに活用いただいております。
社内には、Webエンジニア、モバイルエンジニア、AIエンジニア、ロボットエンジニアがいまして、幅広い技術を使って開発をしています。さまざまな技術を持った人が力を合わせて、ソリューションを提供している組織ですね。
開発部のミッションは、今作っている複数の新しいプロダクトをしっかりリリースしていくことと、すでにリリースしたプロダクトのグロースや安定稼働になります。そして、お客様の課題解決のための新しい技術の研究もミッションになります。
──御社ならではの面白さを感じるポイントがあれば教えてください。
中山さん:私は今までずっとオフィスで完結するものをつくってきたので、自分のつくったソフトを使ってドローンが飛ぶとか、そういったところは他ではなかなか経験できない面白さがありますね。
高橋さん:テストもWebだけでは完結しないことが多いので、みんなでテストフィールドまでドローンを飛ばしに行ったり。お客さまへのヒアリングや現場検証のために現場に行くことも多いです。
中山さん:オフィスだけでは終わらないのが我々の仕事です。そこは大変な部分でもあり、面白い部分でもありますね。
プロダクトの安定稼働やグロースに、より注力していく
──開発チームにおける直近の課題や、それに対する取り組みについて教えてください。
中山さん:プロジェクトやプロダクトが多く、本当は開発メンバーをプロダクトに固定してグロースさせたいのですが、それが難しくて苦労しています。4月に新しくリリースしたプロダクトでは、メンバーを固定して、残りのメンバーで新しいプロジェクトをこなしていますが、どうしても手が足りなくなってしまいます。
以前から「SENSYN CORE」というプラットフォームの上に業務特化のアプリを作ることで機能の重複を減らし、少ない人数でも高速に開発できることを目指しています。ただ、これは一部は上手くいっているのですが、もっと上手く使い回すために再設計しているところです。
高橋さん:今後はプロダクトをグロースさせていくところに、より注力していこうと考えています。ただ、お客さまに使っていただいているプロダクトを安定稼働させていくにあたって、まだまだ足りていないことも多いなと。
今まではとにかくたくさんプロダクトをつくっていくフェーズだったので、今後しっかりと運用していくにあたって、開発のスタイルや考え方も変わってくると考えています。なので、僕がサービスの品質やセキュリティ、運用設計、仕組みづくりといった部分の整備を進めています。
プログラムを自作するも難航し、「Findy Teams」の導入へ
──「Findy Teams」を知ったきっかけや、導入を決めたポイントについて教えてください。
高橋さん:もともとは、僕が何年か前に『LeanとDevOpsの科学』という本を読んで、パフォーマンスの可視化がすごく重要だなと思ったんですね。当時GitLabを使っていたんですが、Four Keysを可視化しようと、集計するプログラムを自作してみたんです。
ところが、GitLabからGitHubに移行することになり、GitHubのAPIに対応させるのが大変だなと。しかも、途中1年くらいGitLabとGitHubを併用していたので、マージするのも面倒で、あまり使えずフェードアウトしてしまい、「これは片手間で自作するものじゃないな」と思ったんです。
それで、同じようなサービスを海外も含めて調べたり、検証していたのですが、あまりうまくマッチするものがなくて。どうしようかなと悩んだときに、ファインディさんから「Findy Teams」を紹介していただいたんです。「Findy Teams」は、欲しい情報がまさに全部取れるし、UI/UXもすごくわかりやすい。実際に無料トライアルの期間を経て、使いやすかったので、導入することにしました。
オンボーディングや課題の可視化に「Findy Teams」を活用
──現在、「Findy Teams」をどのようにご活用いただいていますか?
中山さん:最近チームに新しく入った人のパフォーマンスを見て、オンボーディングに役立てています。例えば、チームに馴染めていない段階だと、なかなかレビューしづらいと思いますが、だんだんレビュー数が増えていくのが見えたり。何かフォローした後に、パフォーマンスが上がったかどうかもわかるので、そういう面で活かしています。
高橋さん:活動が可視化されるのは大きいですね。意外と夜中に働いているんだなとか、今まであまり把握できていなかったところが見えるようになりました。負荷についても、具体的にどう忙しいのかが見て取れます。急にすごく稼働が増えたり、プルリクが増えているとなれば、明らかに負荷が偏っているとわかりますし、そういったヘルスチェックはマネジメントの観点ですごく大切ですよね。
また、開発の進捗が遅れてしまっている時に「開発パフォーマンスが良くないから」と一言で収めてしまうのではなく、「Findy Teams」を活用することで詳しい状況をチェックできます。例えば、レビューが偏っているとか、プルリクのサイズが大きくなりすぎているとか。そういう具体的な課題が可視化できるところが良いなと思っています。
──今後、「Findy Teams」に期待する機能などがあれば教えてください。
中山さん:「この人の負荷が高くなっています」といったサジェストがあると嬉しいですね。今も急に負荷が上がった人は表示されますが、期間を柔軟にできるとよりありがたいなと。あとは、プルリクの平均サイズですね。プルリクのサイズが大きすぎるプロジェクトは、やはり品質に問題を抱えている可能性が高いので、そこがアラートを介してわかるとありがたいです。
高橋さん:Four Keysについては、もうほぼ網羅されていると思いますし、すごい勢いで機能追加されているので、欲しいと思ったものは、だいたい追加されているという印象です。
あとは、サービスの品質に関するところで、エラーの発生率なども紐付けて見られたらいいですね。 今後は安定したパフォーマンスのためにSLOやSLIも見ていきたいと思っており、エラー発生率などとも紐付けられると良いなと思っています。
──マネジメントへの活用にあたって、「Findy Teams」に期待する機能はありますか?
中山さん:今までは、それぞれの人のパフォーマンスを定性的に把握できていましたが、人数が増えてきたので、徐々にこの先見えづらくなるのではないかと思っています。なので、「最近このチームはパフォーマンスがあまり良くないですよ」というのを通知してくれる機能があると、すごくありがたいですね。基本機能は今もあると思うので、期間や対象を調整していただけると、より役立つと思います。
安全に失敗できる組織、かつ高信頼性組織を目指す
──それでは最後に、今後どのような開発組織を作っていきたいかについて教えてください。
中山さん:安全に失敗ができる組織を目指しています。人間は失敗から学ぶことがたくさんありますから、どんどん失敗してほしいのですが、事業に大きなダメージがあると困ってしまいますよね。なので、安全に失敗できるような環境をつくっていきたい。そうすると、学びもより早くなりますし、チーム全体の実力も上がっていくと考えています。
例えば、ブルーグリーンデプロイメントやカナリアリリースなど、少しずつリリースしていく方法であれば、失敗しても事業へのダメージが少なくなります。センシンロボティクスの場合は、カナリアリリースはあまり適合しないのですが、そういった失敗のダメージを最小化できるやり方を考えていきたいと思っています。
高橋さん:社内で1つのキーワードとして、高信頼性組織というものを掲げています。高信頼性組織とは、原子力発電所や航空管制システムといった、失敗が許されない環境において、高い成果をあげている組織のことを指す言葉です。
僕らも、社会インフラをメンテナンスする会社など、非常に機密性の高い情報を扱う会社にシステムを提供しています。他にも、例えば僕らがつくったドローンを制御するシステムにミスがあって、もしドローンがどこかに飛んでいってしまったら、物理的な被害を及ぼす可能性もあります。
なので、やはり品質はとても大切ですし、トラブルや障害に敏感な組織でありたいなと。失敗一つひとつをちゃんとみんなで振り返りながら、品質や安全、危機管理をしっかりと意識した組織にしていきたいと思っています。
──高橋さん、中山さん、本日はありがとうございました!
※Findy Teamsのサービス詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction