クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

クラウドログ開発チームにおけるAI活用

はじめに

こんにちは、工数管理SaaS クラウドログ でエンジニアをしている越阪部です。

普段の業務では、Webフロントエンド関連の開発を担っています。

突然ですが、みなさんAIツールの活用進んでいますでしょうか?

直近では、コーディングエージェントを使っての開発や、MCPサーバーを使っての業務自動化など、AIツールの活用方法の発見と共有が賑わっており、もうAIのなかった頃には戻れないなと日々痛感しています。

クラウドログ開発チームでは、AIツールを業務に組み込むことで開発生産性の最大化を図り、顧客により大きな価値を提供できる体制を確立することを目指しています。この記事では、私たちがどういった取り組みをしているのかを、まだまだ試行錯誤を続けている段階のトピックが多いですが、簡単にご紹介したいと思います。

コーディングツールの導入と活用KPT実施

現在CrowdWorksでは、全社的な取り組みとして、コーディングのためのAIツールを配布し始めています。CursorClaude CodeGitHub Copilotといった選択肢が用意される中、クラウドログ開発チームでは主にCursorClaude Codeが選択されています。

これらのツールを個人のスキルとしてだけでなく、チーム全体の力として最大限に活用するため、週に一度「AIツール活用のKPT(Keep, Problem, Try)」というミーティングを実施しています。この会では、各々が見つけた「活用のためのTips(Keep)」や、直面している「改善が必要なこと(Problem)」をFigjam上に書き出して共有し、それらのProblemに対する「具体的な改善策(Try)」をチームで議論します。

KPTの様子

この取り組みの目的は、AI活用のナレッジをチーム内で平準化し、継続的に知見を蓄積していくことにあります。例えば、直近のKPTでは、Keepとして「Claude Codeのhooksを使えば、時間のかかる処理の終了をアラート通知できて便利」「ユニットテストの実装を任せると、高い品質で生成してくれている」といった具体的な成功事例が共有されました。

一方で、Problemとしては「顧客情報などのセンシティブな情報をAIに渡さないためのルール整備が必要」「AIツールを横断して、共通の設定やルールファイルを同期する方法を検討したい」といった課題が挙がっています。

このように、具体的な成功体験と課題をセットで共有することで、チーム全体でAI活用のベストプラクティスを模索しています。昨今のAIツール界隈は、技術の進化やトレンドの移り変わりが速いため、こうした定期的なナレッジ共有の場を持つことは、チームとしてAIを最大限活用していく上で重要だと考えています。

調査で大活躍Devin

クラウドログ開発チームでは、自律型AIツールであるDevinも導入しています。Devinは幅広い使い方が可能ですが、特に「不具合報告に対する一次調査」という領域で大きな成果を上げています。

Devinによる調査

クラウドログのコードベースには、歴史の長い箇所や、特定のメンバーしか普段触らない箇所も存在します。そのため、調査の内容によっては、調査を担当するメンバーの知識や経験に依存してしまい、誰もがすぐに調査できるわけではないという課題がありました。しかし、内外から報告されている不具合の対応は、他の開発タスクを進めながらも、迅速かつ確実に行わなければなりません。

Devinは、この課題を解決するのに非常にハマるツールとなっています。開発メンバーは、自身が取り組んでいる作業を中断し、ローカル環境のブランチを切り替えるといった手間をかけることなく、管理画面上から手軽に調査を依頼できます。さらに、今のところDevinはコンスタントに高い精度の調査結果を報告してくれており、非常に頼りになります。

一方で、機能の実装といったタスクにおいては、まだ期待する品質のアウトプットには至っていません。しかし、前述したような調査タスクにおいては、なくてはならない存在になりつつあります。

よりAI駆動な開発方法の模索

AIを一層活用するための開発方法の模索も始めています。現在、特に注力しているのが「仕様書からの実装生成」です。仕様書やコーディング規約を整備しつつ、AIに資料として提供することで、人間の介入を最小限に抑えつつ、品質が揃った実装を効率的に生み出す開発フローを目指しています。

資料構成のイメージ

このアプローチを現在開発中の新機能の開発で試しています。まだまだ手法を試している段階ですが、具体的に適用してみたケースとしては、ページの機能を整理した仕様書をAIに読み込ませて、Reactによるフロントエンド実装を試みました。結果としては、私たちが定義した設計方針に沿ったファイル配置を行ってくれたり、既存のAPI仕様書から生成された通信用の実装を適切に使用してくれたりと、活躍の可能性を感じる部分はありました。しかし同時に、実用化のために乗り越えるべき壁も発見されています。

例えば、AIは、内製のUIコンポーネントライブラリを知らないため、使って欲しい局面で使ってくれないことがあります。たとえばテーブルUIを実装する時に、独自コンポーネントの代わりに、標準的なHTMLの <table> タグで実装をしてしまうといったケースがあります。これはAIが「このUIには、このコンポーネントを使うべき」という文脈情報を持っていないのが原因と考えられます。今後は、ライブラリの情報を提供するMCPサーバーを実装することでAIに適切に情報を渡していくといった対策を試していきたいと思います。

また、別の観点では「AIの作業完了を待つ時間を人間がどう使うか」という課題も浮かび上がっています。たとえば、ページ全体の実装といった大きなタスクであれば、AIの作業完了を待つ間に別の作業ができます。しかし、より細かいタスクをAIに任せつつ他のタスクを行おうとした場合、頻繁なコンテキストスイッチが発生し、かえって生産性が落ちる可能性もあると考えています。タスクの粒度をどう設計していくかは今後の検討事項となりそうです。

また他にもチームでは、「AIを前提とした業務適用が進んだ時、エンジニアの役割はどう変わるのか?」がトピックとして上がっています。実装作業の多くをAIに任せるようになった時、エンジニアはこれまで以上に関連領域へと専門性を広げていく必要があるのではないかと思います。例えば、プロダクトオーナーのように上流のビジネス要件から開発を推進したり、セキュリティやアーキテクチャ設計といった、より高度な専門スキルを身につけたりすることです。

ビジネスサイド業務の自動化もやっていく

プロダクトの成長に貢献するため、AIツールの活用は開発業務だけに限定せず、ビジネスサイド業務の自動化も進めています。現在着手しているところとしては、商談後の議事録生成と顧客データ入力の自動化があります。

具体的には以下のようなフローを実現すべく検討しています:

  • プロダクトセールスが商談を顧客と実施
  • 商談中の動画を元に内容を文字起こし
  • 文字起こし内容から議事録を生成
  • 議事録の情報を元に、CRMスプレッドシートなどの情報を更新

こういった議事録の作成や各種ツールへの顧客データの入力は、商談の重要な情報を記録し、戦略検討や振り返りなどのために必要なものとなりますが、どちらかというと定型的な業務で、自動化できると嬉しい領域です。ビジネスサイド業務の自動化も進めていくことで、より本質的な業務に集中できる環境を作っていきます。

番外編: Vibe Coding実演会やってみた

AIの活用をより身近に感じることができるように、Vibe Codingの実演会を実施しました。個人的には、雰囲気でさくっとツールやスクリプトをAIに実装させる、という手法の利便性に可能性を感じており、それを普段の業務でも手段として思い出してもらえるようにとこの会を企画しました。

会の内容としては、FigmaのPluginの実装を要件定義から実装と動作確認までサクッと行うものとしました。作成したPluginは、指定した箇所にランダムに生成したテキストを挿入するという仕様としましたが、Geminiとの要件定義の壁打ちからGithub copilotでの実装生成までスムーズに進み、動作確認まで大きな問題なく完了することができました。

作成したプラグイン

この会を実施して、「短い時間で実装を完了させられたことに驚いた」「自分もAIで何かつくりたくなった」などの感想を参加者から得ることができました。今回は、AIを使ってサクッと実装をする便利さを知ってもらうことを目的としたため、実演形式をとりましたが、次回はハッカソンのように実際に手を動かすような形式でもやってみたいと思います。

おわりに

クラウドログ開発チームにおける、AI活用の取り組みをご紹介しました。目まぐるしく変化を続けるAIの世界では、積極的にキャッチアップしてとにかく試していくことが必要と感じています。AIツールはただ導入しただけでは最大限の活用は難しいため、チームとしてノウハウを収集、発見、共有を徹底することに加えて、AI自身が学習・参照しやすいナレッジの整理と蓄積も積極的に行い、最適な活用方法を確立していきたいと思います。

© 2016 CrowdWorks, Inc., All rights reserved.