9 min read • Guide 822 of 877
Platform Team Patterns
Platforms enable teams. GitScrum helps platform teams track their work and measure the impact of their internal products on delivery speed.
Platform Team Fundamentals
What Platform Teams Do
PLATFORM TEAM PURPOSE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ MISSION: │
│ ──────── │
│ Enable stream-aligned teams to deliver faster │
│ by providing self-service platform capabilities │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ WHAT PLATFORM TEAMS BUILD: │
│ ────────────────────────── │
│ │
│ INTERNAL DEVELOPER PLATFORM (IDP): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ ┌───────────────────────────────────────────────────┐ ││
│ │ │ SELF-SERVICE PORTAL │ ││
│ │ │ • Create new service │ ││
│ │ │ • Deploy to environment │ ││
│ │ │ • Provision database │ ││
│ │ │ • View service health │ ││
│ │ └───────────────────────────────────────────────────┘ ││
│ │ │ ││
│ │ ▼ ││
│ │ ┌───────────────────────────────────────────────────┐ ││
│ │ │ PLATFORM CAPABILITIES │ ││
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ ││
│ │ │ │ CI/CD │ │ Infra │ │ Monitor │ │ ││
│ │ │ │ Pipelines│ │Provision │ │ /Observe │ │ ││
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ ││
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ ││
│ │ │ │ Security │ │ Data │ │ Service │ │ ││
│ │ │ │ Scanning │ │ Platform │ │ Mesh │ │ ││
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ ││
│ │ └───────────────────────────────────────────────────┘ ││
│ │ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ KEY PRINCIPLE: │
│ ────────────── │
│ Teams can use the platform WITHOUT asking the platform │
│ team for help. That's self-service. │
└─────────────────────────────────────────────────────────────┘
Product Mindset
Platform as Product
TREAT PLATFORM AS A PRODUCT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ YOUR CUSTOMERS = Other development teams │
│ │
│ PRODUCT THINKING: │
│ ───────────────── │
│ │
│ UNDERSTAND USERS: │
│ • Talk to development teams │
│ • Understand their pain points │
│ • Watch them use your platform │
│ • Collect feedback continuously │
│ │
│ PRIORITIZE: │
│ • What problems cause most friction? │
│ • What would save most time? │
│ • What do teams ask for repeatedly? │
│ │
│ ITERATE: │
│ • Start simple, improve based on feedback │
│ • Don't over-engineer │
│ • Release early, release often │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ PLATFORM BACKLOG: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PLATFORM TEAM BACKLOG ││
│ │ ││
│ │ PRIORITY ITEM REQUESTER ││
│ │ ──────── ──── ───────── ││
│ │ P1 One-click deploys (5 teams) ││
│ │ P1 Database provisioning (4 teams) ││
│ │ P2 Centralized logging (3 teams) ││
│ │ P2 Secrets management (2 teams) ││
│ │ P3 Feature flags service (1 team) ││
│ │ ││
│ │ PRIORITIZE BY: Customer demand + Strategic value ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ NOT A TICKET QUEUE: │
│ ─────────────────── │
│ Platform team decides WHAT to build │
│ Not just fulfilling requests │
│ Think strategically about capabilities │
└─────────────────────────────────────────────────────────────┘
Self-Service Design
Enable, Don't Block
SELF-SERVICE PRINCIPLES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BEFORE (Blocking): │
│ ────────────────── │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Dev Team: "I need a new database" ││
│ │ Platform: (Files ticket) ││
│ │ Dev Team: (Waits 3 days) ││
│ │ Platform: "Here's your database" ││
│ │ ││
│ │ PLATFORM TEAM = BOTTLENECK ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AFTER (Self-Service): │
│ ───────────────────── │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Dev Team: "I need a new database" ││
│ │ (Uses platform portal) ││
│ │ [Select: PostgreSQL, Size: Medium] ││
│ │ [Create Database] ││
│ │ Platform: (Automatic provisioning) ││
│ │ Dev Team: (Has database in 5 minutes) ││
│ │ ││
│ │ PLATFORM TEAM = ENABLER ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SELF-SERVICE CAPABILITIES: │
│ │
│ COMMON PLATFORM FEATURES: │
│ • Create new service from template │
│ • Deploy to any environment │
│ • Provision database/cache/queue │
│ • Configure monitoring/alerts │
│ • Manage secrets │
│ • View logs │
│ • Rollback deployment │
│ │
│ GUARDRAILS, NOT GATES: │
│ ────────────────────── │
│ • Security scanning automatic │
│ • Compliance built-in │
│ • Cost visibility │
│ • Best practices baked into templates │
│ │
│ Teams can move fast AND stay safe │
└─────────────────────────────────────────────────────────────┘
Platform Metrics
Measuring Success
PLATFORM TEAM METRICS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ADOPTION METRICS: │
│ ───────────────── │
│ How many teams use the platform? │
│ │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PLATFORM ADOPTION ││
│ │ ││
│ │ Teams using platform: 12/15 (80%) ││
│ │ ││
│ │ BY CAPABILITY: ││
│ │ • CI/CD Pipeline: 15/15 (100%) ████████████████ ││
│ │ • Service Templates: 12/15 (80%) █████████████ ││
│ │ • Observability: 10/15 (67%) ██████████ ││
│ │ • DB Provisioning: 8/15 (53%) ████████ ││
│ │ • Feature Flags: 5/15 (33%) █████ ││
│ │ ││
│ │ Low adoption = Discovery problem or usability issue ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DEVELOPER EXPERIENCE: │
│ ───────────────────── │
│ How happy are teams with the platform? │
│ │
│ • Developer Satisfaction Survey (quarterly) │
│ • Net Promoter Score for platform │
│ • Time to onboard new service │
│ • Time from commit to production │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ORGANIZATIONAL IMPACT: │
│ ────────────────────── │
│ Is the platform making the org faster? │
│ │
│ DORA METRICS (Org-wide): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ BEFORE PLATFORM AFTER PLATFORM IMPROVEMENT ││
│ │ ────────────── ────────────── ─────────── ││
│ │ Deploy: 2/week Deploy: 5/day +1650% ││
│ │ Lead: 2 weeks Lead: 2 days -86% ││
│ │ MTTR: 4 hours MTTR: 30 min -88% ││
│ │ Fail: 15% Fail: 5% -67% ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ PLATFORM ROI: │
│ Teams saved × hours saved per team = Platform value │
└─────────────────────────────────────────────────────────────┘
Team Interaction
Working with Stream Teams
INTERACTION MODES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ X-AS-A-SERVICE (Primary): │
│ ───────────────────────── │
│ Platform provides capability │
│ Teams consume via self-service │
│ Minimal interaction needed │
│ │
│ COLLABORATION (When needed): │
│ ──────────────────────────── │
│ Platform team works WITH stream team │
│ For: new capabilities, complex requirements │
│ Time-limited, specific goal │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SUPPORT MODEL: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PLATFORM SUPPORT ││
│ │ ││
│ │ TIER 1: Documentation (Self-Service) ││
│ │ • Docs site ││
│ │ • Tutorials ││
│ │ • FAQs ││
│ │ Most questions answered here ││
│ │ ││
│ │ TIER 2: Community (Async) ││
│ │ • #platform-help Slack channel ││
│ │ • Answered by platform team or community ││
│ │ • SLA: Response within 4 hours ││
│ │ ││
│ │ TIER 3: Direct Support (When needed) ││
│ │ • Scheduled pairing sessions ││
│ │ • For complex issues ││
│ │ • Office hours (1hr/week) ││
│ │ ││
│ │ ESCALATION: ││
│ │ • Production issues: Immediate ││
│ │ • Blocking issues: Within day ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ GOAL: Minimize direct support through better platform │
│ High support load = Platform usability problem │
└─────────────────────────────────────────────────────────────┘
Building the Platform
Iterative Approach
PLATFORM EVOLUTION:
┌─────────────────────────────────────────────────────────────┐
│ │
│ DON'T BUILD EVERYTHING AT ONCE: │
│ ──────────────────────────────── │
│ │
│ START THIN: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PHASE 1: Foundation (3 months) ││
│ │ • CI/CD pipeline ││
│ │ • Basic deployment ││
│ │ • Core observability ││
│ │ ││
│ │ VALUE: Teams can deploy independently ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ EXPAND BASED ON NEED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PHASE 2: Common Needs (3 months) ││
│ │ • Service templates ││
│ │ • Database provisioning ││
│ │ • Secrets management ││
│ │ ││
│ │ VALUE: Faster service creation ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PHASE 3: Advanced (Ongoing) ││
│ │ • Feature flags ││
│ │ • Canary deployments ││
│ │ • Cost management ││
│ │ ││
│ │ VALUE: Sophisticated delivery capabilities ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ THIN-SLICE APPROACH: │
│ ──────────────────── │
│ Get ONE team using platform end-to-end │
│ Learn from their experience │
│ Improve before scaling to more teams │
│ │
│ AVOID: Building "complete" platform in isolation │
└─────────────────────────────────────────────────────────────┘