The developer experience and fast local code-build-test feedback
The developer experience is the workflow a developer uses to develop, test, deploy, and release software.
Typically this experience consists of both an inner dev loop and an outer dev loop. The inner dev loop is where the individual developer codes and tests, and pushing code to version control triggers the outer dev loop.
The outer dev loop consists of everything else that happens leading up to release. This includes code merge, automated code review, test execution, deployment, controlled (canary) release, and observation of results. The modern outer dev loop might include, for example, an automated CI/CD pipeline as part of a GitOps workflow and a progressive delivery strategy relying on automated canaries, i.e., to make the outer loop as fast, efficient and automated as possible.
Developers have lived comfortably in the inner dev loop for most of the history of app development, but now with the "shift left", in which developers assume more responsibility for how services behave "in the wild", the outer dev loop becomes a part of the new, cloud-native developer experience. The changing workflow accompanying this shift is one of the main challenges for developers adopting Kubernetes. Software development itself isn’t the challenge. Developers can continue to code using the languages and tools with which they are most productive and comfortable.
Engineers now must design and build distributed service-based applications and take on responsibility for the full development life cycle. This means understanding and managing external dependencies, building containers, and implementing orchestration configuration (e.g. Kubernetes YAML). This may appear trivial at first glance, but this adds development time to the equation.