be queued and take hours to pass through pipelines • Even local changes require containerising and running k8s • Tests behave differently locally and on CI
are services made resilient? Or observable? • Who defines data structures? What is required/recommended/bespoke? • Do libraries exist? Are they allowed? How can a new library be identified or created?
skills/activities: 1. Problem discovery to understand the what 2. Software delivery practices to improve how maintainable and extensible the solution is
skills/activities: 1. Problem discovery to understand the what 2. Software delivery practices to improve how maintainable and extensible the solution is
“Platforms provide only central services” • “Kubernetes is your platform” ◦ How do you still enable the 20% to be compliant and efficient? ◦ Who manages upgrades, updates, and running software? ◦ sure, but what about high value “inner-loop” tooling e.g. local environments? ◦ Few orgs are 100% k8s, how do you support non-k8s services & experience? How does that feel from the app developer side?
defines input options and return values • Contract structure begins to implicitly set an ownership model • APIs are a complete contract by decoupling implementation
tools will integrate with APIs and contracts • Clear boundaries and single responsibility enables composability • APIs reduce cognitive load by also removing the operational load
intentionally ◦ Think about rate of change, coupling, and resiliency requirements 2. Deliver small, fast, and safe changes ◦ Build trust through CI/CD testing and rollout/rollback plans ◦ Even “offline” apps can have CD, look at mobile/desktop app patterns 3. Build in cross functional requirements ◦ User experience including onboarding, maintenance onus, and overall cognitive load ◦ Speed to market to capture opportunity and reduce risk