Earlier quoted context omitted.
Note that one can also use a lightweight Kubernetes distribution such as Minikube [1] during development so that the workflow is similar for both development and production. [1] https://minikube.sigs.k8s.io/docs/start/
But this often not necessary, because if you can run a production Kubernetes cluster, you can also run a dev Kubernetes cluster, so no need to run a local Kubernetes distribution. My workflow typically looks like this: 1. Run app locally during dev without Docker 2. Build and run Docker image locally with Docker compose 3. Deploy to development Kubernetes cluster 4. Deploy to production Kubernetes cluster
When you have many developers, the cost for maintaining one dev cluster per developer quickly goes up. One cluster for all developers can be used for testing/staging, but not for development.
Minikube is a replacement for your step (2), except you can now use your existing tools (kubectl etc) instead of docker-compose.