運営原則

AI エンジニアリンググループの運営原則です。これらの原則は、長期的な保守性を犠牲にすることなく、タイトな期日のもとで信頼できる機能を提供するために、私たちがどのように協働するかを定義しています。

目的

新機能をタイムリーに実装しながら、DAP コードベースの安定性、予測可能性、品質を改善することです。これらの原則は、長期的な保守性を犠牲にすることなく、タイトな期日のもとで信頼できる機能を提供するために、私たちがどのように協働するかを定義しています。

運営原則の短い要約
  1. レビューとマージ規律

    • すべての MR は関連分野から2人のレビュアーを得ます。S1 レベルの状況を除き、シングルレビューマージは行いません。
  2. 思い込みより品質

    • 何かが間違っているまたは不明瞭に見えたら、止まって質問する。黙って大丈夫だろうと仮定するのではなく、助けを求めます。
  3. テストカバレッジの徹底

    • カバレッジジョブは FE と BE の変更で必ずパスする必要があります。例外なし。
  4. レビュアープロセス中の圧力禁止

    • レビュープロセスが始まったら、「これ ASAP で必要」とレビュアーを急かしたり促したりしないでください。期日が守れない場合は、レビュー品質を下げるのではなくエスカレーションしてください。
  5. スピードから安定性へのシフト

    • 急ぐことから安定性へシフトします。小さく、クリーンで、最小限の変更が、大きくリスクのある変更に勝ります。
  6. リスクの早期シグナル

    • 遅延、スコープクリープ、不明瞭な要件、ブロッカーを見つけたらすぐに提起します。
  7. 厳格な AI 支援コーディング規律

    • AI はヘルパーであり権威ではありません。実装をシンプルに保ちます。マージするすべての行を理解します。
  8. 高帯域コミュニケーション

    • 複雑さを予見した、レビューできない、改善する価値があると感じたら、すぐに声を上げます。
  9. 後方互換性

    • AI ゲートウェイやエディター拡張機能など、GitLab インスタンス外の変更も、引き続き後方互換性ガイドラインに従う必要があります。

原則

  1. レビューとマージ規律

    • コードが安定化したと見なされる(別途評価対象)まで、すべてのマージリクエストは関連分野(BE または FE)から少なくとも2人のレビュアーを必要とします。
    • 高重大度(S1)修正として明示的に承認された場合を除き、シングルレビューマージは行いません。すべての MR は、その MR の主要な機能分野(フロントエンドおよび/またはバックエンド)について2つの承認を得る必要があります。例:
      • MR がフロントエンドと UX の両方のレビューを必要とする場合、フロントエンドレビュー2件と UX レビュー1件が期待されます(プロダクトデザイナーを含むチームの MR の場合
      • MR がバックエンドとフロントエンドの両方のレビューを必要とする場合、フロントエンドレビュー2件とバックエンドレビュー2件が期待されます
  2. 思い込みより品質

    • MR の中で何かが正しくない、不明瞭、または疑わしく見える場合は、立ち止まってエスカレーションしてください。疑問があれば質問し、スレッドを始めるか、主要なプロダクトまたはエンジニアリングのステークホルダーを会話に巻き込みます。
    • 完全に理解できない、または擁護できないコードを決してマージしないでください。
    • レビューするコードは常にローカルでテストし、後から変更があった場合は再度テストします。
  3. テストカバレッジの徹底

    • カバレッジジョブはすべての MR で実行されなければなりません。
  4. レビュアープロセス中の圧力禁止

    • レビュアーがレビューを開始した後、「早くレビューして」「ASAP でマージして」「とにかく承認して進められるように」とレビュアーに圧力をかけないでください。
    • 時間的圧力はレビュー品質を下げる正当化には決してなりません。
    • タイムラインが本当に守れない場合は、個々のレビュアーにその圧力をかけるのではなく、テクニカルリーダーシップやエンジニアリングマネジメントを通じてエスカレーションしてください。
    • レビューは明確さ、安全性、正しさを保つペースで行われなければなりません。
    • ただし、私たちのドキュメントで定義されているように、適時にレビューが開始されていない場合に、アサインされたレビュアー/メンテナーを促すことは許容されます。
  5. スピードから安定性へのシフト

    • 初期フェーズでは出荷量を優先しました。
    • 今後は、堅牢性、明確性、正しさが優先事項です。
    • 「Less is more」が当てはまります: 小さく、フォーカスが明確で、信頼性のある変更は、広範でリスクのある変更よりも優れています。
  6. リスクの早期シグナル

    • リスクが現れたらすぐに伝えます:
      • 遅延
      • スコープクリープ
      • 不明瞭な要件
      • 進捗をブロックする依存関係
    • 不確実性を早期に表面化することで、後で複合的な失敗が起きるのを防ぎます。
  7. 厳格な AI 支援コーディング規律

    • AI はツールであり権威ではありません。
    • AI をコードに使用する場合:
    • 簡潔で明示的なシンプルな実装を求めます。
    • 生成されたすべての行を検証します。
    • 不明瞭または魔法のようなロジックを問いただします。
    • 自分自身がエンドツーエンドで理解し、合意したものだけをブランチにプッシュします。
  8. 高帯域コミュニケーション

    • タスクの複雑さを予見したら: 声を上げてください。
    • MR を迅速にレビューできない場合: 声を上げてください。
    • 簡略化や改善の機会に気付いた場合: 声を上げてください。
    • 黙った不確実性は、間違った初期仮定よりも有害です。
  9. 後方互換性

    • AI ゲートウェイやエディター拡張機能など、GitLab インスタンス外の変更は、引き続き GA 機能向けの一般的な 後方互換性ガイドライン に準拠する必要があります
    • ベータ機能は、少なくとも GitLab の直近3つのマイナーバージョンと後方互換性がなければなりません
    • 疑問がある場合は、自己管理インスタンスの古いバージョンで、変更が後方互換性を破壊しないことを検証してください。専用インスタンスへのアクセスは こちら から取得できます。