Duo Chat グループ

私たちは GitLab のプラットフォームに対する AI 自然言語インターフェースを構築することで、DevSecOps の生産性を高めることに尽力しています。

🚀 チームメンバー

エンジニアリングマネージャーとエンジニア

チームメンバー情報は 原文 (英語) を参照してください。

プロダクト、デザイン、品質

チームメンバー情報は 原文 (英語) を参照してください。

ビジョン

Duo Chat グループは、他のプロダクトグループや広いコミュニティがより多くの機能を統合できるよう支援することで、GitLab Duo Chat をプラットフォームとして開発することに注力しています。プロダクトカテゴリとしての GitLab の Duo Chat の詳細は、Product Category Direction ページを参照してください。

技術戦略

私たちのチームは GitLab の DevSecOps プラットフォーム内の対話を強化する LLM 駆動のチャットアプリケーションを開発しているため、技術戦略は信頼性、スケーラビリティ、効果性を確保する重要なエンジニアリング側面の確立に焦点を当てています。これをガイドラインとツールを通じて公開し、コントリビュートするチームが恩恵を受けられるようにします。詳細は Technical Strategy ページを参照してください。

📚 内部プロセス

ホストシステム

ホストシステムとは、DuoChat が統合されているプラットフォームのことです。以下は現在存在するすべてのホストシステムのリストです。

ホストシステム説明リポジトリリンク
GitLab Web UIDuoChat 用の Web ベースのユーザーインターフェースhttps://gitlab.com/gitlab-org/gitlab
VS CodeDuoChat を統合する Visual Studio Code 拡張機能https://gitlab.com/gitlab-org/gitlab
Visual StudioDuoChat を統合する Visual Studio 拡張機能https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp
JetBrainsDuoChat の JetBrains IDE プラグインhttps://gitlab.com/gitlab-org/editor-extensions/gitlab-jetbrains-plugin

DuoChat 統合のオーナーシップとメンテナンス

これは DuoChat 統合に関するオーナーシップとメンテナンスの責任を定義し、DuoChat チームと Editor Extensions チームの役割を詳述しています。

システム部分担当グループ
Duo-UI 内の共有 UI コンポーネントgroup: duo chat
VS Code - Chat Webviewgroup: duo chat(サポート: editor extensions)
VS Code - Chat ビジネスロジックgroup: editor extensions
Visual Studio - Chat Webview(Web ページ)group: duo chat(サポート: editor extensions)
Visual Studio - Chat ビジネスロジックgroup: editor extensions
JetBrains - Chat Webview(Web ページ)group: duo chat(サポート: editor extensions)
JetBrains - Chat ビジネスロジックgroup: editor extensions

責任

  1. シンプルなコンポーネント更新: UI コンポーネントグループ(group: duo chat)が責任を持ちます。
  2. 複雑な機能統合: UI コンポーネントグループ(group: duo chat)が統合を主導し、ダミーデータを使った拡張機能との通信用スタブを作成します。group: editor extensions が IDE プラグインへの統合作業をサポートします。
  3. 破壊的変更: すべての破壊的変更は早めに伝達するべきです。IDE 拡張機能のワークフローへの混乱を防ぐため、可能な限り新機能をオプションにすることを検討してください。

ツール

UX レビュー

  • Duo Chat には専任の UX 担当者がいないため、AI Framework チームの UX エキスパートが UX レビューを支援します。
  • 各 MR には明確なスクリーンキャストを含めることを推奨します。レビュアーはローカルで変更を再現するか、それが難しい場合は同期で集まって効果的にコラボレーションすることを検討してください。
  • キャパシティが許す限り、すべてのユーザー向け MR について UX レビューを目指します。可用性に変更がある場合は MR 上で伝達されます。

プランニングプロセス

このフローチャートは Duo Chat チームのプランニングプロセスを示しています。

Duo Chat Planning Flowchart

チャートの上部は、正式なマイルストーンプランニングの前に行うことを示しています。これらの事前計画活動は、新しい Issue が作成されるにつれて、継続的に進めていくべきです。

図の下部は、暦月の最初の 2 週間に発生することを示しており、その期間にマイルストーンの Issue を正式に追加し、全体的な負荷を評価して、Deliverable にコミットします。

プランニングブレークダウン ステップでは、ウェイトを割り当てる前にエンジニアが回答できるべき質問は次のとおりです。

  • 要件は明確で具体的であり、何を提供することが期待されているかを完全に理解できているか?
  • 要件は包括的で、実行のあまり明らかでない経路(つまりエッジケース、パッケージング、エラーハンドリングなど「ハッピーパス」以外)の一部をカバーしているか?
  • 非機能要件に関する考慮事項は考慮されているか? すなわちスケーラビリティ、アクセシビリティ、コンプライアンス、セキュリティ、計装など。
  • 品質期待値および/または評価のレベルに関する要件は明確で理解されているか?
  • Issue の合理的な見積もりを提供できるような技術実装への道筋が見えるか? すなわち、追加の技術調査スパイクなしで、すべての技術的不明点が解決されているか管理可能か?

これらの質問のいずれかに「いいえ」と答えるなら、Issue は ~workflow::refinement に戻すべきです。

Issue 見積もり

このシステムは、以前の Foundations チームのウェイトシステムから インスピレーション を得て、タスクを見積もる際に使用すべきものです。

  • 0 - ほとんど、または全く労力を必要としない Issue を作成するよりも実行する方が早いもの。
  • 1 - 極小 エンジニアがほとんどの要件を理解していると感じ、比較的簡単であると考えるもの。おそらくマイルストーン内で最小の項目で、1 日で完了する可能性が最も高い。
  • 2 - 小 少しの考察、労力、または問題解決が必要だが、エンジニアは要件に確信を持っている。
  • 3 - 平均 エンジニアはこれを何度もやってきており、何をすべきか知っている。いくつかの追加ステップがあるかもしれないが、それだけ。
  • 5 - 大 これは複雑な作業であるか、エンジニアがあまり頻繁にやらない作業。ほとんどのエンジニアはチームの誰かからの支援が必要になる。これはおそらくマイルストーン内で完了できる最大の項目の 1 つ。
  • 8 - 特大 これにはかなりの時間と研究が必要で、マイルストーン内で完了するためにはおそらく複数のエンジニアが必要。このサイズでは、より小さな Issue/タスクに分割する方法を検討すべき。
  • 13+ - 大きすぎる この Issue はあまりに複雑、大きい、または定義不足。このサイズのウェイトを持つものは、リファインしてより扱いやすいチャンクに分割するため ~workflow::refinement に戻すべき。

Duo Chat のトラブルシューティング

Duo Chat の Issue をトラブルシューティングするための包括的なランブックは、Duo Chat Runbook ページ で見つけられます。

ギャップに気付いた場合は、Duo Chat グループに気軽に連絡するか、ランブックへの変更を含む MR を作成してください。

Duo Chat にサポートを求める方法

他の GitLab 機能と同様、サポートの第一線は GitLab サポートチームと Zendesk チケットにアサインされたエンジニアであるべきです。しかし、より深い専門性が顧客の懸念を解決するために必要な場合があり、Duo Chat エンジニアの関与が必要になります。このセクションでは、Duo Chat に関連する顧客サポート Issue について、チームにサポートを依頼するときのプロセスと期待を説明します。

ヘルプを求める前に

サポートに連絡する前に、まずあなたの問い合わせが Duo Chat の動作とサポートされている機能および/または要件に関連しているかどうかを検討してください。その場合は、Duo Chat の ドキュメント をレビューしてください。

ユーザーから報告された特定のエラーコードがある場合は、トラブルシューティングページ もレビューできます。

顧客から報告された問題を調査しているサポートエンジニアの場合は、開発チームに連絡する前に Duo Chat Runbook を確認してください。これにより、ヘルプを求めた際に Duo Chat エンジニアがあなたをよりよくサポートできます。

一般的な質問をする

答えが見つからない一般的な質問がある場合は、Slack の #g_duo_chat チャンネルで気軽に質問してください。このチャンネルには、Duo Chat の使い方と機能について幅広い知識を持つ多数のステークホルダーがいます。

Duo Chat エンジニアはこのチャンネルを定期的にモニタリングしてサポートを提供しています。エンジニアはあなたをサポートし、思いつく範囲で質問に答えるよう最善を尽くしますが、より多くの調査が必要だったり、より複雑なシナリオに対処する必要がある場合は、Duo Chat サポート Issue を作成する必要があります(次のセクションを参照)。

バグの提出

あなたのリクエストが実際にソフトウェアバグに関するものかを検討してください。バグとは、Duo Chat がサポートする機能のギャップであり、機能仕様に従ってユーザーエクスペリエンスを完成させるために対処すべきものです。この場合、サポート Issue を作成する代わりに、/gitlab プロジェクトで「bug」タイプの Issue を作成してください。問題を再現するためのすべての詳細を提供し、グループラベルを Duo Chat にアサインしてください。トリアージのため EM と PM にメンションしてもよいです。トリアージされたバグは、その重大度とチームの他の優先度に応じて、解決のために対応する将来のイテレーションにアサインされます。

サポートリクエスト Issue の作成

私たちは、顧客やそのプロキシが Duo Chat チームから支援を必要とし、それが単純な質問に答える以上の場合に Issue を使用することを好みます。これは作業を優先順位付けし、Slack の保持ポリシーが期限切れになったときに履歴を失わずコンテキストを維持するのに役立ちます。これらのリクエストは Duo Chat Support プロジェクト で作成されます。

Duo Chat エンジニアは Slack ワークフロー自動化を活用して Issue の作成を支援できます。Slack スレッドがサポート Issue(つまり単なる一般的な質問ではない)と判断されると、エンジニアは会話をサポートリクエストに移動するよう提案し、Slack スレッドから Issue のドラフトを作成します。ヘルプを求めている個人はその後、Zendesk リンク、ログファイル、その他の問題や質問に関する補足証拠などの詳細を追加できます。

または、複雑なリクエストがあることが分かっている場合は、直接 Issue を開いて時間を節約し、Slack でリンクと共にチームにメンションすることもできます。 リクエストに優先度ラベルをアサインすることもできます。Duo Chat チームメンバーまたは PM が Issue のトリアージ中にこの優先度割り当てをレビューします。優先度レベルと予想される応答時間の参考として、以下の表を使用してください。

優先度通常の用途予想される解決
P4Slack 上で Duo Chat エンジニアが思いつく範囲では簡単に答えられず、もう少し調査が必要な一般的な質問。緊急ではない顧客の問題(つまり簡単な回避策がある、非常にニッチ、または断続的に発生する)1 週間以内
P3広範囲ではないがエスカレーションされた顧客の問題(つまりキー顧客や重要なビジネス機会に紐づく)72 時間以内
P2時間的に重要で、回避策がなく、持続的な顧客の問題。さらに、その問題が顧客側で意思決定や進捗を大きくブロックしている。36 時間以内
P1Duo Chat の障害(SaaS または SM)できるだけ早く

* サポート対応時間は、チームメンバーがいるタイムゾーン(AMER、EMEA、APAC)の通常の営業時間内(祝日を除く平日)でのチームメンバーの可用性に基づきます。通常のチームメンバーの可用性外の障害やその他の緊急事項は、GitLab の インシデント管理 プロセスを通じて対処されるべきです。

サポートエンジニアのペアリング

Duo Chat エンジニアはより複雑な顧客サポート Issue の一部を効果的に対処するためにユニークな立場にありますが、すべてのリクエストに GitLab サポートエンジニアが関与することが重要です。これにより、彼らはこの種類の問題に慣れ、デバッグして解決する方法について学習する機会を得られます。

このため、サポートエンジニアは Duo Chat サポート Issue にアサインされるべきです。彼らは Duo Chat エンジニアに従って協力し、解決に至ることが期待されます。サポートエンジニアの関与は、顧客の必要なコンテキストを提供し、顧客のステークホルダーとのステータス更新やコミュニケーションを処理する上でも非常に価値があります。

🔗 その他の有用なリンク

📝 ダッシュボード(社内のみ)


Duo Chat の技術戦略 -
Duo Chat グループの技術戦略の柱を詳述します