Release Gate (G6)

Bevor ein Flugzeug abheben darf, gibt es eine finale Freigabe vom Tower. Das Release Gate ist genau das - die letzte Prüfung, bevor Code in Produktion geht. Hier gibt es keine Kompromisse.

Die letzte Verteidigungslinie

Das Release Gate (G6) ist das strengste Gate im Prozess. Es kombiniert alle vorherigen Prüfungen mit zusätzlichen Release-spezifischen Checks: Ist das Deployment-Skript getestet? Gibt es einen Rollback-Plan? Sind alle Stakeholder informiert?

Vollständiges Beispiel

# Gate: G6_RELEASE
# Position: Nach Phase 10 (Release Planning), vor Phase 11 (Deployment)

gate:
  id: "G6_RELEASE"
  name: "Release Gate"
  description: "Finale Freigabe vor dem Deployment"
  position:
    after_phase: 10  # Release Planning
    before_phase: 11  # Deployment

  # Prädikate
  predicates:
    required:
      - id: "all_tests_passed"
        description: "Alle Tests (Unit, Integration, E2E) bestanden"
        severity: "critical"

      - id: "is_security_reviewed"
        description: "Security Review abgeschlossen"
        severity: "critical"

      - id: "has_staging_validation"
        description: "Auf Staging validiert"
        severity: "critical"

      - id: "has_rollback_plan"
        description: "Rollback-Plan dokumentiert"
        severity: "critical"

      - id: "has_release_notes"
        description: "Release Notes erstellt"
        severity: "high"

    conditional:
      - id: "has_performance_baseline"
        condition: "change_class == 'critical'"

      - id: "has_stakeholder_approval"
        condition: "change_class IN ('normal', 'critical')"

      - id: "has_compliance_signoff"
        condition: "affects_pii OR affects_payment"

  # Manuelle Approvals
  approvals_required:
    - role: "tech_lead"
      required: true

    - role: "product_owner"
      required_for:
        - change_class: "normal"
        - change_class: "critical"

    - role: "security_team"
      required_for:
        - change_class: "critical"

  # Release-Checks
  release_checks:
    - name: "Staging Smoke Tests"
      environment: "staging"
      command: "npm run test:smoke"

    - name: "Database Migration Dry-Run"
      command: "php artisan migrate --pretend"

    - name: "Dependency Audit"
      command: "composer audit && npm audit"

  decision:
    pass_condition: "ALL predicates PASS AND ALL required approvals obtained"

    on_pass:
      action: "create_release"
      tag_version: true
      notify: ["team-channel", "stakeholders"]

    on_fail:
      action: "block_release"
      escalate_to: "tech_lead"

Gate-Prüfung in der Praxis

# Gate-Prüfung G6_RELEASE
gate_check:
  gate_id: "G6_RELEASE"
  change_id: "CHG-2024-0050"
  change_class: "critical"
  release_version: "2.4.0"
  checked_at: "2024-01-15T20:00:00Z"

  predicate_results:
    - predicate_id: "all_tests_passed"
      passed: true
      details:
        unit: "312/312 passed"
        integration: "58/58 passed"
        e2e: "23/23 passed"

    - predicate_id: "is_security_reviewed"
      passed: true
      details:
        reviewer: "security-team"
        approved_at: "2024-01-15T18:00:00Z"
        sast_findings: 0
        dependency_vulnerabilities: 0

    - predicate_id: "has_staging_validation"
      passed: true
      details:
        deployed_at: "2024-01-15T19:00:00Z"
        smoke_tests: "passed"
        manual_validation: "completed"

    - predicate_id: "has_rollback_plan"
      passed: true
      details:
        document: "docs/rollback/v2.4.0.md"
        tested: true
        estimated_time: "< 5 minutes"

    - predicate_id: "has_performance_baseline"
      passed: true
      details:
        p95_latency: "< 200ms"
        throughput: "1000 rps"
        comparison: "within 5% of baseline"

  approval_results:
    - role: "tech_lead"
      approved: true
      by: "bob@example.com"
      at: "2024-01-15T19:30:00Z"

    - role: "product_owner"
      approved: true
      by: "alice@example.com"
      at: "2024-01-15T19:45:00Z"

    - role: "security_team"
      approved: true
      by: "security@example.com"
      at: "2024-01-15T18:00:00Z"

  verdict: "PASS"
  release_created: "v2.4.0"
  deployment_authorized: true

Warum ist das wichtig?

Das Release Gate ist die finale Absicherung. Ein Fehler hier kann Millionen kosten, Kunden verlieren oder Sicherheitslücken in Produktion bringen. Deshalb ist dieses Gate besonders streng und erfordert mehrere unabhängige Freigaben.

Im Mensch + KI-Code Prozess: Das Release Gate (G6) ist für alle Change Classes obligatorisch. Bei "Critical" sind zusätzliche Approvals von Security-Team und Stakeholdern erforderlich. Das Gate kann nicht übersprungen werden.