https://www.youtube.com/watch?v=4N2ywun-wTE
1. Clear boundaries & responsibilities (what's platform vs feature team)
- Minimize friction for engineers
- Promotes better collaboration & flow
- Use a "platform contract" (more below)
2. Self Service & Automation
- Docs and interfaces
- Empowers independent Teams
- Promotes innovation and experimentation
- Without this: death by 1000 jira tickets
3. Flexible & Evolvable
- Not one-size-fits-all
- Fit for purpose tech & processes
- Provide guard rails and guides (paved path with options)
- Without this: the platform becomes a white elephant that nobody wants (work arounds, shadow platforms)
4. Reliable & Caters for Day 2 Operations
- Confidence for Engineers and Management
- All fundamental capabilities are rock solid
- Provide tooling and dashboards for folks to use for troubleshooting
- Without this: engineers build their own "coping mechanisms" which spawns tons of micro eco-systems for each team
- Executive buy-in
- Technical experience & expertise of folks who have done this before (modern experience of cloud technologies)
Ensure org changes and technical changes can happen.
Adjust your Thinking Aim not just to provide a service, but rather to be a service
Community Driven Principles (more on each of these below)
- Make teams independent, not dependent on you
- Promote Freedom, not Autonomy
- Be a Role Model & Walk the talk
- Respect & Recognize community differences
Define a platform contract (clear boundary)
- Security & Compliance
- Infrastrucutre Provisioning
e.g. "the platform will take responsibility for patching k8s nodes, the team will take responsibility for scanning their own containers for vulnerabilities (using tooling provided by the platform)"
Favor Automation & API Interactions
- Onboarding, Infra Provisioning
- Terraform Modules, K8S Operators
Documentation
- Includes in-tool help and reference examples
auto: self tonomy: law/rule autonomy: self-rule
Freedom is more about liberty/boundaries
Establish the ground rules
- single cloud vs multi-cloud
- Support for "stable" vs "latest"
Choice over "anything goes"
- Tech stacks
- Ecosystems (terraform, k8s)
- Templated pipelines
Eat your own dogfood
- Tooling (using your own stuff)
- Test against reference implementations (reliability)
Offer "professional services"
- Workshops, pairing, embedding
- Requires high executive buy-in
Platform Evangelists / Advocates
- Promote good practices
- Brown bags, lunch & learns, visit teams to share
Adapt ways of working for different communities
- Team structures and interaction modes (team topologies matthew skelton and manuel pais)