コミュニティオ採用広報です!
コミュニティオでは、企業の組織パフォーマンスの向上を支援する組織強化SaaSである「チームスイート」の開発・運営をおこなっております。
感謝称賛を通して従業員エンゲージメントの向上とチームビルディングを行う次世代型サンクスカードツールである「チームステッカー」や、タスクのログを記録することで業務の見える化・レポート作成などマネジメント支援・時間管理ツール「タイムス」などの機能を持つ統合型サービスです。
特に「チームステッカー」は、グローバルな展開をするメーカー企業やプラント開発会社、金融SIなど日本を支えてきた大手企業への導入が相次いでいます。
あまり事例の少ないB2B SaaSの導入の裏側をリードエンジニアの嶋田大輔さんにお聞きしたいと思います!
ーーシマダイさんこんにちわ!
こんにちわw
コミュニティオの創業メンバーでリードエンジニアをしている嶋田大輔(シマダイ)です。
フロントからサーバサイドまで幅広い守備範囲をみています。
趣味は、自転車でしたが最近乗れてなくて置物になっています。
ーーさて、チームスイートは大企業への導入が多いと聞きましたがどんな事例が多いのですか?
はい、チームスイートは「チームステッカー」や「タイムス」といった複数の機能をもつツール群からなる組織を強くする機能に特化したB2B SaaSです。
Webの他、ビジネスチャットに対応しているのですが、最近では、Microsoft Teamsと連携して「チームステッカー」を利用する大手企業が増えてきております。
最近だと、10万人をこえるような企業での全社導入の話もきているんですよ。
ーー10万人!すごいですね。そんな規模で導入する時ってどんな導入手順になるのですか?
コミュニティオではこれまで多くても数千名といった企業への導入はあったのですが、10万人を超えるような企業になると不安な面もありますよね。
そういった場合は導入にあたり、負荷検証を行ったり机上での検証をしたりするのですが、いくつかのフェーズに分けたPoCという形での導入検証を実施することが多いです。
その一つ一つを乗り越えて全社展開へと進むわけですが、それぞれの段階において様々な技術的課題がありました。
ーーなるほど、すぐに導入ではなく段階的に導入試験を行っていくのですね。具体的にどんな風に進むのですか?
そうですね。Microsoft Teamsでの利用を想定していたとあるお客様の例ですと、まず最初のフェーズ1のPoCとしては、2ヶ月程度10数名による検証環境での「機能検証」が実施されました。
こちらは特に問題という問題はなく、検証環境でもあるので無事に完了し、フェーズ2に進みました。
次のフェーズ2のPoCとしては、本番環境において2,500名程度による「価値検証」を実施しました。
この検証においては、Microsoft Teamsとの連携を行い、従来の導入企業で多い、CSVによるユーザー管理でPoCを実施しました。
この規模のPoCになりますと、企業独自のセキュリティに起因する問題や、TeamsのアップデートによるTeams側に起因するエンバグによって正常に動作しないというような問題が複数発生し、その都度即座に対応をしていました。
特に他社アプリでセキュリティに起因する問題により導入が見送られるケースが多いという話を伺っていたので心配をしていましたが、実際に動作させてみて正しく動作していたので安心したことを覚えています。
ーーやっぱり大手企業はセキュリティが厳しいんですね。
ええ、やはり大手の企業となるとセキュリティは厳しいですし、それなりに大変な側面もありますが、きちんと基準を満たした上で安心してサービスを利用していただきたいと思いますので、いつも緊張します。
また、さらに大きな規模での全社展開を見据えると、手動によるユーザー管理は非現実的であるということからSCIMによってADから自動でユーザーのプロビジョニングをしたいという要件もあり、次の段階のPoCに進むためには、1ヶ月程度での実装が必須となっていました。
1ヶ月で実装を完了し、SCIMによる少人数のプロビジョニングを実施して問題ないということで無事スケジュールに間に合わせることができ、フェーズ3に進むための条件クリアとなりました。
ーー結構タイトなスケジュールなんですね。
はい、お客様もいろんな部門との調整もあるので、お客様と一緒になってスケジュールに間に合わせています。
次に2,500人をSCIMにてプロビジョニングする検証を実施したのですが、この時はこのタイミングで初めて負荷によるトラブルに見舞われました。
アプリの作りとしてMicrosoft Teams上のユーザーとチームステッカーのユーザーを紐付ける処理があるのですが、この部分において若干重めな更新を同期的に処理する箇所があり、ここで処理の詰まりが発生して遅延が伝播していき全体としてタイムアウトするということが発生しました。
調査の結果このトラブルの根本的な要因として、「同期的に実施する必要のない処理を同期的に実行していること」「参照系と更新系を混在させてしまっていたこと」
がわかったので、改めてインフラやアプリの構成を見直しました。
ーーPoCの中でインフラやアプリの見直しも適宜いれていくんですね!
はい、大規模なお客様の環境ではいつも先回りしつつ、全体の最適化を図るようにしています。
このときも、対応としてはキューイングサービスを導入して処理を非同期にし、CQRSを意識して参照系と更新系をしっかり分け、 大量のクエリが来ても平気なようにキャッシュ機構を入れ、更新系は非同期タスクで一定コマンドをバッチ処理する、というような改善を行い安定して高速に動作するようになりました。
そして、最終のフェーズ4として25,000人のプロビジョニングおよび先方社内に対する大規模な展開が行われました。
フェーズ3でしっかりと対策を行ったのと、入念な負荷試験を実施したことにより25,000人のプロビジョニングに関してはまったく問題なく、正常にプロビジョニングが完了しました。これにはチーム一同胸をなでおろしました。
ーーよかった!無事社内展開がおわったんですね!
いえいえ、社内展開がおわったからといってすぐにおわりではなく、実際に数万人規模でに利用されるようになると、新たにいくつか問題が発生し、対処しながら運用することが多いです。
大きいものだと、サンクスカードの送り先ユーザーの検索が遅い(あるいは検索できない)という問題が発生しました。
これはMicrosoft側のAPIの応答速度に起因する問題ということが判明し、極力APIの呼び出し回数を減らしオフロードする仕組みに変えるという対応を即日しています。
他にもユーザー数の規模に対して適切ではないデータ構造をしており、データ量が多くなり過ぎて保存できない、なんていうこともありました。
こういった根本的な問題も、多くの不具合も基本的には即日対応か、数日以内の対応で完了していました。
また、他社のプラットフォームを利用すると良くあるのですが、例えば連携アプリだとMicrosoft Teamsに起因する問題も多くあり、「PCだと動くがモバイルだと動かない」「チームだと動くがチャットだと動かない」
「チャット・ミーティングの場合のみ引用返信が動かない」など様々なケースがありとMicrosoft Teamsも日々アップデートされていく中で常に最新の動向をキャッチアップしながら対応を楽しんでいます。
ーーB2Bのサービス提供は面白いですね。
はい、お客様の認証基盤やパートナーの最新のプラットフォーム連携の対応をしながら、技術を駆使してお客様のニーズに答えていくのは、エンジニアとしての醍醐味といえるかもしれません。
全社導入のあとは、全グループ導入などの話も多く、楽しいながらも気を抜けない日々ではありますw
ーーPoC成功の秘訣みたいなものはあるんですか?
PoCを進めるにあたって、大規模ならではの課題もそうではない課題も多々発生していましたが、
振り返ってみると全てにおいて即日~数日以内の対応速度で取り組んできたというスピード感が
「一緒にプロダクトを作っている」感として先方企業様ご担当者の信頼を得られたのではないかな、と思います。
また、新しい要件がでてきた場合、フェーズが区切られている中でそのフェーズ内で作りきらないと次に進めないという制約があり、時間へのコミットを求められるシーンもありましたが、チームとしてきちんと対応しきったのが良かったと思っています。
ーースピード感とチームとしての対応が大事なんですね。今後はどのようにしていきたいですか?
チームステッカーはB2B SaaSですが、お客様の社内だけのサービスにとどまらず、最高のセキュリティを維持しながら社内外の垣根を超えて全世界誰とでもコミュニケーションがとれるようなB2Cの規模感に耐えうるシステムにしていきたいと思っています。
また、人間の認知や学習プロセスといった人の内面についても更に追求し、システムとして以下にロジカルにサイエンスとして人間の内面をサポートできるか、という挑戦をしていきたいです。
また、そんな世界へのチャレンジを一緒にやってくれる最高の仲間も増やしていきたいと思います!
ーーシマダイさん、ありがとうございました!
コミュニティオではエンジニアを積極採用中です!
是非とも応募ください!