Module 2.1: What is Platform Engineering?
Discipline Module | Complexity:
[MEDIUM]| Time: 35-45 min
Prerequisites
Section titled “Prerequisites”Before starting this module:
- Required: Systems Thinking Track — Understanding complex systems
- Recommended: SRE Discipline — Operations perspective
- Helpful: Experience in a DevOps or infrastructure role
What You’ll Be Able to Do
Section titled “What You’ll Be Able to Do”After completing this module, you will be able to:
- Evaluate your organization’s readiness for platform engineering adoption
- Design a platform team charter that defines scope, boundaries, and success metrics
- Analyze the difference between platform engineering, DevOps, and SRE to position your team correctly
- Build a platform vision document that aligns engineering leadership around shared infrastructure goals
Why This Module Matters
Section titled “Why This Module Matters”You’ve heard the buzzword. “Platform Engineering” is everywhere—conference talks, job postings, vendor pitches. But what actually is it? And why does it matter?
Here’s the uncomfortable truth: DevOps promised developers would own everything. That promise broke many teams.
“You build it, you run it” sounds empowering. In practice, it often means:
- Developers drowning in operational complexity
- Every team reinventing deployment pipelines
- Cognitive load crushing productivity
- Security and compliance becoming everyone’s problem (and therefore nobody’s)
Platform Engineering is the course correction. It’s about building products—internal products—that make developers’ lives better while maintaining organizational guardrails.
After this module, you’ll understand:
- Where Platform Engineering came from
- How it differs from DevOps and infrastructure
- What “platform as a product” really means
- How platform teams should be structured
The Origin Story
Section titled “The Origin Story”DevOps Origins
Section titled “DevOps Origins”Before we can understand Platform Engineering, we need to understand what it evolved from.
The birth of DevOps traces back to Patrick Debois in 2009. Frustrated by the wall between developers and operations, Debois organized the first DevOpsDays conference in Ghent, Belgium. The term “DevOps” — a portmanteau of Development and Operations — stuck, and a movement was born.
In 2013, Gene Kim, Kevin Behr, and George Spafford published “The Phoenix Project”, a novel that dramatized the pain of siloed IT and the transformation DevOps could bring. It became required reading in engineering organizations worldwide and brought DevOps principles to mainstream tech leadership.
The CALMS framework emerged as a way to evaluate DevOps adoption:
| Pillar | Meaning | Example |
|---|---|---|
| Culture | Shared responsibility, blameless collaboration | Joint on-call between dev and ops |
| Automation | Eliminate manual, error-prone processes | CI/CD pipelines, Infrastructure as Code |
| Lean | Reduce waste, small batch sizes, fast feedback | Continuous delivery, WIP limits |
| Measurement | Data-driven decisions (see DORA metrics) | Deployment frequency, lead time tracking |
| Sharing | Knowledge sharing, transparency, feedback loops | Blameless postmortems, internal tech talks |
DevOps was transformative — it broke down silos, accelerated delivery, and introduced practices like CI/CD and Infrastructure as Code that are now industry standard. But as we will see, the “everyone owns everything” philosophy created new problems that Platform Engineering would eventually address.
DevOps: The Promise
Section titled “DevOps: The Promise”In the 2000s, development and operations were separate silos:
┌─────────────────┐ ┌─────────────────┐│ Development │ "Wall" │ Operations ││ │ of │ ││ Write code │ ──────▶ │ Deploy & run ││ Throw over │ Blame │ Fix problems │└─────────────────┘ └─────────────────┘DevOps broke down this wall. Shared responsibility. Continuous delivery. Infrastructure as code. Teams owning their services end-to-end.
The DevOps promise: Faster delivery, better quality, happier teams.
DevOps: The Reality
Section titled “DevOps: The Reality”Fast forward to 2020. DevOps succeeded—maybe too well:
Developer responsibilities (2010):- Write code- Write tests
Developer responsibilities (2020):- Write code- Write tests- Configure CI/CD pipelines- Write Terraform- Manage Kubernetes manifests- Set up monitoring- Configure alerting- Handle incidents- Manage secrets- Deal with networking- Understand security policies- ...The cognitive load problem: Developers became responsible for everything. The “full-stack” expanded to include infrastructure, security, observability, and more.
The Breaking Point
Section titled “The Breaking Point”Research from the DORA team and others showed:
- Developer productivity declined as operational complexity increased
- Lead time increased despite more automation
- Developer satisfaction dropped as context-switching grew
- Security vulnerabilities increased as everyone owned (and nobody owned) security
Something had to change.
The Platform Engineering Response
Section titled “The Platform Engineering Response”Around 2018-2020, a new pattern emerged. Instead of every team building their own tooling, dedicated teams would build internal platforms—curated, self-service capabilities that abstract away complexity.
┌─────────────────────────────────────────────────────────────┐│ Development Teams ││ ││ "I need to deploy" "I need a database" ││ │ │ │└─────────┼───────────────────────┼────────────────────────────┘ │ │ ▼ ▼┌─────────────────────────────────────────────────────────────┐│ Internal Developer Platform ││ ││ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││ │ Deployment │ │ Database │ │ Monitoring │ ││ │ Self-Service │ │ Self-Service │ │ Self-Service │ ... ││ └──────────────┘ └──────────────┘ └──────────────┘ ││ ││ Abstracts: Kubernetes, Terraform, networking, security │└─────────────────────────────────────────────────────────────┘Platform Engineering is the discipline of building these internal platforms.
Try This: Cognitive Load Audit
Section titled “Try This: Cognitive Load Audit”Think about a recent project. List all the technologies and systems a developer had to understand:
Project: _________________
Technologies/systems needed:□ Programming language(s): _________________□ Framework(s): _________________□ CI/CD: _________________□ Container runtime: _________________□ Orchestration: _________________□ Networking: _________________□ Storage: _________________□ Observability: _________________□ Security: _________________□ Cloud provider services: _________________□ Other: _________________
Count: ___
Question: How many of these are *intrinsic* to the problembeing solved vs *extrinsic* complexity from infrastructure?Platform Engineering aims to reduce extrinsic complexity.
Platform as a Product
Section titled “Platform as a Product”The Mindset Shift
Section titled “The Mindset Shift”Traditional infrastructure teams operate as service providers:
- Ticket queues
- Approval workflows
- “We’ll get to it when we can”
- Success = uptime metrics
Platform teams operate as product teams:
- Developer customers
- User research
- Iterative development
- Success = developer adoption and satisfaction
┌─────────────────────────────────────────────────────────────┐│ Infrastructure Team Mindset ││ ││ "We provide infrastructure. Developers submit tickets." ││ ││ Metrics: Uptime, cost, tickets closed ││ Success: Systems running ││ Failure mode: Ticket backlog │└─────────────────────────────────────────────────────────────┘
vs
┌─────────────────────────────────────────────────────────────┐│ Platform Team Mindset ││ ││ "We build products for developers. They're our customers." ││ ││ Metrics: Adoption, satisfaction, time-to-deploy ││ Success: Developers choose our platform ││ Failure mode: Developers work around us │└─────────────────────────────────────────────────────────────┘What “Product” Means
Section titled “What “Product” Means”Treating your platform as a product means:
1. Know Your Customers
Who are your developers?- What do they need to accomplish?- What frustrates them?- What do they wish existed?- How do they prefer to work?2. Provide Self-Service
Good: "Request a database in the UI, get it in 5 minutes"Bad: "Submit a ticket, wait 3 days, attend a meeting"3. Maintain Clear Interfaces
Good: "Here's our API/CLI/portal for deployments"Bad: "Read this 50-page wiki and figure it out"4. Iterate Based on Feedback
Good: Regular user research, usage analytics, feedback loopsBad: Build what you think is cool, hope developers use it5. Market Internally
Good: Documentation, onboarding, training, communityBad: "We built it, they should use it"The Optional Platform
Section titled “The Optional Platform”Here’s the controversial part: Good platforms are optional.
If developers have to use your platform, you’ll never know if it’s actually good. They’re forced customers, not happy customers.
The best platforms win through being genuinely better:
- Faster than doing it yourself
- Easier than DIY
- More reliable
- Better supported
When developers choose your platform over rolling their own, you’ve built something valuable.
Did You Know?
Section titled “Did You Know?”-
The term “Platform Engineering” was popularized around 2020 by Evan Bottcher at Thoughtworks, though the concepts existed earlier. His article “What I Talk About When I Talk About Platforms” is considered foundational.
-
Spotify didn’t call it Platform Engineering when they created Backstage. They were solving their own internal developer experience problems. The industry adopted their solution as a platform engineering tool.
-
Netflix’s “Full Cycle Developers” are often cited as DevOps success. What’s less discussed: they have massive platform teams (like the Spinnaker team) enabling those developers. The platform is invisible but essential.
-
According to Gartner, by 2026, 80% of software engineering organizations will establish platform teams as internal providers of reusable services, components, and tools. This is up from less than 45% in 2022.
War Story: The Platform Nobody Used
Section titled “War Story: The Platform Nobody Used”A company I worked with decided they needed a platform. They were inspired by conference talks about Kubernetes, GitOps, and developer portals.
The Build (6 months):
- Custom deployment pipeline
- Self-service infrastructure portal
- Integrated monitoring dashboard
- Single sign-on everywhere
- Comprehensive documentation
The Launch:
- Big announcement
- Mandatory migration deadline
- “This is how we do things now”
The Reality (3 months later):
Platform adoption: 15%Developer satisfaction: Down 20%Deployment frequency: Down 30%Workarounds: EverywhereWhat Went Wrong:
- No user research: Built what engineers thought was cool, not what developers needed
- Mandated adoption: Developers felt forced, not empowered
- Ignored existing workflows: Developers had working (if imperfect) solutions
- Feature overload: Too much at once, overwhelming onboarding
- No feedback loops: Built for 6 months without shipping
The Pivot:
They scraped most of it and started over:
- Interviewed developers: “What’s your biggest pain point?”
- Solved ONE problem: Deployment time (from 45 min to 5 min)
- Made it optional: Teams could adopt when ready
- Iterated weekly: Ship small, get feedback, improve
- Tracked adoption organically: Teams voluntarily migrated
Results (6 months later):
Adoption: 80%Developer satisfaction: Up 35%Deployment frequency: Up 400%The Lesson: Platform Engineering isn’t about building platforms. It’s about solving developer problems. Start with the problem, not the solution.
Platform vs Infrastructure vs DevOps
Section titled “Platform vs Infrastructure vs DevOps”These terms overlap and confuse. Here’s how to think about them:
Infrastructure
Section titled “Infrastructure”Focus: Systems that applications run on Customers: Applications (not directly developers) Output: Compute, storage, networking, databases Mindset: Keep systems running
Infrastructure team owns:- VM provisioning- Network configuration- Storage systems- Base Kubernetes clusters- Database enginesDevOps
Section titled “DevOps”Focus: Culture and practices for delivery Customers: The organization Output: Processes, automation, collaboration Mindset: Break down silos, accelerate delivery
DevOps practices include:- CI/CD pipelines- Infrastructure as Code- Monitoring and observability- Incident management- Blameless postmortemsPlatform Engineering
Section titled “Platform Engineering”Focus: Internal products for developers Customers: Developers (explicitly) Output: Self-service capabilities, golden paths Mindset: Developer experience as product
Platform team owns:- Developer portal (Backstage)- Deployment self-service- Environment provisioning- Template libraries- Internal toolingThe Relationship
Section titled “The Relationship”┌────────────────────────────────────────────────────────────────┐│ DevOps ││ (Culture & Practices) ││ ││ ┌─────────────────────────────────────────────────────────┐ ││ │ Platform Engineering │ ││ │ (Developer Products) │ ││ │ │ ││ │ ┌───────────────────────────────────────────────────┐ │ ││ │ │ Infrastructure │ │ ││ │ │ (Foundational Systems) │ │ ││ │ │ │ │ ││ │ │ Compute | Storage | Network | Databases │ │ ││ │ └───────────────────────────────────────────────────┘ │ ││ │ │ ││ │ Self-Service | Golden Paths | Developer Portal │ ││ └─────────────────────────────────────────────────────────┘ ││ ││ CI/CD | IaC | Observability | Collaboration │└────────────────────────────────────────────────────────────────┘Platform Engineering uses DevOps practices and builds on infrastructure to create products for developers.
Platform Team Topologies
Section titled “Platform Team Topologies”How should platform teams be structured? Team Topologies (Skelton & Pais) provides a useful framework.
The Four Team Types
Section titled “The Four Team Types”1. Stream-Aligned Teams
- Deliver value to customers
- Own end-to-end for a product/service
- Your “product teams” or “feature teams”
2. Platform Teams
- Provide self-service capabilities
- Reduce cognitive load for stream teams
- Own the Internal Developer Platform
3. Enabling Teams
- Help stream teams adopt new capabilities
- Temporary assistance, not permanent dependency
- Bridge between platform and stream teams
4. Complicated Subsystem Teams
- Own technically complex components
- Specialists in deep domains
- Reduce complexity for stream teams
Platform Team Responsibilities
Section titled “Platform Team Responsibilities”Platform Team Owns:├── Developer Portal (service catalog, docs, templates)├── Deployment Platform (CI/CD, GitOps, environments)├── Infrastructure Abstraction (compute, storage, networking)├── Observability Platform (monitoring, logging, tracing)├── Security Platform (secrets, policies, scanning)└── Developer Experience (onboarding, support, training)Platform Team Interactions
Section titled “Platform Team Interactions”┌─────────────────────────────────────────────────────────────┐│ Stream-Aligned Team ││ ││ Builds features, uses platform self-service ││ ││ Interaction: Self-service consumption │└───────────────────────────┬─────────────────────────────────┘ │ ┌───────────────┼───────────────┐ │ │ │ ▼ ▼ ▼ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ Platform │ │ Enabling │ │ Complicated│ │ Team │ │ Team │ │ Subsystem │ │ │ │ │ │ Team │ │ X-as-a- │ │ Helps │ │ Owns ML │ │ Service │ │ adopt new │ │ platform │ │ │ │ practices │ │ internals │ └────────────┘ └────────────┘ └────────────┘Interaction Modes
Section titled “Interaction Modes”X-as-a-Service (Platform → Stream)
- Stream teams consume platform capabilities
- No deep collaboration required
- “Use our deployment service”
Facilitating (Enabling → Stream)
- Temporary collaboration
- Teaching, coaching, assisting
- “Let us help you adopt Kubernetes”
Collaboration (Any teams)
- Close partnership
- Working together on new capability
- “Let’s design this feature together”
Common Mistakes
Section titled “Common Mistakes”| Mistake | Problem | Solution |
|---|---|---|
| Building before talking to users | Platform nobody wants | Start with user research |
| Mandating platform adoption | Resentment, workarounds | Make it optional, win through value |
| Feature overload | Overwhelming, underused | Start small, iterate |
| Infrastructure mindset | Ticket queues, slow response | Treat it as a product |
| Copying Netflix/Google | Wrong scale, wrong problems | Solve YOUR developers’ problems |
| No metrics | Don’t know if it’s working | Track adoption, satisfaction, productivity |
Quiz: Check Your Understanding
Section titled “Quiz: Check Your Understanding”Question 1
Section titled “Question 1”What’s the key difference between Platform Engineering and DevOps?
Show Answer
DevOps is a culture and set of practices focused on breaking down silos between development and operations, emphasizing collaboration, automation, and continuous delivery.
Platform Engineering is a discipline focused on building internal products (platforms) for developers, treating developer experience as a product problem.
Key distinctions:
- DevOps is about practices and culture; Platform Engineering is about building products
- DevOps targets the organization; Platform Engineering targets developers as customers
- DevOps enables everyone to do everything; Platform Engineering abstracts complexity so developers don’t have to
Platform Engineering uses DevOps practices but focuses specifically on the internal developer experience product.
Question 2
Section titled “Question 2”Why should a platform ideally be optional rather than mandated?
Show Answer
Optional platforms drive quality through choice:
-
Market validation: If developers choose your platform, it’s genuinely valuable. Forced adoption masks whether it’s actually good.
-
Competition improves products: When teams can opt out, you’re motivated to build something better than alternatives.
-
Avoids resentment: Mandates create compliance, not enthusiasm. Developers work around mandated tools they dislike.
-
Natural feedback: Optional adoption provides organic feedback—declining adoption means something’s wrong.
-
Gradual migration: Teams can adopt at their pace, reducing risk and allowing iteration.
Caveats: Some guardrails (security, compliance) must be mandated. The platform should be optional; the outcomes (security, reliability) should not be.
Question 3
Section titled “Question 3”A platform team receives 50 tickets per week for environment provisioning. Is this a success or failure?
Show Answer
This is likely a failure from a Platform Engineering perspective.
Why it’s problematic:
- 50 tickets = 50 instances of friction
- Tickets indicate lack of self-service
- Developer time waiting for tickets
- Platform team time processing tickets
- This is “infrastructure team” behavior, not “platform team”
What success looks like:
- Self-service: Developers provision environments themselves
- No tickets: On-demand, automated, instant
- Platform team focuses on improving the platform, not processing requests
Better metrics:
- Time-to-environment (should be minutes)
- Self-service rate (should be near 100%)
- Developer satisfaction with provisioning
The fix: Build self-service environment provisioning, reduce tickets to zero for standard cases.
Question 4
Section titled “Question 4”How does “platform as a product” change what platform teams measure?
Show Answer
Traditional infrastructure metrics:
- Uptime / availability
- Cost optimization
- Tickets closed
- SLA compliance
- Capacity utilization
Platform-as-a-product metrics:
-
Adoption
- What % of teams use the platform?
- Are teams voluntarily migrating?
-
Developer Satisfaction
- NPS or satisfaction scores
- Qualitative feedback
-
Time-to-X
- Time to first deployment
- Time to provision environment
- Time from commit to production
-
Cognitive Load Reduction
- How much complexity is abstracted?
- Developer surveys on ease of use
-
Self-Service Rate
- % of operations done without tickets
- Automation coverage
-
Business Impact
- Deployment frequency (enabled by platform)
- Time-to-market for features
The shift: From “are systems running?” to “are developers productive and happy?”
Hands-On Exercise: Platform Vision Document
Section titled “Hands-On Exercise: Platform Vision Document”Create a platform vision for your organization (or a hypothetical one).
Part 1: Current State Assessment
Section titled “Part 1: Current State Assessment”## Current State
### Developer Pain PointsInterview 3-5 developers. Ask:1. What takes longer than it should?2. What requires tickets/waiting?3. What do you wish was automated?4. What's your biggest frustration with infrastructure/tooling?
Pain Point 1: _________________- Impact: _________________- Frequency: _________________
Pain Point 2: _________________- Impact: _________________- Frequency: _________________
Pain Point 3: _________________- Impact: _________________- Frequency: _________________
### Current ToolingList what developers currently use:- Deployment: _________________- Monitoring: _________________- Environment provisioning: _________________- Documentation: _________________Part 2: Platform Vision
Section titled “Part 2: Platform Vision”## Platform Vision
### North StarIn one sentence, what does your platform enable?
"Our platform enables developers to _________________without _________________."
### Core CapabilitiesWhat self-service capabilities would address the pain points?
| Pain Point | Platform Capability | Success Metric ||------------|--------------------|--------------------|| | | || | | || | | |
### Non-GoalsWhat will the platform NOT do? (Equally important)
1. _________________2. _________________3. _________________Part 3: First Iteration
Section titled “Part 3: First Iteration”## MVP Platform
### The ONE ProblemWhich single pain point will you solve first?
Pain Point: _________________
Why this one?- Highest impact / lowest effort- Most developers affected- Clear success criteria
### MVP ScopeWhat's the minimal solution?
Features IN:1. _________________2. _________________
Features OUT (for later):1. _________________2. _________________
### Success CriteriaHow will you know it's working?
- Adoption target: _________________- Satisfaction target: _________________- Time-to-X improvement: _________________Success Criteria
Section titled “Success Criteria”- Documented at least 3 real developer pain points
- Created a one-sentence platform vision
- Identified first problem to solve
- Scoped an MVP (not a full platform)
- Defined measurable success criteria
Key Takeaways
Section titled “Key Takeaways”- Platform Engineering is a response to DevOps complexity: Too much cognitive load on developers
- Platform as a product: Treat developers as customers, measure adoption and satisfaction
- Start with problems, not solutions: Interview developers, solve their pain
- Optional beats mandated: Win through value, not through force
- Different from infrastructure: Product mindset vs service provider mindset
Further Reading
Section titled “Further Reading”Books:
- “Team Topologies” — Matthew Skelton & Manuel Pais (essential)
- “Platform Engineering on Kubernetes” — Mauricio Salatino
- “The Phoenix Project” — Gene Kim (DevOps foundation)
Articles:
- “What I Talk About When I Talk About Platforms” — Evan Bottcher
- “Platform as a Product” — Martin Fowler’s site
- “Cognitive Load and Platform Teams” — Team Topologies
Communities:
- platformengineering.org — Community and resources
- Platform Engineering Slack — Active community
- CNCF Platforms Working Group — Standards efforts
Summary
Section titled “Summary”Platform Engineering is the discipline of building internal products for developers. It emerged as a response to DevOps complexity—the unintended consequence of “you build it, you run it” creating unsustainable cognitive load.
Key principles:
- Developers are customers: Build products for them, not services at them
- Self-service over tickets: Reduce friction, increase autonomy
- Start with problems: Interview users, don’t assume
- Optional adoption: Win through value, measure satisfaction
- Iterate rapidly: Ship small, learn fast
The goal isn’t to build a platform. It’s to make developers more productive and happier. The platform is just the means.
Next Module
Section titled “Next Module”Continue to Module 2.2: Developer Experience (DevEx) to learn how to measure and improve developer experience—the core metric for platform success.
“The best platform is the one developers forget is there—because it just works.” — Platform Engineering Wisdom