Como muestra la imagen, las tres áreas que incluyen el desarrollo, el control de calidad y la producción no se reemplazan por un único proceso, sino que están constantemente interconectadas. De esta forma, un producto pasa por cada una de las fases individuales repetidamente y recibe mejoras continuas. Cuando tenemos que trabajar con muchos clientes al mismo tiempo, es imposible conseguir algo así si no contamos con procesos automatizados. Y en este punto es precisamente en el que interviene la entrega continua ya que se encarga de automatizar todo el proceso.
Gracias al continuous delivery, es posible comprobar los procesos y mejoras implementados sobre el software (es decir, todos los cambios realizados sobre el código fuente) en tiempo real con el fin de conseguir un feedback. Si un cambio genera efectos secundarios no deseados, será posible detectarlos rápidamente, lo que te permitirá implementar las acciones necesarias en una fase temprana del desarrollo. Este punto es realmente una mejora importante porque facilita, por ejemplo, la detección de bugs dentro del código. Sin la entrega continua, detectar dónde se encuentra el error se convierte en un trabajo realmente tedioso.
Hasta que llega al cliente, el software está en una fase intermedia, el pipeline de continuous delivery. En este pipeline se llevan a cabo pruebas manuales y automáticas. Cada fase de pruebas conlleva la aparición de una nueva versión del software (que suele llamarse “versión beta” o en algunas ocasiones “Nightly Build”, es decir la última versión creada de forma automática) que, a su vez, entra en el pipeline. Hasta que se hayan pasado todas las pruebas y se reciba un feedback positivo, no se crea una versión “estable” y no se libera oficialmente el producto (este proceso se conoce como “liberación” y también incluye a la propia aplicación publicada). Así aumentan considerablemente las probabilidades de que el cliente reciba un producto sin bugs.