ブログ AI/ML GitLab Duoの開発:GitLabにおけるAI機能のドッグフーディングの取り組み
Published on: May 20, 2024
2分で読めます

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

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

gitlab duo - new cover

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

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

ライブデモをご覧いただけるGitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見してください今すぐ登録

##実際のユースケース

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

###要約とドキュメンテーション

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

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

GitLab Duoをコードに関する質問への回答に使用する方法をご覧ください。

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

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

目標の設定とチームの連携

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

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

    目標:レトロスペクティブを徹底してチームを活性化する

    主な成果:レトロスペクティブに関してチームの満足度100%を達成する

    主な成果:非同期レトロスペクティブの改善点を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/COのコンポーネントに使用するテストソースコードを生成しています。このアプローチは、先日開催された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のチームはより質の高いコードを作成し、さらにエラー数の削減とデバッグプロセスのスピードアップを達成しました。GitLab Duoをインシデントレビューとコーディング支援に導入した結果、コードレビューの取り組みをより効果的・効率的に進められるようなりました。
  • OKRの下書きやリリースノートの作成などの管理タスクを合理化できました。

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

今後の取り組み

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

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

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

「GitLab Duoの開発」に関連する記事

ご連絡をお待ちしています

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

ご利用を開始しますか?

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

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

GitLabを初めて利用する方で、どこから始めれば良いかわからないですか?

スタートガイド

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

専門家と話す