更新日:2024年7月10日
1分で読めます
このブログシリーズの記事では、GitLabがどのようにソフトウェア開発ライフサイクル全体にAIを統合しているのか、また、メトリクスを用いてパフォーマンスを測定しているのかを、実例を用いて解説します。
生成系AIは、ソフトウェアの開発、セキュリティ保護、運用のプロセスを簡素化し、ソフトウェア開発業界に大きな変革をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能を、我々はどのように作成、テスト、デプロイしているかを説明しています。をこれは皆様のDevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能をどう利用できるのかを知っていただける内容になっています。
AI機能を集めたGitLab Duoは、当社の社内エンジニアリングワークフローを刷新し、開発プロセス全体の効率化を推進してきました。GitLabはドッグフーディングと透明性を重視しています。そのため、この記事では、当社のチームがコード提案やチャットなどの代表的なGitLab DuoのAI機能を日常的に活用し、開発プロセスの合理化や手作業の削減、生産性の向上を実現しているアプローチについて解説したいと思います。エンジニアリングのような高度な技術を用いるチームから、テクニカルライティングや製品管理など、あまり技術的でないチームまで、当社が得ているメリットについて解説します。
GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見しましょう!【今すぐ視聴する】
GitLabのチームは、GitLab Duoの各種機能を日々のルーチンに組み込んでいます。日常的な仕事を実行する上で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チャットはアイデアを提案してくれる頼りになるパートナーです。さらに、コードの説明機能のおかげで、インシデント発生時に詳細かつ有益な回答を得ることができ、生産性の向上とコードベースの正確な理解につながっています。
フルスタック開発: シニアフロントエンドエンジニアのPeter Hegmanはコードの提案機能をJavaScriptとRubyによる開発に応用しており、フルテクニカルスタック全体において開発者にとって欠かせないツールとして、AIの存在価値を示しています。
Pythonのスクリプトを生成 Denys MishunovはGitLab DuoをGitLab以外のタスクに使用する実験を行いました。この実験は、一般的なソフトウェア開発のタスクに留まらないGitLabのAIツールならではの柔軟性と利便性を証明しています。
/explain
機能はGitLabにインポートされた外部のプロジェクトを理解する際にとりわけ有効です。この機能は、オープンソースエキスパートのEddie Jaoude氏を招いて先日行った配信イベントでも紹介しました。Michael Friedrichは「外部のプロジェクトでは/explain
を使ってソースコードの理解を深めています。配信中に、オープンソースプロジェクトや依存などについて学ぶアイデアとしてこの方法を推奨しました」と指摘しています。 これは、不慣れなコードベースの機能や依存性を速やかに理解する必要がある開発者にとって欠かせない機能であり、効率の向上を導くだけでなく、正確にコードを理解できるようになる利点があります。GitLab Duoのインテグレーションは、多くのポジティブなインパクトをもたらしており、以下のようにGitLabのエンジニアリングと製品開発ワークフローを大きく改善しました。
ご覧のようにGitLab Duoは、効率向上のほか、開発プロセスのスピードアップにも貢献しており、ソフトウェア開発にイノベーションをもたらすAIの能力を遺憾なく発揮しています。
GitLabはAIのワークフローへの導入を今後も積極的に行い、社内のフィードバックとニーズの変化に応じてGitLab Duoの機能を継続的に改善していきます。また、AIインパクト分析ダッシュボードをとおしてユースケースとメトリクスの収集を進めており、GitLab Duoの強化に加えて、AIを活用した開発ツールをリードする取り組みに役立てています。
監修:佐々木直晴 @naosasaki (GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト)