ACES エンジニアブログ

ACESのエンジニアブログです。

ACES Meet開発におけるテックリードのミッションについて

はじめに

こんにちは、株式会社ACES でテックリードをしている福澤 (@fuku_tech) です。

テックリードという役割は、一言で説明するのが難しいポジションだとよく感じます。企業やチームによってその役割やミッションは大きく異なり、「ACES Meet開発では、テックリードは具体的にどんなことをしているの?」といった質問をカジュアル面談などでいただく機会も多くあります。

そこで本記事では、ACES Meetの開発チームにおけるテックリードとしての役割や、日々取り組んでいる課題、戦略、具体的なアクションについてお伝えします。テックリードというポジションに興味がある方や、ACES Meetの開発に関心をお持ちの方にとって、この記事が少しでも参考になり、興味を深めるきっかけになれば嬉しいです。

ACES Meetの状況と課題

ACES Meetは、まだ完全にPMF(プロダクトマーケットフィット)を達成していない段階にあります。このフェーズでは、開発チームとして以下の課題を克服していく必要があります。

  • 市場の不確実性: 顧客の課題やニーズがまだ明確に定まっておらず、仮説の精度を上げるために多くの試行錯誤が求められます。その過程で、どの仮説を優先的に検証すべきかを判断する難しさが課題となっています。
  • フィードバックの速度と質の確保: 仮説検証と市場対応を迅速に進めるためには、プロダクトの改善や新機能をスピーディにリリースできる体制が必要です。そのため、開発プロセスを効率化し、フィードバックサイクルを高速化することが重要です。また、得られたフィードバックを最大限効率的にプロダクトへ反映させるためのチーム内の連携強化も欠かせません。

こうした課題に対応するため、ACES Meetでは、DevOps Research and Assessment (DORA) の調査結果を参考に戦略を検討しました。特に、フィードバックサイクルの高速化を実現するためにどの指標に注力すべきかを考える中で、「変更のリードタイム」と「デプロイ頻度」の改善が現状では最も重要だと判断しました。

DORA Core Modelに基づいたACES Meetの技術戦略

DORA Core Modelは、ソフトウェア開発における組織の成功を成果(Outcomes)に結び付けるための構造を示しています。このモデルでは、以下の3つの要素が連携して成果を導きます。

  1. 基盤能力(Capabilities): 開発組織が持つスキルやプロセス、技術的な基盤。
  2. パフォーマンス指標(Performance): ソフトウェアデリバリーや信頼性を評価するための指標(4keysなど)。
  3. 成果(Outcomes): 商業的な成功やチームの満足度など、組織が目指す最終的な結果。

DORA Core model v2.0.0

(引用元: https://dora.dev/research/?view=detail)

ACES Meetでは、このモデルを参考にしながら、「変更のリードタイム」と「デプロイ頻度」の向上に注力することが、仮説検証のスピードを上げ、プロダクトの成長を支える重要な手段だと考えています。この2つの指標は、上記のモデルが示す商業的成功において重要な役割を果たすと捉えています。

そして、「変更のリードタイム」と「デプロイ頻度」を本質的に改善するために、直近1年は以下のCapabilitiesを優先的に強化する方針を採用しています。

  • コード保守性(Code Maintainability): 安定したコードベースを維持し、将来的な変更や拡張が容易な状態を保つことで、フィードバックサイクルの持続性を確保。
  • 継続的デリバリー(Continuous Delivery): 自動化されたデプロイメントパイプラインを活用し、安全で迅速なリリースを実現。
  • 小さな単位での作業(Working in Small Batches): 作業を細分化し、迅速なフィードバックを得られるようにすることで、仮説検証のサイクルを短縮。

なお、デプロイメント自動化(Deployment automation)、継続的インテグレーション(Continuous integration)、テスト自動化(Test automation)といった項目も、「変更のリードタイム」と「デプロイ頻度」の向上に重要な役割を果たしますが、これらは過去の取り組みによって一定の改善がなされ、現在ではCIが5分以内に完了する仕組みが整備されるなど、フィードバックサイクルの高速化を支える基盤となっています。この成果を土台に、現時点では新たな注力領域にリソースを集中させています。

ACES Meet開発におけるテックリードのミッション

ACES Meet開発におけるテックリードとしての役割は、ACES MeetがPMFを達成し、継続的に価値を提供できる組織となるために、まさに上記で記載したような技術戦略を立案し、それを実行しきる責任を担うことです。*1

これまでの章で述べたように、ACES Meetが現状直面している課題を克服し、仮説検証のスピードを上げるためには、以下の2つの軸で改善施策を進める必要があります。

  1. 開発文化と仕組みの変革
  2. 成果に繋がる技術的基盤の強化

具体的な取り組み

ここまでの章で述べた通り、ACES MeetがPMFを達成し、商業的成功を目指すためには、技術戦略を具体的な行動に落とし込む必要があります。その一環として、チーム全体で議論を重ね、技術ロードマップを策定しました。このロードマップでは、以下の2つの軸に沿って取り組みを進めています。

開発文化と仕組みの変革

開発チーム全体が仮説検証のスピードを上げ、プロダクトの成長を支える組織として機能するためには、技術的な基盤だけでなく、開発文化や仕組みを進化させることも重要です。これを実現するため、以下の取り組みを進めています。

小さな単位での作業(Working in Small Batches)の徹底

タスクを細分化し、小さな粒度でPull Request (PR) を作成することで、早期のレビューやフィードバックを可能にしています。この取り組みにより、変更のリードタイムが短縮され、迅速な価値提供が実現しています。

さらに、PRが小さいことで障害発生率が低下し、リリースの安定性が向上しました。障害対応の時間も短縮され、開発チーム全体の生産性向上に繋がっています。

詳細については、以下の記事もご覧ください。

tech.acesinc.co.jp

レビュー最優先の文化醸成

レビューのスピードを重視し、2〜3営業時間以内に1次返信を行うことをチームのルールとして徹底しています。これにより、PRの滞留を防ぎ、変更のリードタイムをさらに短縮しています。このルールを守ることで、チーム全体のコミュニケーションがスムーズになり、開発フローの効率が向上しています。

積極的なペアプロ・モブプロの活用

ペアプログラミングペアプロ)やモブプログラミング(モブプロ)を積極的に取り入れ、次のような効果を得ています。

  • 知識共有の促進: チームメンバー間での知識伝達をスムーズにし、属人化を防ぐ。
  • オンボーディングの強化: 新規メンバーが早期にプロジェクトに慣れることをサポート。
  • 設計の合意形成: 懸念事項を洗い出しやすくし、合意形成を迅速化。
  • レビューのスムーズ化: 事前に設計や実装方針が共有されていることで、PRレビューの時間が短縮。

一方、ペアプロ・モブプロのやり方については、まだこれだという形が固まっておらず、書籍や外部の記事を参考に、現在進行形でより良いプラクティスを取り入れるべく試行錯誤している段階です。

AIをフル活用した開発

ACESでは、開発プロセスの各段階でAIをフル活用する文化を推奨しています。GitHub CopilotChatGPT Teamを導入し、チーム全体の生産性を向上させています。

これらのツールを、ユーザーストーリー作成、要件定義、設計、実装、レビュー、テストといった全ての工程で、思考の整理や開発効率化のために活用しています。ただし、現在はまだ試行錯誤の段階であり、テックリードを中心に改善を重ねようとしているところです。今後、知見が蓄積され次第、整理して記事として発信できればと考えています。

成果に繋がる技術的基盤の強化

仮説検証を高速で繰り返し、プロダクトを迅速に成長させるためには、堅牢で柔軟な技術基盤が欠かせません。この技術基盤の強化において、ACES Meetでは以下の2つの柱に注力しています。

コード保守性(Code Maintainability)の向上

コードベースの保守性を高めることは、開発者が効率よく作業し、仮説検証を迅速に繰り返すための重要な取り組みです。これを実現するため、以下の改善に注力しています。

  • 技術負債の解消:
    • 新旧の記述が混在し、可読性が低下している箇所を統一的なスタイルへ移行。
    • 複雑度が高く、開発者がコードリーディングや機能拡張時に余計な時間を費やしてしまう箇所を重点的に改善。
  • コーディングルールの明確化とアップデート:
    • 設計や実装時に迷いが生じやすい箇所について、コーディングルールを明確化し、ガイドラインをアップデート。
  • デザインシステム準拠の汎用UI整備:

継続的デリバリー(Continuous Delivery)の推進

継続的デリバリーの実現は、「変更のリードタイム」と「デプロイ頻度」を向上させるための重要な鍵です。現在の週次デプロイから、より頻繁な日次デプロイを実現することを目指し、以下の取り組みを進めています。

  • デプロイ時の安全性の担保:
  • Feature Flagの導入:
    • フィーチャーフラグシステムとしてDevCycleを導入することで、リリースとデプロイの分離を可能とし、段階的なリリースやA/Bテストを容易にする。(中長期的には、トランクベース開発への移行を視野に入れています。)
  • リグレッションテストの自動化:
    • 現在手動で行われているリリース前のリグレッションテストの自動化を進めることで、リリースプロセスを効率化し、信頼性を向上させる。

これらの取り組みを通じて、ACES Meetは現状、「変更のリードタイム」と「デプロイ頻度」の改善に注力し、仮説検証のスピードを高めることを目指しています。この戦略を基盤に、PMF達成とプロダクトの成長に向けて着実な前進を続けています。

なお、本章で挙げた具体例は、ACES Meet開発における取り組みの一部に過ぎません。特に効果が伝わりやすいものを選んで記載していますが、これら以外にも多くの施策を並行して進めています。

また、フィードバックサイクルの高速化に関連する詳細な取り組みについては、以下の記事でも紹介していますので、併せてご覧ください。

tech.acesinc.co.jp

おわりに

ACES Meetの開発チームは、顧客の課題を解決し、価値を提供するために挑戦を続けています。その中で、テックリードとして私が特に意識しているのは、日々の業務をこなすだけに留まらず、チームの文化や技術的基盤を進化させ、フィードバックサイクルを高速化し、得られるフィードバックを最大限に活用する体制を築くことです。

この記事でご紹介した内容は、テックリードとしての業務の一部ではありますが、本記事を通じてその一端をお伝えできていれば幸いです。

本記事を通じて、ACESに少しでも興味をお持ちいただけましたら、ぜひカジュアル面談でお話ししましょう!

ACESの採用情報はこちら↓ youtrust.jp

*1:これは現時点でのミッションであり、事業やプロダクトの状況に応じて見直しが必要になる場合があります。

5年間ソフトウェアエンジニアをやっていた僕がCREを始めた理由

あいさつ


はじめまして、ACESでソフトウェアエンジニアをしている村上 (@d_murakami_0816) です。

2024年8月からCREとしての活動も開始しました。本記事では僕がなぜCREになったかについて書いていこうと思います。

CREに興味はあるけどどんな感じなのかわからないという方の参考になれば幸いです!

CREとは


Customer Reliability Engineering の略です。2016年にGoogleによって発表されました

(参考: https://cloudplatform-jp.googleblog.com/2016/09/Google-Cloud-Platform-sets-a-course-for-new-horizons.html )

顧客との信頼関係の構築をミッションとする職種となっています。

CSE (Customer Success Engineer) と近い部分がある (この後紹介する業務内容にもどちらかというとCSEに近いものがある) のですが、本記事では以降全てCREに呼称を統一して記載します。

僕はどんなエンジニアだったか


僕は前職を含めて5年半ソフトウェアエンジニアとして働いてきました。

前職

Rails, Reactを使ったWebサービス開発

  • そこそこの規模の新機能を1から実装
    • サーバー・フロントの両方に関わる
    • 2-3ヶ月のスケジュールを引いてスケジュールに沿って進行
  • 問い合わせのあった不具合の調査・対応

現職 (ACES)

Django, Reactを使ったWebサービス開発

  • ACES Meetを初期段階から実装
    • サーバー・フロントの両方に関わる
    • インフラは既存実装を参考にterraformをちょっといじる程度
    • 初期は開発予定の機能について、仕様策定・スケジュール管理まで行っていた
  • 問い合わせのあった不具合の調査・対応

前職・現職のどちらでもサーバー・フロント (一部インフラ) の実装には関わっていました。

前職で関わっていたサービスは僕が入った時点でリリースから2年ほど経過していましたが、現職ではリリース前の段階から開発に関わっていたので、前職よりも初期の仕様や実装を把握できていたと思います。

また、CREになる前から問い合わせ調査などは一定受け持っていました。

なぜCREになったか


上に書いた通り僕は前職を含めて5年半ソフトウェアエンジニアとして働き、仕様策定から運用まで幅広く関わってきたのですが、以下の理由から将来のキャリアについて悩んでいました。

  • 技術そのものに対してあまり興味を持てず頭打ちを感じていた
  • 機能を作るより、その機能がユーザーや社内の人にどう役立つかに興味があった

このような話をEMと1on1で話していたところ、CREというものがあるよという話を聞きました。

調べてみたところCREの業務は通常のエンジニアと比べて特にユーザーの活動に寄り添う部分が強く、そこが自分に合っていると思い興味を持つようになりました。

それからしばらくCREのような活動をやりつつ開発を続けていたのですが、今年の7月以降社内で開発の体制変更があり、そのタイミングで正式にCREとして活動していくことになりました。

CREはどんなことをするか


CREという職種が具体的にどのような仕事をしているのか、まだあまり知られていないと思います。そこで、他社のCREがどのような役割を担っているのかを紹介し、それを踏まえて自社ではどんな取り組みをしているのかを紹介しようと思います。

他社のCREはどのような役割を持っているか

2016年のGoogleの発表ではCREの役割について以下のように記載しています。

CRE は、私たちとお客様のパートナーシップを深めることを目的としており、Google のエンジニアが担当します。担当エンジニアはお客様の運用チームと連携し、基幹クラウド アプリケーションの信頼性に関する責任を共有します。

また、国内で早期にCREの組織を立ち上げたMackerelはテックブログの中で以下のように記載しています。 (参考: https://developer.hatenastaff.com/entry/2020/10/30/093000 )

エンジニアがユーザーの動向をくまなく観察し、実際にコミュニケーションすることで、ユーザーの目的を正しく把握し、目的にあった正しい使い方をユーザーに促し、ときにはプロダクトオーナーや開発者としてプロダクト自体の改善も行う。 そしてまた改善されたプロダクトをユーザーに届け、新たなフィードバックを得る。 このサイクルを素早く継続的に回していくことで、ユーザーとプロダクトが健全に関わり合いながら、ユーザーに価値を提供し続けていくことができます。 組織の中のこういった活動に輪郭を持たせ、文化として根付かせ、より加速させることが、CREを職種やチームとして立ち上げる意義なのではないかと考えています。

自社でのCREはどのような役割を持つか

僕は上に挙げた2社の考えを参考にしつつ、自社の状況を踏まえてCREとして以下をやっていこうと考えています。

  1. 顧客の現状を把握できるようにする

    顧客は何に困っていてサービスを利用しようとしているのか、サービスを使って実現できているのか、実現できていないとしたらどこに原因があるのかを実際の利用データを分析し、誰でも見れる状態に整形します。

  2. 顧客の問題を取り除き、やりたいことを実現できるようにする

    1で顧客の状況を把握できたらその問題点を解消します。解消するために必要なことは機能開発にとどまらず、既存機能の動線修正やオペレーション変更の提言など幅広く行います。

  3. CS業務を効率化し、顧客に向き合える時間を増やす

    弊社ではCS組織は立ち上がったばかりであり、まだまだ効率化できてない業務がたくさんあります。エンジニア視点で自動化できるものは積極的に自動化を進め、CSの工数削減を目指します。

この4-5ヶ月はこの3つの内容についてまずは土台作りから進めていました。その中でもうまくいったこと、いかなかったこと、学びになったことなどいろいろあるのでそれについてはまた次の機会に紹介したいと思います!

どんな人がCREに向いているか


CREとしての活動を初めてすでに4-5ヶ月たちましたが、個人的にはCREをやってよかったなと思っています。

それはなぜだろうと今回の記事を書くにあたって考えていたのですが、以下のような理由があったのではないかなと考えています。

  1. サーバー・フロントを始め、いろんな領域に幅広く関わっていた

    CREは顧客にサービスを利用してもらうために様々な施策を考える必要があります。この時に特定の領域に絞らず幅広く関わってきたことが活きているなと感じています。

    また、サービスに関して問い合わせを受けることがありますが、このときも複数の領域にまたがって問題を考えることができるのでよかったなと思っています。

    複数の分野に知見があると、それらを掛け合わせることでより幅広く改善策を出すことができるのでより活躍の幅が広がるのかなと思いました。

  2. データに向き合って分析することが好きだったから

    僕は数字を見るのがとても好きで、大学時代には研究で数値分析をよく行っていました。その経験もあって、ユーザーの利用状況などを分析する作業も楽しく取り組めていると感じています。

    僕は元々出てきた数字に対して他の見方をした時にどうなるかを色々考えたくなるタイプだったので、そういった部分も分析をより深めるのに役立っている気がしています。

    ある種大学での研究に近い部分もあるので研究が好きだった方は向いているかもしれないです。

  3. 自分の関心が機能ではなく、ユーザー (やCS) を支えることに向いていたから

    CREになるとやはり自分で機能を開発する機会は減ります。コードを書く機会もそれに伴って減ったと思います。

    もともとコードを書くことが好きだったので、その点では少し寂しさを感じる部分もありました。しかし、その一方で、さまざまな改善対応を行う中で感謝される機会が増えたことはとても嬉しかったです。

    CREは、誰かの役に立てたと実感しやすい仕事だと思います。なので「誰かの役に立ちたい」という気持ちがある人には、とても向いている職種だと思います。

個人の感想なので人によっては違う感じ方をする方もいるかもしれませんが、もしこれを見て向いているかもと思った方はCREとしてのキャリアを考えてみてもいいと思います。

最後に


本記事では僕がソフトウェアエンジニアからCREになったきっかけなどを通じてどのような方がCREに向いているのかについて書いてみました。

CREはまだ人数が少なく未知の部分が多い職種ですが、少しでも興味を持った方は、ぜひ挑戦してみてください!

ACESは顧客のために一緒に頑張れる方を募集しています。少しでも興味を持っていただけた方は、ぜひカジュアル面談のお申し込みをお待ちしております!

ACESの採用情報はこちら↓ youtrust.jp

youtrust.jp

AI事業会社でソフトウェアエンジニアとして活躍できる面白さ

アイキャッチ画像 ACESでフロントエンド領域のテックリードをしている奥田です。2023年6月に入社し1年半が経ちました。開発チームのご紹介も兼ねて、入社時の考えやACESで開発することの魅力を振り返ってみたいと思います!

簡単な経歴

大学院を修了後、株式会社ビズリーチに新卒入社しました。HRMOS採用の開発チームに配属させていただき、フルスタックエンジニアとしてプロダクト開発を経験しました。その後は旅行系スタートアップの株式会社Hotspringに転職し、旅行予約サービス「こころから」を開発していました。

ACESに決めた理由

前職のスタートアップでtoCサービスの開発に従事し、特にフロントエンド領域で多くの経験をさせていただきました。転職活動中は大小様々な企業と面談しましたが、最終的にACES社を選んだ理由は以下の3点です。

  • アルゴリズムで、人の働き方に余白をつくる。」というミッションに共感
  • 創業以来、一貫してAIを中心とした事業を展開し続けている
  • フロントエンド領域で自身が貢献できる伸び代がある

アルゴリズムで、人の働き方に余白をつくる。」というミッションに共感

ACESはアルゴリズムを通じて、「働くと言う人生の大半を占める時間」をより良くすることを目指して事業に取り組んでいます。

私自身もChatGPTやGitHub CopilotといったAIプロダクトが、エンジニアリングという仕事をもっと面白くしてくれると感じていたため、「お客様の仕事の中にもそんな体験を作りたい」と共感しました。

創業以来、一貫してAIを中心とした事業を展開し続けている

2023年の初めにChatGPT-4が登場し、その精度の高さに驚いたことを今でも覚えています。これからはAIプロダクトが当たり前になると感じて、当時からAIアルゴリズムのプロフェッショナルが多数在籍するACESでの開発は魅力的でした。

フロントエンド領域で自身が貢献できる伸び代がある

当時の開発チームにはフロントエンドに軸足のある正社員がおらず、業務委託のエンジニア中心で開発していました。これまでの職場で経験したことを基に、さらに生産性の高い開発基盤を構築する余地があると感じました。

また、AI機能のインターフェースデザインも強く関心があったため、AIプロダクトを複数展開する点も魅力的でした。

余談ですが、「複雑な社会にアルゴリズムで1本の線を通す」と言う意味を込めた企業ロゴはとてもお気に入りです! ACESの企業ロゴ

ACESでソフトウェア開発する面白さ

ACESは「人とAIが協働するビジネスプロセスをつくる」ことを提供価値の根幹に据えています。その実現のために、エンジニアも高いプロダクト志向を持って開発に取り組むことが求められます。

AIプロダクトをソフトウェアエンジニアとして開発するにあたり、下記の両方が必要となります。

  • AIやLLMそのものの知識、AIエンジニアとの協働
  • お客様の業務ドメインへの深い理解

ただ単にAIを使った機能を提供するだけではシンプルなビジネスプロセスを実現することはできません。私たちは以下の順に考え提供すべき価値を設計しています。

  1. そもそも人間のエキスパートがどのような思考プロセスで業務を行っているのか?を深く理解する
  2. AIを活用する箇所を見極める
  3. AIエンジニアと協働し、エキスパートの思考をどうAIに踏襲させるかを設計する

AIにどの仕事をやらせるか?Should → Can(AI) → Will(人)フレームワーク

tech.acesinc.co.jp

また開発プロセスの中でもAIを使って当たり前、いかに使いこなすか?を常に考える文化です。私は現職で初めてチームリード、テックリードを担いましたが、これまでの経験にChatGPTをはじめとしたAIのサポートを組み合わせることで推進することができました。

AIの活用はコーディングだけに留まりません。ACESで提供するサービスを自社でも活用し、業務の効率化に取り組んでいます。 speakerdeck.com

ACES Meetの開発

私は入社以来、商談解析AIツールである ACES Meet の開発チームに所属しています。

ACES Meetは「商談・会議」という企業の重要なデータをお預かりし、活用を支援するサービスです。「営業活動に関わる全ての人と協働するAIパートナー」というプロダクトビジョンをかかげ、プロダクト開発に取り組んでいます。

ACES Meetのプロダクトビジョン

私たちは市場からのフィードバックを迅速に反映し、仮説検証を繰り返すことを重視しています。その土台として高い開発生産性を維持し続けるためには、設計プロセスが重要と考え実践と改善を重ねています。

私はこれまでの開発現場で、以下のような高い生産性を出すエンジニアに出会ってきました。

  • 実装がものすごく速い、手戻りも少ない
  • コードの品質が高くバグも出さない
  • プルリクエストがちょうど良い単位で出てきて、いつもレビューしやすい

彼らに共通するのは、本格的に開発する前の「設計」に手を抜かないということです。(この設計さえも速いので、あたかもいきなり実装しているように見えてしまいます笑)チーム全員で品質と速度を両立した開発を実践できるよう、開発チケットの大小に関わらず設計プロセスを経て実装する文化を作ってきました。

tech.acesinc.co.jp

tech.acesinc.co.jp

今後はこの設計プロセスをより速く完了できるよう、AIによる支援や自動化にも注力していきます!

ソフトウェアエンジニアとして

ここまでAIの会社という印象が強かったかもしれません。事実優秀なAIエンジニアが多数在籍し、AI基盤を支えてくれています。一方で、ACESはソフトウェアエンジニアとして非常に優秀なメンバーも集まっていると感じます。

ACESのソフトウェアエンジニアの特徴

  • フルスタックとしてカバーする領域が広く、実装力も高い
  • AIをはじめとした新しい技術、新しい開発スタイルへの感度が高い
  • 技術だけでなく「事業」へのコミットメントが高い

私自身もフロントエンド領域のスペシャリストとして意思決定をリードする一方で、フルサイクルエンジニアとして要求定義段階から運用・改善まですべての開発フェーズに関わり、ソフトウェアライフサイクルの最適化を目指しています。

最後に

本記事ではACESでソフトウェアエンジニアとして活躍する面白さや、ACES Meetの開発チームについてご紹介してきました!

入社当初を振り返ると、AIを活用したプロダクトを作りたい気持ちが強かったように思います。ですがプロダクトを進化させていく中で、ソフトウェアエンジニアとしての視座を数段上げてくれたACESのメンバーとのプロダクト開発が日々楽しく、新しい価値提供にワクワクしています!

ACESは一緒にAIプロダクト開発をドライブしてくれる方を募集しています。少しでも興味を持っていただけた方は、ぜひカジュアル面談のお申し込みをお待ちしております!

ACESの採用情報はこちら↓ youtrust.jp

youtrust.jp

フィードバックサイクルを高速化するACES Meetの開発哲学

こんにちは、株式会社ACES でテックリードをしている福澤 (@fuku_tech) です。

この記事では、私が所属する ACES Meet の開発チームが掲げる「フィードバックサイクルの高速化」という開発哲学について、その背景や具体的な取り組みをご紹介します。この記事を通じて、ACES Meetの開発チームの挑戦にご興味を持っていただいたり、皆様のプロダクト開発にとってご参考になる部分があれば幸いです。

フィードバックサイクルとは何か

ここで言うフィードバックサイクルとは、開発やリリースの各段階で得られるフィードバックを迅速に活用し、次の行動へ反映させるプロセスのことを指します。このサイクルが効率よく回るほど、価値提供までのリードタイムが短縮され、顧客に迅速に成果を届けることが可能になります。

具体的には以下のような項目が挙げられます。

  • ローカル環境での確認: コードを実行し、テスト結果を即時確認します。Green/Red (成功/失敗) の把握で初期エラーを検出し、素早く修正につなげます。
  • CI/CDによるテスト: 継続的インテグレーション環境でコードを検証し、品質を保証します。問題を早期に発見し、リリース前に修正することが可能です。
  • Pull Requestのレビュー: 他の開発者からフィードバックを受け取り、コードの改善点を素早く反映します。
  • 検証環境での動作確認: 実際の利用環境を想定し、期待する挙動が実現されているかを確認します。リリース前に問題を排除することができます。
  • 社内でのドッグフーディング: 開発チーム自らプロダクトを使用し、実際の使用感から改善点を見つけ出し、顧客視点の課題を洗い出します。
  • 顧客からのフィードバック: MVP (Minimum Viable Product) などを通じて顧客から直接得た意見を次の改善につなげ、プロダクトの方向性を調整します。

フィードバックは、上記のような段階ごとに発生します。これらの段階は、それぞれ異なる粒度でプロダクトの改善や価値提供を支え、いずれのフェーズでも「フィードバックを得るまでの時間を短縮すること」が鍵となります。この一般的な考え方は、ACES Meetにおいても同様で、顧客やビジネス要求に迅速に応えるためにフィードバックサイクルの高速化を最重要課題の一つとして掲げ、開発体制を整えています。

一般論としてのフィードバックサイクルの重要性

「フィードバックサイクルの高速化」は、単なる効率化ではなく、市場の変化に迅速に適応し続けるための重要な鍵となります。その有効性は、データに基づく研究結果で裏付けられると同時に、プロダクト開発現場での経験からも多くの示唆が得られています。

DORAの研究レポートが示す事実

DevOps Research and Assessment (DORA) による調査によれば、高速なフィードバックサイクルはプロダクトの成功に直結しています。

例えば、DORAの2024年の最新のレポートによると、パフォーマンスレベルがエリートのチームは「コードの変更から本番リリースまでのリードタイムが1日未満」であることが報告されています。*1

dora.dev

このような短いリードタイムを実現することで、競争の激しい市場でも迅速に新しい価値を顧客に提供することが可能になります。

これは、フィードバックサイクルの高速化が単なる「スピードアップ」ではなく、プロダクトが市場で競争力を保つための重要な戦略であることを示しています。

プロダクト開発における重要性

フィードバックサイクルは、開発チーム内の効率化にとどまらず、プロダクト全体の方向性を迅速かつ柔軟に調整する上で重要な役割を果たします。特に以下の2点で、その重要性が際立ちます。

  • 顧客ニーズへの適応: 高速なサイクルによって顧客からの意見をタイムリーに収集し、改善へ反映できます。これにより常に市場の期待に応える状態を維持します。
  • ビジネスサイドとの連携強化: フィードバックサイクルは、開発とビジネスの橋渡しとしても機能します。初期アイデアからリリース後の評価まで、継続的なコミュニケーションがプロダクトの方向性を正確に調整します。

このようにフィードバックサイクルの高速化は、常に変化する市場にプロダクトが適応し続けるために欠かせないアプローチです。次章では、ACES Meetがこの高速化を重視する背景について掘り下げます。

ACES Meetにおけるフィードバックサイクル高速化の重要性

ACES Meetは、商談や会議内容を可視化し、営業組織の強化を支援する営業DX×AI SaaSです。音声書き起こし、話者分割、トピック抽出、議事録自動生成、対話分析など、多岐にわたるAIアルゴリズムを組み合わせて価値を提供しています。

さらに、ACES Meetはリリースから2年半ほどの比較的新しいプロダクトであり、市場からのフィードバックを受けながら進化を続けています。

このような特性を持つACES Meetにおいては、一般論としてのフィードバックサイクルの重要性に加え、以下の2つの理由からフィードバックサイクルの高速化を重視しています。

PMFを目指すプロダクトとしての挑戦

ACES Meetはまだ完全にPMF (Product-Market Fit) を達成していない段階にあります。そのため、顧客ニーズや市場動向を迅速に捉え、改善を繰り返すことが極めて重要です。特に市場からのフィードバックを素早く仮説検証へと反映し、プロダクトの進化を加速させることが欠かせません。

プロダクト開発において、成功するアイデアと失敗するアイデアを見分けることは非常に難しいとされています。多くのケースでは、どの機能や改善案が市場に受け入れられるかは事前に予測がつきにくいため、試行錯誤を繰り返しながら学んでいくアプローチが求められます。この点について、以下の記事で次のように指摘されています。

これらのことから、人間は基本的に、成功するアイデアと失敗するアイデアを見分けることが得意ではないということがよくわかる。長年、ソフトウェアプロダクト開発に携わっていれば、これに頷ける。プロダクトのアップデートを何度繰り返しても重要指標が一向に改善されないことや、自信を持ってローンチした新機能がほとんど使われないといった経験を重ねてきただろう。

mtx2s.hatenablog.com

このような背景を踏まえ、ACES Meetでは「とにかく多くの打席に立つ」姿勢を重要視しています。効率的なフィードバックサイクルを活用し、迅速な仮説検証を通じてプロダクトを市場に適合させる取り組みを進めています。

AI開発の不確実性への対応

AI機能はその特性上、精度や性能を事前に予測することが難しく、不確実性への対応が求められます。PoC (Proof of Concept) での仮説検証や、実運用環境での予期せぬ挙動への迅速な対処が必要です。また、ビジネスサイドとの密接な連携を通じて、技術的な不確実性を早期に解消し、顧客に求められる価値を確実に届ける取り組みが重要となります。

こうしたPMFへの挑戦とAI特有の不確実性を背景として、ACES Meetはフィードバックサイクルの高速化を、プロダクトの進化と競争力維持のための戦略的要素と位置づけています。

ACES Meetにおけるフィードバックサイクル高速化の具体的な取り組み

ACES Meetでは、フィードバックサイクルを高速化するため、フィードバックを「フィードバックサイクルを高速化するための取り組み」「フィードバックを最大化するための取り組み」の2つの視点から捉え、短期間でのプロダクト進化や市場ニーズへの柔軟な対応を実現しようとしています。

フィードバックサイクルを高速化するための取り組み

ACES Meetの開発チームでは、設計、実装、テスト、デプロイの各段階でサイクルを効率的に回し、開発プロセス全体の速度を向上させる取り組みを進めています。これにより、アイデアの具現化から実装、リリースまでを短期間で繰り返し、プロダクトの進化を加速させています。この章では、それぞれの段階での具体的な工夫や改善策について簡単にご紹介します。

初期アイデア段階からの設計レビュー

開発前キックオフで要件を明確にし、懸念点を洗い出したうえで設計方針を議論します。以下の取り組みを通じて設計段階での問題を早期発見し、後続工程での手戻りを最小限に抑えています。

  • 要件確認や懸念点の洗い出しを行い、設計方針を議論する。
  • ペアでの設計とタスク分解により、作業の粒度を細かくする。
  • 週1回の設計レビュー会で進行中の設計や実装について壁打ちとフィードバックを行う。
  • SlackのHuddle機能を活用して、即時的な相談と議論を可能にする。

小さなPull Requestの徹底

一度に扱う変更量を最小限に抑えたPull Requestを作成することで、レビューと修正の迅速化を実現しています。

  • 変更量を抑えた小規模なPull Requestを作成することで、レビュー効率を向上させる。
  • タスク分解を徹底し、Pull Requestは1つの変更に限定する。
  • レビュアーが素早く変更内容を把握できる状態を保つことで、レビュイー・レビュアー双方の負担を軽減する。

詳細については以下の記事をご覧ください。 tech.acesinc.co.jp

CIの高速化

継続的インテグレーション (CI) では「5分以内で完了」を目標に定期的な改善を行っています。以下のアプローチにより、全体のテスト時間を短縮しています。

  • Slow Testsを撲滅し、CIのボトルネックを解消する。
  • GitHub Actionsのmatrix機能を活用してテストを並列実行する。
  • Rust製のLintツールを導入し、数秒で完了するコードスタイルチェックを実現する。

これらの具体的な改善内容については、別の記事で詳しくお伝えする予定です。ぜひご期待ください!

デプロイプロセスの改善

以前はデプロイ前の準備や実行に多くの手間がかかり、開発者にとって負担が大きいプロセスでした。この課題を解決するため、特定のブランチに変更をマージするだけで自動的にデプロイが実行される仕組みを整備しました。

さらに、マイグレーションファイルに変更がない場合には該当工程をスキップする仕組みを導入することで、デプロイ時間を短縮しました。特にSandbox環境ではデプロイ頻度が高いため、この改善によりデプロイの回転数が大幅に向上し、開発フロー全体の効率化に貢献しています。

フィードバックを最大化するための取り組み

ACES Meetでは、顧客やステークホルダーからの意見を迅速に収集し、それをビジネスサイドとの連携を通じて即座にプロダクトの方向性へ反映しています。この取り組みにより、フィードバックを迅速に次のアクションへとつなげる仕組みを構築し、顧客ニーズに適応したプロダクト開発を加速させています。

ワークショップの開催

社内のステークホルダーを対象に、定期的なワークショップを実施しています。この場では、利用者が直面している業務上の課題や背景、具体的な影響を詳細に共有し、それらを解決するための最適なアプローチを議論します。たとえば、営業やカスタマーサポート部門が抱える課題を可視化することで、プロダクトがどのように貢献できるかを具体化し、開発テーマの優先順位を整理しています。

この取り組みは、単なる課題共有にとどまらず、ステークホルダー全体で仮説検証を推進する場として機能しています。結果として、開発テーマやプロダクト戦略が明確になり、チーム全体で共通認識を持ちながら迅速な意思決定を行う体制を構築しています。

リリース前の検証

リリース前の検証プロセスでは、開発前と開発後の2つの段階でフィードバックを収集し、プロダクトの完成度を高める取り組みを行っています。

開発前

開発に着手する前の段階では、UIデザインやプロトタイプを活用してステークホルダーからフィードバックを収集しています。開発者、PdM、デザイナーだけでなく、営業やCSとも積極的に壁打ちを行い、認識のすり合わせを徹底しています。特にAI機能の場合は、プロンプトと生成結果を確認できる簡易画面を活用することで、具体的なフィードバックを得る環境を整えています。この段階では、実装というコストの高い作業を進める前に可能な限り課題を洗い出し、仕様の精度を高めることを重視しています。

開発後

完成したプロダクトについては、営業やCSに実際に触ってもらい、使用感の確認を行います。特に以下の観点でフィードバックを収集しています。

  • 実際の業務で使用する際に違和感がないか。
  • 他の機能と組み合わせてシームレスに利用できるか。

また、収集したフィードバックをもとに、リリース前に修正可能な課題については即座に対応し、可能な限り最適な形で顧客に提供できるよう準備を整えます。

MVPのリリース

ACES Meetでは、MVP (Minimum Viable Product) のリリースを通じて、必要最小限の機能を持つプロダクトを早期に市場へ投入し、顧客からのフィードバックを迅速に収集することを重視しています。これは、3.1節で述べた「何が成功するか分からない」という前提に基づいており、提供したいユーザー体験や解決すべき課題の本質を見極めるための重要なプロセスです。

このアプローチでは、下図の下段一番左の絵のような手押し車からスタートして徐々に肉付けしていくように、まずは最小限の形で価値を届けることを目指します。*2

提供する体験や解決する課題の方向性が正しければ、それを強化する形で進化させ、間違っていれば迅速に次の仮説を検証する足掛かりとなります。

MVP - not "bike to car"

また、仮説を大きく外さないようにするためにも、4.2.1で述べたワークショップや、4.2.2で実施するリリース前の検証といった工程を大切にしています。これらを通じて、ステークホルダーの声を早い段階で収集し、仮説の精度を高める工夫を重ねています。

まだまだ課題は多く、すべてが完璧にワークしているわけではありませんが、試行錯誤を重ねながら改善を図っています。

ユーザーインタビュー

定期的にユーザーインタビューを実施し、現在のプロダクトが顧客にとって本当の意味で価値を提供できているかを確認するようにしています。

インタビューでは、ACES Meetを利用することで顧客のKGIやKPIが改善につながっているかをヒアリングし、プロダクトが業務上の課題解決や効率化にどの程度寄与しているかについてフィードバックを収集しています。これにより、プロダクトの現状を顧客視点で見直し、さらなる改善のための材料としています。

なお、顧客とのACES Meet導入前の商談や導入後のCS活動、ユーザーインタビューの内容はすべてACES Meetに記録されています。これにより、初期の課題から利用後の変化までを一元的に管理でき、後からの振り返りや分析も容易に行える環境が整っています。

まとめ

本記事では、フィードバックサイクルを高速化することの重要性と、ACES Meetのプロダクトチームがそれをどのように実現しているかをご紹介しました。

今後もこの取り組みを進めることで、ACES Meetは顧客に求められる機能と体験をスピーディに届け、常に進化し続けるプロダクトを目指していきます。

本記事を通して、ACESに少しでも興味を持っていただけた方は、ぜひカジュアル面談のお申し込みをお待ちしております!

ACESの採用情報はこちら↓ youtrust.jp

元VPoEがACESを選んだ理由 〜このチームと働きたい〜

初めまして!ACESでエンジニアリングマネージャーを担っています、小林と申します!

今回入社3ヶ月も過ぎ、無事試用期間を終えた記念として、入社エントリなるものを書いてみようと思います。

ドーナッツに挟まる息子くん

簡単な前職までの経歴

大学卒業後、SI企業を2社ほど経験した後

エムティーアイ、グリーでスクラムマスターを、リクルートキャリア(現リクルート)で7年半ほどプロジェクトマネジメントやサービスマネジメントを経験し前職のテックタッチに転職しました。

初めてのスタートアップでしたが、1人目EMとして様々な機会に恵まれ

  • スクラム運営
  • チームトポロジーを活かしたチーム分割
  • インシデントマネジメント
  • デリバリーマネジメント

などプロダクト開発の実装以外をCTOとともに担わせていただきました。

その後同社初のVPoEとして採用や組織運営にも携わらせていただき、身に余る経験を積ませていただいたと思っています。

なんで転職しようと思ったのか

前職では機会にも恵まれ、幅広い業務を任せていただきました。

ただ、VPoEになってから、もしくはなる直前くらいからできる限り自分自身の能力で再現性の高い組織作り・プロダクト作りをしたかったという思いが膨らんできたことが主な理由です。 (もっと詳しい話が聞きたい方はぜひお声がけください・・・!色々とお話しできると思います)

なんでACESに決めたのか

様々な会社(合計20社くらい)とカジュアル面談を重ねるうちに、自分なりの軸がはっきりしてきました。

  • チームとしての伸び代が大きいチームがよい
  • フィードバックサイクルを高速で回せるプロダクトを目指せる
  • 評価制度など、本人の成長支援する制度を一緒に考えられる人事がいること
  • プロダクトそのものとしての成長の余白が大きい

といったチームの環境で働きたいなと思えるようになっていました

そんな中ACESは

  • 面接官だったテックリードをみて、開発メンバーが若手なのにとても優秀だなというのが伝わってきた
  • シンプルなプロダクトが故に進化余地が大きい
  • エンジニアリングの基本が整っており、改善を行うことで、簡単に倍以上のフィードバックスピードを目指せる
  • 評価制度を組織状況に応じて着実に改善できており、それをしっかり前に進められる人事がいる

というのが明確に見えてきた時点でほぼ心はACESに決まりました。

ACES と プロダクト

ちなみに私が求人を見た時に思った会社の第一印象は

合理的で厳しそうな雰囲気を想像していました。が、それは面談・面接・入社を経て綺麗さっぱり無くなりました。今日これを書くネタを考えていた時まで思い出せなかったくらいです。笑

実態でいうと和気あいあいとした雰囲気があり、適度にウェットな一面も感じられ、第一印象とは真逆で、みなさん人柄的には真面目でありつつも自分の仕事にプライドを持っている素敵な方々だなと思っています。

プロダクトについて

ACES Meetというプロダクトを今開発しています。 ACES Meetというのはローンチから2年半が経ち、基盤的な機能が揃い始め、第二創業期に突入したと感じています。

基本機能はできているので、これからは特定の領域(これは面談の時にお話しします!)に対し攻めの姿勢でいけるフェーズに入り始めています。

最後に

実はいろんな施策をこの数ヶ月の中で打つことができ、その結果、チームのパフォーマンスも一段上がる成果にもつながりました。その話もいずれ別の記事でご紹介できればと思っています。

カジュアル面談を通じて、ACESの魅力や私たちのビジョンをぜひお伝えしたいと思っています。転職をお考えの方や、少しでも興味を持たれた方はお気軽にご連絡ください。もちろん応募もお待ちしておりますし、転職に関するご相談も歓迎しています!

https://pitta.me/matches/SclKZswiSGvh

いわゆるAIで議事録を書くというだけにとどまらない、もっと面白いプロダクトを開発していくという体験ができること請け合いです!

リリースを加速するACES Meetの設計プロセス

こんにちは、株式会社ACES でソフトウェアエンジニアをしている奥田(@masaya_okuda)です。

この記事では、私の所属するACES Meetの開発チームで実践している設計プロセスをご紹介します。ここで言う設計とは、PdMから開発チケットの要件定義が共有され、本格的な実装を始める前までの期間に行うプロセスを指します。

背景には、私たちの開発チームが以下の課題を抱えていたことがあります。

  • 複数の変更内容が含まれるPull Requestが作成され、レビューコストが高い
  • レビュアーと実装者の認識齟齬による指摘の多発と手戻り

これらが原因となり、リリースまでの期間が大きく遅延したり、手戻りによる実装者とレビュアーの疲弊につながっていました。

肥大化したPull Requestが引き起こす3つの課題

改善にあたり、開発工程のどこに課題があるのかを検討した結果、Pull Requestの粒度であると分かりました。

  • 1つのPull Requestで複数の変更が実装されておりレビューコストが高い
  • 機能開発の大部分が完了した段階で、考慮漏れや設計の見直しとなった場合、手戻りが大きくなる
  • リリーススケジュールの後半で問題が発覚することが多く、リカバリが困難

背景には変更の全体像が不透明なまま開発が進められ、結果的にスコープが広がってしまうという構造的な問題もありました。 Pull Requestの粒度に関してはFindy社のテックブログでわかりやすくまとまっており、参考にさせていただきました!

tech.findy.co.jp

Pull Requestの粒度を適切に保つためには、本格的な実装を始める前に変更の全体像を把握し、タスク分解することが重要と考え設計フェーズで行うことを整理しました。

設計からコードレビューまでの流れ

設計フェーズで行う4つのステップ

設計フェーズは、大きく4つのステップで構成されています。

  1. 要件を開発に必要なレベルまで具体化する
  2. APIのインターフェースとDB設計を行う
  3. 仮実装を行う
  4. タスク分解を行い、レビュアーと開発手順の認識を揃える

Step4のタスク分解は1つのPull Requestで行うことと対応しています。設計フェーズの目的は、1つのPull Requestが意味のある粒度で小さくなるようにタスクを分解し、その開発ステップをレビュアーと合意することです。

要件を開発に必要なレベルまで具体化する

設計の初めに要件を具体化します。この工程では、満たすべき仕様を整理し、開発者間で認識を共有できる形に落とし込みます。

このステップでは要件に対する理解を深め、仕様に納得感を持って次の工程に進むことを重要視しています。特に、開発者がPdMやデザイナーと協力して仕様を検討することで、現場感覚を反映した実現可能な設計を追求しています。

具体化プロセスでのよくある課題と対応策

要件を具体化する中で、以下のような場面に直面することがあります。

  • 上手く言語化できないとき
    • どの画面上でどのように動作するのか?
    • ユーザーの状態によってどのように分岐するのか?
    • → PdMやデザイナーと開発者が直接対話することで、具体的なシナリオを共有します。
  • ボリュームが大きくなりすぎるとき
    • この機能開発で複数のことを同時にやろうとしていないか?
    • もっとシンプルにしたり、機能を分割することでリリースを高速化できないか?
    • → チームで優先度を再評価し、必要に応じて分割案を議論します。

ここで重要なのは、「言われたことをそのまま作る」ではなく、開発者自身が仕様の妥当性や実現性を検証し、必要であればフィードバックを返すことです。例えば、設計段階で以下のような「現場の気づき」をチームに共有し、納得できる解決策を模索します。

  • 現場の技術的な制約が原因で、別案が必要な場合
  • ユーザーストーリーに抜け漏れがある場合
  • 既存の仕様に影響が出るリスクが見つかった場合

仮実装

次に仮実装を行います。次に仮実装を行います。仮実装の目的は、「タスク全体のイメージを掴むこと」と「適切な粒度でタスクを分解するための判断材料を得ること」です。

  • タスク全体のイメージを掴む
    • 具体的にどの箇所に変更が必要か?
  • 適切な粒度でタスクを分解するための判断材料を得る
    • 実装の前例が無いなど、不確実性の高い実装はどこか?
    • セキュリティリスクが高く、慎重な設計が必要な箇所はどこか?
    • 修正箇所で事前にリファクタリングが必要な箇所があるか?

この段階では、作り込みに時間をかけすぎないように注意します。 例えばフロントエンドの仮実装の場合は、以下の観点で進めます。

タスク分解を行い、レビュアーと開発手順の認識を揃える

仮実装で開発の全体像を掴んだ後にタスク分解を行います。この工程は本格的な実装時にレビュアーとなるエンジニアとバディで行います。レビュアーが以下のポイントを事前に理解しておくことで、レビュー時のコストが大幅に削減されます。

  • この開発のゴールは何か?
  • どの手順や粒度でPull Requestが作成されるのか?
  • ユーザーの体験や仕様が大きく変わるなど、特に注意してレビューすべきタスクはどれか?
  • デプロイ時に注意すべきことがあるか?

さらに、仮実装を確認しながら、手戻りが大きくなりそうな認識のズレがないかを事前に検証します。

実際に運用してみての効果

設計フェーズを改善した結果、冒頭で挙げた課題への効果を実感しています!

  • 課題:大きなPull Requestが作成され、レビューコストが高い
    • タスクを小さく分解することで、1つのPull Requestが意味のある粒度に保たれ、レビューが効率化
    • 仮実装の段階でタスク分解を行うため、レビュー時に「何を見ればよいか」が明確になり、レビュアーの心理的負担が軽減
  • 課題:レビュアーと実装者の認識齟齬による指摘の多発と手戻り
    • 設計フェーズで要件を具体化し、認識を共有することで、仕様や設計の方向性に対する共通理解が形成され手戻りが減少
    • 仮実装を通じて、「想定外の仕様変更」や「実現が難しい設計」を早期に発見し、実装後の修正コストを削減

終わりに

今回は、私の所属する開発チームで実践している設計フェーズの取り組みをご紹介しました。このプロセスが、皆さんのチームにとっても何か参考になれば幸いです。

ACESではご紹介した開発プロセスに取り組む前提として、ユーザーへの価値提供と技術品質の高さの両方に妥協せず取り組む文化があると感じています。少しでも興味を持っていただけた方は、ぜひカジュアル面談のお申し込みをお待ちしております!

ACESの採用情報はこちら↓

youtrust.jp

youtrust.jp

AIアルゴリズムのプロフェッショナルと協働するソフトウェア開発の魅力

同じマイクで複数人が話しても、話者を識別する機能
同じマイクで複数人が話しても、話者を識別する機能
こんにちは、株式会社ACES でソフトウェアエンジニアをしている奥田(@masaya_okuda)です。

独自 AI による話者ごとの自動文字起こしや重要なシーンの可視化を行い、オンライン商談における成約率の向上と現場の工数削減に寄与する商談解析 AI ツール「ACES Meet」を開発しています。

meet.acesinc.co.jp

現職で初めてAIが根幹にあるソフトウェアサービスを開発し、従来の開発と比較して「設計の難易度が明確に上がった」と感じています。AI機能はユーザーが使えば使うほど精度が上がる一方で、学習が十分でないフェーズでは期待値を下回ってしまう可能性があります。

それを乗り越えてユーザーにご利用いただくため、開発時にはAIエンジニアとソフトウェアエンジニアが協働して機能開発を行います。AIエンジニアがAI自体の精度向上を担当し、ソフトウェアエンジニアがAIをユーザーが利用可能なUIを持ったソフトウェアとして実装します。

特に、「いかにユーザーにストレスを感じさせない体験を作るか?」「100%ではないAIの精度をソフトウェア側でどうカバーするか?」をAIエンジニアと共に設計しプロダクトに落とし込んでいく過程に、これまでにない面白さを感じています!

そこで今回は、ソフトウェアエンジニア目線でAIプロダクト開発の課題や魅力をご紹介したいと思います。

ACESの開発組織

まずは簡単に組織についてご紹介します。ACESは「アルゴリズムで、社会はもっとシンプルになる。」というビジョンのもと、アルゴリズム事業を展開する会社です。SaaSを提供するAIソフトウェア事業に加え、クライアントとプロジェクト型で伴走するDXパートナー事業、AIソフトウェアの研究開発部門があり、時短社員も含めると30名以上のエンジニアが所属しています。

私はAIソフトウェア事業に所属しており、研究開発部門と連携して「ACES Meet」を開発しています。

直近のAI機能リリース

ACES Meetは先日、「同じマイクで複数人が話しても、話者を識別する機能」をリリースしました。ユーザーの音声データを学習し、同じマイクに対して複数人が話しても話者を特定して文字起こしを行うことができます。この機能によってオフライン会議でもACES Meetを活用できるようになります。

同じマイクで複数人が話しても、話者を識別する機能
同じマイクで複数人が話しても、話者を識別する機能

この機能を実装する中でAIプロダクトの難しさに直面しました。

AI故の課題

これまで私が経験してきたソフトウェア開発は、「あらかじめ機能要件を定義し、要件を実現するように実装する」というプロセスで行われていました。エンジニアが開発した以上のことはできませんが、十分に検証すれば不具合のリスクは小さくできます。一方で、AIの期待性能を100%にすることは難しいため、AIが間違えたときの体験を保証する必要があります。

エンジニアの精度テストでは高い性能で話者を識別できていたにも関わらず、いざビジネスサイドの方を交えてレビューを行ったところ、稀に起こる失敗によってユーザーの体験を大きく損ねるのではないか?というリアクションが返ってきました。

音声を聞いて話者を識別することは人間にとって簡単であり、それをAIが間違えると、ユーザーは自分で手を動かした方が速いと見切りをつけてしまうリスクが高まります。

この機能の場合、会議参加者の発話量や音声の学習状況によっては3人で会議しているのに4人に過剰分割されるといったことが起こり、ユーザー体験の悪化が懸念されました。

トラストの観点をもとにユーザー体験を考える

仕様を再度検討するにあたり、AIエンジニアからトラストの観点をもとに見直そうと提案が上がりました。AIをプロダクトやサービスに組み込む場合には、人とAIの間にトラスト(信頼関係)が構築され、人が安心して使える状態を追求することが重要です。

たとえばAIの技術そのものが素晴らしくても、人が使い方を理解できなかったり、期待と異なる動作をし且つその理由がわからないと継続的な利用には繋がりません。

以下はMicrosoftの「人間と AI の相互作用に関するガイドライン」を参考に、特にACES Meetに重要な部分をピックアップした観点です。

learn.microsoft.com

トラストの観点

  • 機能を使う前に、
    • AIが「何ができるか」を容易に理解できるか?
    • AIが「どれくらい上手くできるか」を容易に理解できるか?
  • AIが間違えた時に、
    • ユーザーが「なぜAIがそのように間違えたか」を理解できるか?
    • ユーザーがAIの失敗を容易に修正することができるか?
    • AI機能をすぐさまオフにできるか。また必要な時だけ呼び出せるのか?

この中でも、

  • AIが「どれくらい上手くできるか」を容易に理解できるか?
  • AI機能をすぐさまオフにできるか。また必要な時だけ呼び出せるのか?

に着目し、最終的にはソフトウェアエンジニアとAIエンジニアで役割分担してリリースまで走り切ることとなりました。

  • AIエンジニア
    • AIの精度自体をさらに向上させる
    • 発話量が少ない場合、無理に分割しない
  • ソフトウェアエンジニア
    • 機能をON / OFFできるようにし、ユーザーが必要なときだけONにできるようにする
    • 「どんな環境なら高い精度で利用できるか?」を厚く説明したサポートページを設け、機能のすぐ近くに導線を設置する

AIプロダクトの面白さ

ACESで働くソフトウェアエンジニアとして、AIという新しいパラダイムのユーザー体験をAIエンジニアと共に考え作り上げていくことが、最も面白い瞬間です。

ACESにはAIアルゴリズムのプロフェッショナルが多数在籍しており、AIの精度をチューニングし理想の状態に近づけることができます。一方で、どんなに精度が高くてもAIの処理では間違いは発生し、結果ユーザーは難解であると感じやすいのです。

そのため、ソフトウェアエンジニア側では「どのようなインターフェースが分かりやすいのか?」「AIの精度が及ばない部分をどうフォローするか?」を設計し、ユーザーがより利用してくれる状態を目指します。

私はフロントエンドを中心に開発していますが、AIを利用したプロダクトにおいてどのようなUIがユーザーにとって分かりやすいのか?に関する国内の事例はまだ多くありません。具体的な実例が限られているチャレンジングな環境での開発を日々楽しんでいます!

今回はトラストの観点に沿って、以下の工夫を行いました。

  • 機能のON / OFFを簡単に切り替えられる
  • 設定導線の中にサポートページへのリンクを設置し、「AIに何ができるか?どれくらい上手くできるか?」を説明する

同じマイクで複数人が話しても、話者を識別する機能の設定画面
同じマイクで複数人が話しても、話者を識別する機能の設定画面

サポートページでフォローできることには限界があるため、機能設計時点でいかにUI/UXをシンプルにできるかが今後の課題です。

おわりに

本記事では、AIプロダクト開発の課題や魅力についてご紹介してきました。今後もAIエンジニアとソフトウェアエンジニアの協働を通して、お客様にとって使いやすいプロダクトづくりに努めてまいります。

これを実現するために、ソフトウェアエンジニアをはじめNLPアルゴリズムエンジニアなど幅広く募集しています。弊社の取り組みにご興味をお持ちいただける場合は、下記の募集ページから是非ご応募ください!

Serverside Engineer

https://open.talentio.com/r/1/c/aces/pages/22028

Front-end Engineer

https://open.talentio.com/r/1/c/aces/pages/22026

Algorithm Engineer(自然言語処理音声認識

https://open.talentio.com/r/1/c/aces/pages/55104