ブログ AIと機械学習 GitLab Duo開発の現場から:GitLabにおけるAI機能のドッグフーディングの取り組み
更新日:July 10, 2024
25分で読めます

GitLab Duo開発の現場から:GitLabにおけるAI機能のドッグフーディングの取り組み

このブログシリーズの記事では、GitLabがどのようにソフトウェア開発ライフサイクル全体にAIを統合しているのか、また、メトリクスを用いてパフォーマンスを測定しているのかを、実例を用いて解説します。

gitlab duo - new cover

生成系AIは、ソフトウェアの開発、セキュリティ保護、運用のプロセスを簡素化し、ソフトウェア開発業界に大きな変革をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能を、我々はどのように作成、テスト、デプロイしているかを説明しています。をこれは皆様のDevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能をどう利用できるのかを知っていただける内容になっています。

AI機能を集めたGitLab Duoは、当社の社内エンジニアリングワークフローを刷新し、開発プロセス全体の効率化を推進してきました。GitLabはドッグフーディングと透明性を重視しています。そのため、この記事では、当社のチームがコード提案やチャットなどの代表的なGitLab DuoのAI機能を日常的に活用し、開発プロセスの合理化や手作業の削減、生産性の向上を実現しているアプローチについて解説したいと思います。エンジニアリングのような高度な技術を用いるチームから、テクニカルライティングや製品管理など、あまり技術的でないチームまで、当社が得ているメリットについて解説します。

GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見しましょう!【今すぐ視聴する】

実際のユースケース

GitLabのチームは、GitLab Duoの各種機能を日々のルーチンに組み込んでいます。日常的な仕事を実行する上でGitLab Duoをどのように役立てているのかについて、いくつか実例をご紹介します。

要約とドキュメント

  • コードレビュープロセスを効率化: スタッフバックエンド開発者のGosia Ksionekは、GitLab Duoを使ってAIをワークフローに用いる実践的なメリットとして、コードレビュープロセスの無駄を省くことができる点を挙げています。彼女はGitLab Duoを用いて効果的にマージリクエストを要約し、コード変更のレビューを簡素化し、作業をスピードアップさせています。また、マージリクエストの要約に加えて、GitLab Duoを使ってコーディングの質問への回答複雑なコードスニペットの説明も実施しています。このように、生産性の向上のほか、複雑なコードベースの理解と管理にAIを活用しています。以下のデモで、GitLab Duoが大幅な効率向上と開発プロセスの見える化に貢献しており、開発者にとって欠かせないツールであることを強調しています。

GitLab Duoを使ってマージリクエスト要約する方法をご覧ください。

GitLab Duoを使ってコーディングに関する質問に回答する方法をご覧ください。

GitLab Duoを使って複雑なコードスニペットを説明する方法をご覧ください。

  • コメントスレッドの要約: エクスパンションソフトウェア開発を統括するBartek Marnaneは、GitLab Duoを使って長いコメントスレッドを要約し、イシューの説明を更新しても重要な情報が洩れることがないように工夫しています。

  • ドキュメントの新規作成: データサイエンスセクションの製品部門グループマネージャーを務めるTaylor McCaslinは、GitLab Duoを用いてGitLab Duo用の新規ドキュメントを作成し、情報の明確化と一貫性の確保、および新機能のドキュメンテーションに費やす時間の大幅な短縮を実現しています。

  • リリースノートの作成: 製品企画部門でシニア製品マネージャーを務めるAmanda RuedaはGitLab Duoをとおして、リリースノートに使用する簡潔で有益な要約を作成し、変更点やその価値をユーザーに説明しています。以下のような効果的なプロンプトを使うことで、ワークフローを大幅に改善し、各リリースノートがわかりやすく、簡潔で、ユーザー目線で書かれるようにしています。その結果、コミュニケーション全般とユーザー体験の向上につながっています。

    「この変更を2つの文で要約してください。リリースノートに使用します。会話のようなトーンで、二人称を使います。要約には問題や変更の説明を盛り込み、当社が、あなた、つまりユーザーにもたらす価値と関連付けてください」

  • ドキュメントサイトのナビゲーションを最適化: スタッフテクニカルライターのSuzanne SelhornはGitLab Duoを使ってページをワークフローに基づいた順番に並び替え、ドキュメントの左側のナビゲーションを最適化しています。機能の一覧をGitLab Duoに伝えることで、適切な順番が生成され、その順番に合うように左側のナビゲーションを更新しました。また、GitLab Duoを使って、手作業よりも大幅に速くスタートガイドの下書きを作成できるようになりました。

目標設定とチームの連携

  • OKRの下書き作成と改善: Create:Codeレビューバックエンドチームでエンジニアリングマネージャーを務めるFrançois Roséは、OKR(目標と主な成果)の下書き作成と改善においてGitLab Duoチャットの利便性を実感しています。目標をより明確に、効果的に伝えることで、目標設定とチームでの認識の共有を強化しています。GitLab Duoチャットを使用すると、正確で、アクションに結びつきやすく、なおかつチームの目標と一致するOKRを策定できるため、チームの全体的なパフォーマンスの向上と団結を導けます。以下に、プロンプトの例を記載します。

    「次のようなOKRを作ろうと思っています。

    目標:チームメンバー全員からレトロスペクティブを徹底してチームを活性化する

    主な成果:チームメンバー全員からレトロスペクティブにの満足度を測定する

    主な成果:非同期で行うレトロスペクティブの改善点を3つ特定する

    主な成果:改善を1つ実行する

    上記の目標と3つの主な成果の構成を改善する方法に関して率直なフィードバックをください」

  • 採用と採用活動プロセスを合理化: スタッフフロントエンドエンジニアのDenys Mishunovが、面接を受ける候補者に送るメールテンプレートを明確で簡潔な文章で修正する際に重宝した実際のチャットをこちらからご覧ください。必要な情報を漏れなく候補者に伝えるため、チームが協力して、どのようにマージリクエストを通してコミュニケーションを改善しているのかに注目しましょう。この例は、採用ワークフローにおけるコミュニケーションプロセスの強化をもたらす、AIツールの実用的な活用方法を示すものです。

インシデントのレスポンスと設定

  • 本番環境のインシデントを要約: スタッフサイトリライアビリティエンジニアのSteve Xuerebは、GitLab Duoを本番環境のインシデントの要約、および詳細なレビューの作成に利用し、ドキュメンテーションプロセスの合理化を促進しています。

  • ボイラープレート.gitlab-ci.ymlファイルを作成: GitLab Duoチャットを介して、ボイラープレート.gitlab-ci.ymlファイルも作成し、ワークフローの大幅な改善を実践しています。GitLab Duoチャットはアイデアを提案してくれる頼りになるパートナーです。さらに、コードの説明機能のおかげで、インシデント発生時に詳細かつ有益な回答を得ることができ、生産性の向上とコードベースの正確な理解につながっています。

コードの生成とテスト

以下の動画で、GitLab Duoを使ってPythonのスクリプトを作成し、コンテンツのデータを取り込んだ後、ローカルに保存するMishunovのアプローチをご覧いただけます。

調査とサポート

  • テスト用ソースコードの生成: シニア開発者アドボケートのMichael FriedrichはGitLab Duoを用いて、CI/CDのコンポーネントに使用するテストソースコードを生成しています。このアプローチは、先日開催されたOpen Source @ Siemens(公開スライド)を含むさまざまなトークイベントやプレゼンで紹介されています。このようにGitLab Duoを活用することで、コードの一貫性の確保や正確なドキュメント作成を実施できるほか、GitLabのベストプラクティスに沿って作業を進められます。Rustの例をご覧ください。

Rustの例

  • 調査タスクの合理化: GitLabのチームメンバーはGitLabの機能に関する質問は必ずGitLab Duoチャットで尋ね、調査およびサポートタスクの負担を軽減しています。Friedrichは「GitLabの機能についてわからないことがあったら、ブラウザのタブを次々と開いて調べるする前に、まずはチャットに頼ります。このワークフローにより、コミュニティフォーラムでのユーザー支援をより効率よく実施できるようになりました。たとえば、先日、実際にこの方法を使ってSSHのデプロイに関するユーザーからの質問に回答しました」と述べています。チャットの活用は、時短につながるだけではなく、正確な情報を速く伝えられるようになり、コミュニティサポートの取り組みを底上げできます。

機能テスト

  • 新しい機能のテスト: GitLabのエンジニアはコード提案におけるMarkdownへのサポートなどGitLab Duoを使って新機能のテストを実施しています。あるチームメンバーは「コード提案でのMarkdownのサポートをテストして、ブログの記事とVS CodeでGitLabのドキュメントを作成します。17.0に統合されていたことを知っていたからです」と述べています。GitLabでは、これらの機能をリリース前に社内でテストし、当社の品質基準を確実に満たす取り組みを行っています。

外部のコードベースを理解

  • 外部のプロジェクトの説明: GitLab Duoの/explain機能はGitLabにインポートされた外部のプロジェクトを理解する際にとりわけ有効です。この機能は、オープンソースエキスパートのEddie Jaoude氏を招いて先日行った配信イベントでも紹介しました。Michael Friedrichは「外部のプロジェクトでは/explainを使ってソースコードの理解を深めています。配信中に、オープンソースプロジェクトや依存などについて学ぶアイデアとしてこの方法を推奨しました」と指摘しています。 これは、不慣れなコードベースの機能や依存性を速やかに理解する必要がある開発者にとって欠かせない機能であり、効率の向上を導くだけでなく、正確にコードを理解できるようになる利点があります。
Eddie Jaoude氏を招いた配信イベントでFriedrichが実施した`/explain`のデモをご覧ください。

GitLab Duoを使用するメリット

GitLab Duoのインテグレーションは、多くのポジティブなインパクトをもたらしており、以下のようにGitLabのエンジニアリングと製品開発ワークフローを大きく改善しました。

  • 以前は手作業が必要だった多くのタスクを自動化できたため、エンジニアが貴重な時間を他のタスクに充てられるようになりました。たとえば、長いスレッドの要約やボイラープレートコードの作成の効率が高まり、チームはより複雑な課題に集中できるようになっています。
  • イシューのドキュメントや要約に費やす時間を短縮し、情報の伝達と意思決定をより速く行えるようになりました。
  • AIアシストのコードの提案と説明を活用することで、チームはより質の高いコードを作成し、さらにエラー数の削減とデバッグプロセスのスピードアップを達成しました。GitLab Duoをインシデントレビューとコーディング支援に導入した結果、コードレビューの取り組みをより効果的・効率的に進められるようなりました。
  • OKRの下書きやリリースノートの作成などの管理タスクを合理化できました。

ご覧のようにGitLab Duoは、効率向上のほか、開発プロセスのスピードアップにも貢献しており、ソフトウェア開発にイノベーションをもたらすAIの能力を遺憾なく発揮しています。

今後の取り組み

GitLabはAIのワークフローへの導入を今後も積極的に行い、社内のフィードバックとニーズの変化に応じてGitLab Duoの機能を継続的に改善していきます。また、AIインパクト分析ダッシュボードをとおしてユースケースとメトリクスの収集を進めており、GitLab Duoの強化に加えて、AIを活用した開発ツールをリードする取り組みに役立てています。

Duoへのドッグフーディング - AI分析ダッシュボード

監修:佐々木直晴 @naosasaki (GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト)

GitLab Duoの無料トライアルをご利用ください

「GitLab Duo開発の現場から」シリーズをもっと読む

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成して、ご意見をお聞かせください。 フィードバックをお寄せください

始めてみましょう

統合されたDevSecOpsプラットフォームによって、チームで何が実現できるかご確認ください。

無料トライアルを開始する

チームに最適なプランを見つけましょう

価格設定を見る

GitLabがチームにもたらすメリットをご覧ください

お問い合わせ