生成系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を使って長いコメントスレッドを要約し、問題の説明を更新しても重要な情報が洩れることがないように工夫しています。
-
ドキュメントを新規作成: データサイエンスセクションの製品部門グループマネージャーを務めるTaylor McCaslinは、GitLab Duoを用いてGitLab Duo用の新規ドキュメントを作成し、情報の明確化と一貫性の確保、および新機能のドキュメンテーションに費やす時間の大幅な短縮を実現しています。
-
リリースノートを作成: 製品企画部門でシニア製品マネージャーを務めるAmanda RuedaはGitLab Duoをとおして、リリースノートに使用する簡潔で有益な要約を作成し、変更点やその価値をユーザーに説明しています。以下のような効果的なプロンプトを作成することで、Ruedaはワークフローを強化し、各リリースノートがわかりやすく、簡潔で、ユーザー視線で書かれていることを裏付けています。その結果、コミュニケーション全般とユーザー体験の向上につながっています。
「この変更を2つの文で要約してください。リリースノートに使用します。会話のようなトーンで、二人称を使います。要約には問題や変更の説明を盛り込み、当社が、あなた、つまりユーザーにもたらす価値と関連付けてください」- 以下に、GitLab Duoと共同で作成したリリースノートの例を挙げます。
-
サイトナビゲーションのドキュメンテーションを最適化: スタッフテクニカルライターのSuzanne SelhornはGitLab Duoを使ってページの順番をワークフローベースに並び替え、ドキュメンテーションの左側のナビゲーションを最適化しています。Selhornは機能の一覧をGitLab Duoに与えることで、適切な順番を生成し、その順番に合うように左側のナビゲーションを更新しました。また、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チャットはアイデアを提案してくれる頼りになるパートナーです。さらに、このコードを説明機能のおかげで、インシデント発生時に詳細かつ有益な回答を得ることができ、生産性の向上とコードベースの正確な理解につながっています。
コードの生成とテスト
-
フルスタック開発: シニアフロントエンドエンジニアのPeter Hegmanはコード提案機能をJavaScriptとRubyによる開発に応用しており、フルテクニカルスタック全体において開発者にとって欠かせないツールとして、AIの存在価値を示しています。
-
Pythonのスクリプトを生成 Denys MishunovはGitLab DuoをGitLab以外のタスクに使用する実験を行いました。この実験は、一般的なソフトウェア開発のタスクに留まらないGitLabのAIツールならではの柔軟性と利便性を証明しています。
リサーチとサポート
- テスト用ソースコードを生成: シニア開発者アドボケートのMichael FriedrichはGitLab Duoを用いて、CI/COのコンポーネントに使用するテストソースコードを生成しています。このアプローチは、先日開催されたOpen Source @ Siemens(公開スライド)を含むさまざまなトークイベントやプレゼンで紹介されています。このようにGitLab Duoを活用することで、一貫性の確保や正確なドキュメント作成を実施できるほか、GitLabのベストプラクティスに沿って作業を進められます。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
を使ってソースコードの理解を深めています。配信中に、オープンソースプロジェクトや依存などについて学ぶアイデアとしてこの方法を推奨しました」と指摘しています。 これは、不慣れなコードベースの機能や依存を速やかに理解する必要がある開発者にとって欠かせない機能であり、効率の向上を導くだけでなく、正確にコードを理解できるようになる利点があります。
GitLab Duoを使用するメリット
GitLab Duoのインテグレーションは、多くのポジティブなインパクトをもたらしており、以下のようにGitLabのエンジニアリングと製品開発ワークフローを大きく改善しました。
- 以前は手作業が必要だった多くのタスクを自動化できたため、エンジニアが貴重な時間を他のタスクに充てられるようになりました。たとえば、長いスレッドの要約やボイラープレートコードの作成の効率が高まり、チームはより複雑な課題に集中できるようになっています。
- イシューのドキュメンテーションや要約に費やす時間を短縮し、情報の伝達と意思決定をより速く行えるようになりました。
- AIアシストのコードの提案と説明を活用することで、GitLabのチームはより質の高いコードを作成し、さらにエラー数の削減とデバッグプロセスのスピードアップを達成しました。GitLab Duoをインシデントレビューとコーディング支援に導入した結果、コードレビューの取り組みをより効果的・効率的に進められるようなりました。
- OKRの下書きやリリースノートの作成などの管理タスクを合理化できました。
ご覧のようにGitLab Duoは、効率向上のほか、開発プロセスのスピードアップにも貢献しており、ソフトウェア開発にイノベーションをもたらすAIの能力を遺憾なく発揮しています。
今後の取り組み
GitLabはAIのワークフローへの導入を今後も積極的に行い、社内のフィードバックとニーズの変化に応じてGitLab Duoの機能を継続的に改善していきます。また、AIインパクト分析ダッシュボードをとおしてユースケースとメトリクスの収集を進めており、GitLab Duoの強化に加えて、AIを活用した開発ツールをリードする取り組みに役立てています。