見出し画像

「セールスイネーブルメント」を支えるSALESCOREのモダンアーキテクチャの裏側

SALESCOREは「洗練された営業理論と最新のテクノロジーで10年後の営業組織の当たり前を作る」を提唱していて、セールスイネーブルメントによってクライアント企業の営業組織課題を解決しています。そんな「セールスイネーブルメント」を実現させるためのプロダクトが「SALESCORE VISUALIZE」と「SALESCORE SYNC」です。本インタビューではこれらプロダクトの開発を手掛けるエンジニアに、SALESCOREにおける開発業務の魅力を聞きました。


プロフィール

海老原 大河  (SaaS事業部 Dev組織)

<経歴>
銀行SEとしてDX推進プロジェクトを統括。その後フリーランスWebエンジニアとして、官公庁・観光・物流・Web3などの分野でフルスタックにWebアプリを開発。
2024年にSALESCOREに入社。

SALESCOREで出会った「困難だけどやりがいのある仕事」


ー これまでのキャリアと、SALESCORE入社のきっかけについて教えてください。

学生時代からソフトウェア開発に携わり、フリーランスとして様々なドメインでWebアプリの開発に取り組んできました。2022年にはソフトウェア開発会社を起業し、受託開発や自社サービス開発を行ってきました。その後、会社は精算しましたが、フリーランスとして業務委託開発を続ける中、縁があって2024年1月からSALESCOREのプロダクト開発に関わることになりました。

当初は業務委託として携わっていましたが、8月から正式に社員として入社することになりました。

ー フリーランスとして様々な案件を選べる中、SALESCOREのどんな点に魅力を感じて入社したのですか?

SALESCOREが掲げる「セールスイネーブルメント」は、営業目標の達成に再現性をもたらすソリューションで、そのためにはデータの収集と分析が重要になります。SALESCOREはさまざまなSFA(営業支援システム)と連携して、集約したデータから売れる仕組みを解明し、成果につなげるプロダクトがあります。それが、営業活動を可視化する「SALESCORE VISUALIZE」と、営業支援システムへの入力を支援する「SALESCORE SYNC」です。

業務委託で関わっていた8ヶ月間は、週3日ペースでプロダクト開発に携わっていましたが、その業務の中でSALESCOREが向き合っている「セールスイネーブルメント」というドメインが持つ複雑性やそれを実現するプロダクト開発の難しさを知り、次第に強く興味を抱くようになっていきました。

代表取締役の中内が描くビジョンは、1000年先まで続く「人の成長に向き合う」企業を作るという未来でした。それを実現するための第一歩として、SALESCOREがリードカンパニーになり、あらゆる業種・事業ドメインに「セールスイネーブルメント」を浸透させるという目標があるわけですが、そのためにこれから展開しようとしている様々なプロダクトの構想を聞いた時、その技術的なハードルの高さに打ちのめされるとともに、逆にモチベーションが湧いてきたのを覚えています。

というのも、私のキャリアは、金融系業務システムのDX刷新から始まりました。そこで直面したのは、技術的な課題だけでなく、ステークホルダーとの調整や複雑な仕様の策定、各種ソフトウェア資産の置き換えなど、最適解を探すのに苦労する課題の連続でした。非常に困難なプロジェクトでしたが、同時に困難に立ち向かっていく喜びや充実感もありました。

この原体験が、困難で一見実現不可能に思えるプロジェクトや、現時点でベストソリューションが見えていない課題に対して取り組みたい、という私のエンジニアとしての基本動機を作ったと思っています。

そんな中、縁があって業務委託としてSALESCOREのプロダクトに触れた時、あの時の体験を思い出し、心がワクワクしました。当社CTOの成澤が設計・実装したプロダクトは、セールスイネーブルメントの思想を1つ1つソフトウェアとして形にし、ビジュアライズされたダッシュボードとしてクライアントに提供していました。また、膨大なソースコードを読み込んでいくと、セールス事業やコンサル事業の担当者、クライアント企業の担当者からの様々なニーズやリクエストを実現してきた痕跡が至る所に見えました。

エンジニアとしてアーキテクチャやソースコードを見ているだけでも、「SALESCOREは、この会社にしかできないことにチャレンジしている」と感じ、週3日の業務委託ではなくSALESCOREの仕事にフルコミットしたいと思うようになり、8月から正社員としてジョインしました。

ー 技術的なハードルの高さとありましたが、SALESCOREのプロダクトのアーキテクチャやシステム構成についても教えて下さい。

営業活動を可視化する「SALESCORE VISUALIZE」と、営業支援システムへの入力を支援する「SALESCORE SYNC」のデータ基盤を実現するために、まずELT基盤(Extract, Load, Transform)を構築し、SalesforceなどのSFA(営業支援システム)やCRM(顧客管理システム)からクライアントのデータを取得しています。取得したデータは、SALESCORE独自のデータ分析基盤で共通化・分析され、「SALESCORE VISUALIZE」を通じてビジュアライズされたレポートが、クライアント企業に提供されます。

多くのSaaSサービスは、ELT基盤やビジュアライゼーション機能を単体で提供していますが、SALESCOREはそれらを組み合わせ、企業の課題を解決する「セールスイネーブルメント」という包括的なソリューションとして提供している点が特徴です。

クライアントから取得するデータは非常に膨大で、大企業からスタートアップまで幅広い業種のクライアントに対応しています。このため、データ分析基盤の規模拡大やデータ分析のためのバックエンド開発、ダッシュボード描画のためのデータベースの最適化とビュー生成の高速化、CI / CDなどのDevOps環境の改善といった技術的な課題が多くあります。

SALESCOREのプロダクト開発の技術的背景


ー SALESCOREのプロダクト開発において、開発環境にはどんな特徴がありますか?

メインの開発言語にTypeScriptを採用していて、フロントエンドフレームワークにはNext.jsを使用しています。

バックエンドでは、APIクエリ言語としてGraphQLを採用し、Nexusを活用してスキーマ連携を行っています。さらに、データベースのORMにはTypeScriptとの相性が良いPrismaを利用していて、全体のリポジトリはTypeScriptで統一されたモノリシックな構成となっています。開発環境は一貫してシンプルさを大切にしていて、コーディングからテスト、デプロイまでの開発プロセスがシームレスなのが特徴です。

プラットフォームは主にAWSを使用しています。データ分析をする機能に関しては、BigQueryを導入する関係でGCPを利用しています。

このようなアーキテクチャの背景には、当社CTOの成澤が技術課題に対して積極的に技術投資を行っている点があり、スタートアップならではのダイナミズムを強く感じます。

開発チームには、非常に優秀なメンバーが揃っていて、CTOをはじめとしてエース級のエンジニアたちと共に働ける環境は、非常に貴重な経験です。

こうした技術組織での開発体験は、自分のキャリア形成やスキルアップを考える上でも大きな意義があると感じています。

ー 大量のデータを扱うエンジニアの視点から見て、「セールスイネーブルメント」やSALESCOREのプロダクトにどんな可能性を感じますか?

SALESCOREが掲げる「セールスイネーブルメント」では、セールスの成功確率を高めるために、まず適切なKGI(Key Goal Indicator)を設定し、その目標に向かうための具体的なマイルストーンであるKPI(Key Performance Indicator)を定めることが重要です。この目標設定のプロセスは、企業の経営方針や営業組織によって異なるため、適切な指標を見つけること自体が難しい課題となります。また、KPIを設定するだけではなく、それを日常的に意識し、チームメンバーがその指標に基づいて行動する習慣を築くことも欠かせません。

たとえば、ある企業では、朝会や夕会で目標の共有やKPIの達成状況を確認することで、営業成績の優劣を明確にすることがあります。しかし、「営業成績が良い人=ハイパフォーマー」で終わらせてしまうと、営業パフォーマンスが属人化し、組織全体で再現性を持つことができません。重要なのは、日々の営業活動でどのようなアクションが優れた成果を上げているかを客観的に評価し、その行動や成果をデータで分析・可視化して、営業組織に定着させることです。これこそが「セールスイネーブルメント」の目指す方向性です。

SALESCORE VISUALIZE」を活用すれば、ハイパフォーマーと他のメンバーとの違いをデータから見極めることが可能です。たとえば、ハイパフォーマーの営業活動をビジュアライズすると、アポイントメント数が通常の2倍以上であったり、商談時の話題が適切で、次回の提案までのスピードが迅速であるなど、具体的な行動が高い成果を生んでいることが明らかになります。また、営業活動の記録は通常手間がかかりますが、「SALESCORE SYNC」を使えば、入力作業をストレスなくシームレスに行うことができます。

エンジニアリングの分野でも、DevOpsやSREの一環として「ソフトウェアデリバリーの速度」や「信頼性」、「拡張性の高い持続可能な開発」といった指針をもとに、開発生産性の可視化とクオリティを向上させる文化があります。そのため、SALESCOREが提唱する「セールスイネーブルメント」の思想には、エンジニアとしても共感できる要素が多く含まれています。

急成長するSALESCOREだからこそ、エンジニアの課題解決力が求められる


ー SALESCOREはたくさんのクライアント企業を顧客に、事業規模も急拡大中です。そんなSALESCOREならではの技術的な課題や、課題解決への展望を教えて下さい。

弊社では、クライアント企業ごとに2つのデータベースの概念を用いて運用しています。1つは共通データベースで、これはアプリケーション全体で共有されるデータ分析基盤の役割を果たしています。もう1つは、テナントごとに独立したデータベースです。この仕組みにより、各クライアントは独自のデータベースを持ち、それぞれのSFAツールを通じてアクセスできるようになっています。

「SALESCORE VISUALIZE」や「SALESCORE SYNC」からのリクエストをトリガーに、各種SFAツールのAPIを経由してクライアントのセールスデータを取得し、SALESCOREのELT基盤に格納します。その後、トランスフォーム処理を通じてデータを正規化し、データ分析用データベースに保持します。

また、双方向のデータ同期も実施していて、まず自社データベースのデータを更新し、その後APIを通じてセールスフォースなどのSFAにもデータを反映させています。これにより、クライアント企業で導入しているSFAとSALESCOREのデータベース間で営業データが常に同期され、シームレスなデータ連携が可能となっています。

一方で、クライアント企業の増加や日々蓄積される営業活動データの増加に対し、技術的にどのように対応するかが課題となります。特に大企業のクライアントでは、営業活動に伴うデータ量が膨大なため、データ構成の最適化や処理パフォーマンスの向上については、開発組織内で活発に議論が行われています。

これらの技術的な課題を放置すると、例えば「SALESCORE VISUALIZE」のダッシュボード画面での描画遅延や、始業時など営業活動が活発になる時間帯におけるシステム負荷によるレスポンス遅延など、サービス全体のパフォーマンスに支障をきたす可能性があります。

こうした潜在的な課題に対応するため、クラウドのスケールアップ/スケールアウト、インデックスの最適化、SQLクエリのチューニングなどのテクニカルな対策に加え、テーブルのパーティショニングやインデックススケジュールの設定といったデータベース管理における運用改善も進めています。また中長期的には、RDBMSからビッグデータに特化したBigQueryなどクラウドデータベースへの移行など、アーキテクチャの刷新も視野に入れています。

これらの対策を通じて、技術的に難易度の高い課題への対応だけでなく、アーキテクチャやシステム構成の刷新に挑戦できることも、SALESCOREの技術組織ならではの経験といえます。

ー 今後、エンジニアとしてどんな成長をしていきたいですか?

SALESCOREの開発組織はまだ少数ですが、事業が急拡大しているため、これから開発組織も大きく拡大していくフェーズにあると思います。特に、国内で「セールスイネーブルメント」という概念はまだ新しく、これから日本の生産性を向上させるための重要な要素になると考えています。その基盤を支える「SALESCORE VISUALIZE」や「SALESCORE SYNC」などのプロダクトには、社会的にも大きな価値があると感じています。

SALESCOREでは、職種の垣根がなく、営業、コンサル、エンジニアがミスコミュニケーションなくフラットに会話をしています。プロダクトのために何ができるか、クライアントにとってどのようなダッシュボードが最適か、業績アップのために技術で解決できることは何かなど、職種を問わず議論しています。こういった環境で働いている事により、ビジネス的な視野が広がり、エンジニアとして大きく成長できたと実感します。

これまでフリーランスとして、エンジニア個人の技術力やスキル向上を大事にしてきましたが、SALESCOREでの開発経験を通じて、今後は開発組織の構築やエンジニアリングマネジメントにも興味をもてるようになりました。

ー SALESCOREではエンジニアを採用中です。どんなエンジニアの方と一緒に働きたいですか?

必須スキルとして、何かしらの事業ドメインにおける開発経験が求められますが、それ以上に重視しているのは、開発環境の構築やドキュメントの読解、システム仕様やクライアントニーズの把握、メンテナンス性を考慮したコーディングやテストを含む機能実装、そしてDevOps環境でのビルドなど、一般的なソフトウェア開発に関する経験です。

マインド面では、一見すると困難で実現不可能に思えるビジネス要件や、現時点で解決の方向性が見えてこない技術的課題に対して、高いモチベーションを持ち、「どうすればチームで解決できるのか?」を考え、議論し、最適解を見つけていく熱い想いを持ったエンジニアを歓迎したいです。

現在、SALESCOREは事業が急拡大し、組織も人も広がっています。その急成長の中で直面する困難な課題も多くありますが、それらを解決することで、強烈な達成感や成長体験を積めるのは、まさに今のフェーズだからこそです。

「困難をチームで乗り越えたい」と思っているエンジニアの方と一緒に働けたらと考えています。ぜひカジュアル面談などでお話しできればと思います。

SALESCOREでは積極採用中です!
ご興味あればお気軽にご連絡ください!

採用サイトはこちら


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?