¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

37
Entrega Continua Jose Luis Soria, Plain Concepts ALM Sessions ’12 #almsessions12

Transcript of ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Page 1: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Entrega ContinuaJose Luis Soria, Plain Concepts

ALM Sessions ’12#almsessions12

Page 2: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Jose Luis Soria

ALM Team Leaden Plain Concepts

PST de Scrum.org

[email protected]://geeks.ms/blogs/jlsoria@jlsoriat

Text/Pic

Page 3: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Fuente: State of Agile Development Survey 2011 http://bit.ly/AsvWvK

Page 4: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Funciona?

Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Page 5: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¡Liberar frecuentemente,puede incrementarla estabilidad!

Page 6: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Te sientes identificado?

Tengo cambios que funcionan perfectamente en un sistema pero fallan en otro.

Una vez que se termina de desarrollar una funcionalidad, se tardan dos semanas en poder tenerla lista en un entorno de producción o similar.

Los programadores y los testers juegan al ping-pong.

Aunque tengo las herramientas adecuadas, sigue siendo difícil obtener feedback.

El proceso de desplegar en producción es muy complejo y nunca se hace de la misma forma.

Page 7: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Te suena?

Aunque automatice parte del despliegue, la gente de operaciones se niega a usar las automatizaciones.

No está claro cómo volver a una versión estable si un despliegue va mal.

Cuando hay que liberar una versión, me puedo despedir del fin de semana.

No es posible preparar una demo rápida para un cliente de algo que tengo en desarrollo.

Page 8: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Te ha pasado alguna vez?

Me es imposible entregar un pequeño cambio o una corrección de un pequeño error, en un corto espacio de tiempo.

Se ha caído todo el sistema y sólo había tocado una tontería.

Se ha caído todo el sistema y no tengo ni idea de qué se había tocado.

Se ha caído todo el sistema, ¡y no habíamos tocado nada!

Page 9: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…
Page 10: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Continuous Delivery

El software está listo para serliberado en producción, encualquier punto del ciclo deVidaNo sólo está listo para ser liberado, sino que ademásse libera frecuentemente.Para liberar una versión en producción, bastacon pulsar un botón.

Text/Icon/Pic

Page 11: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Por qué entregar frecuentemente?

Feedback rápidoNo se puede asegurar la entrega de valor hasta queno se ha liberado.El feedback es la base que soporta la innovación.

Page 12: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Por qué entregar frecuentemente?

Se reduce el riesgo de cadaentregaEl tamaño de lo que se entrega es más pequeño – sihay problemas, se manejan más fácilmente.Casi desaparece el tiempo de investigar losproblemas.Con menos cambios, la vuelta atrás es más sencilla.Se consigue tener mucha más práctica con el procesode despliegue.

Page 13: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

tiempo.(Del lat. tempus).1. m. Duración de las cosas sujetas a mudanza.2. m. Magnitud física que permite ordenar la secuencia de los sucesos, estableciendo un pasado, un presente y un futuro. Su unidad en el Sistema Internacional es el segundo

http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=tiempo

Page 14: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

tiempo.(Del lat. tempus).1. m. Magnitud imposible de predecir, que transcurre entre que termino de desarrollar una funcionalidad y ésta es liberada en producción.

Page 15: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

¿Por qué entregar frecuentemente?

Se conoce el progreso real delproyectoLas estimaciones se deben basar en datos fiables.Cuanto más se separan las entregas, más riesgo hay deque vayan mal.El tiempo entre codificado y liberado es incierto.Done vs. Done Done.Frecuentemente se acumula trabajo sin terminar.Minimizar el lead time.

Page 16: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Las entregas van a ir guiadas por las necesidades de negocio, no por las restricciones operacionales.

Page 17: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Cómo llevarlo a cabo:

Principios de la entregade software

Page 18: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Deployment Pipeline

Cualquier build es “release candidate”

Page 19: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Crea un proceso repetible y confiable para liberar software

Liberar software debería ser fácil, porque todo el proceso habrá sido verificado cientos de veces.

Pasos de un despliegue:Preparar entornosInstalar la versión correspondiente de la

aplicaciónConfigurar el despliegue

¡Todo esto (excepto quizá el hardware) es automatizable!

Page 20: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Automatiza prácticamente todo

Construcción, despliegue, pruebas de aceptación, actualizaciones de la base de datos, configuraciones de entornos…

Hay cosas que no se pueden automatizar: testeo exploratorio, demos al cliente, auditorías…

Page 21: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Trabajando para la automatización

Pla

nifi

caci

ón

Análisi

s

Dis

eño

Codifi

caci

ón

Pru

ebas

Entr

ega

Revis

ión

Page 22: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Testing

Page 23: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Mantén todo bajo control de versiones

Documentación de requisitos, scripts de pruebas, casos de prueba automatizados, scripts de configuración de red, scripts de despliegue, creación y mantenimiento de bases de datos, ficheros de configuración de la aplicación, configuraciones de herramientas, documentación técnica…

Se debería poder reproducir el entorno de ejecución en una máquina limpia, pulsando un botón.Lo mismo para el entorno de desarrollo.

Page 24: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Si duele, hazlo más frecuentemente, y anticípate al dolor

Encuentra lo que más te cuesta hacer, y hazlo más frecuentemente: testing, despliegue, documentación… lo que sea.

Page 25: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Construye con calidad

Lean: “build quality in”

Los defectos son más baratos de corregir cuanto antes se encuentren.

Las pruebas no son una fase, ni van después del desarrollo.

Todo el equipo es responsable de la calidad.

Page 26: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Hecho significa entregado

Done vs. Done Done.

¿Qué significa “hecho” para ti?

No existe “80% hecho”. La condición de hecho es binaria.

Es un esfuerzo del equipo al completo.

Page 27: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Todo el mundo es responsable del proceso de entrega

No nos pasamos la pelota de unos a otros.

Puede haber barreras organizacionales.

Movimiento DevOps.

Page 28: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Mejora continua

La entrega continua no es algo que se implemente y se deje funcionando.

Requiere atención continuada del equipo completo.

Las retrospectivas ayudan.

Page 29: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Cómo llevarlo a cabo:

Prácticas y herramientas

Page 30: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…
Page 31: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Gestión de la configuración¿Qué versión particular del software estoy usando?

Etiquetas, Ramas¿Quién hizo un determinado cambio?

Histórico¿Por qué se hizo un cambio?

Comentarios del checkin, asociar a WI¿Cómo gestiono las dependencias?

Mapeo de workspaces, ramas, servidor de NuGet¿Cómo gestiono las distintas configuraciones entre entornos?

Transformaciones de ficheros de configuración, gestión de cambios desde las construcciones automatizadas¿Cómo gestiono los entornos?

Virtualización, Lab Management

Page 32: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Integración continua¿Cómo fomentar que se haga checkin frecuente?

¿Cómo puedo tener una batería de pruebas que se ejecute rápido?

Pruebas sencillas, que se hagan en un servidor, entorno dedicado, tareas atómicas, análisis de impacto¿Cómo escalar mi servidor de integración continua?

Máquinas de build, TFS Service, ¿Cómo puedo asegurarme de que no se pasen por alto construcciones automatizadas rotas, o que no pasen todas las pruebas?

Políticas de checkin¿Cómo puedo asegurarme un mecanismo de vuelta atrás?

Lab

Page 33: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Testing

Page 34: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Testing¿Cómo hago pruebas del cuadrante 1?

¿Cómo hago pruebas del cuadrante 2?

¿Cómo hago pruebas del cuadrante 3?

¿Cómo hago pruebas del cuadrante 4?

Page 35: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Deployment Pipeline¿Qué herramientas tengo para soportar el Commit Stage?

¿Qué herramientas tengo para soportar el Acceptance Testing Stage?

¿Qué herramientas tengo para soportar el Manual Testing Stage?

¿Qué herramientas tengo para soportar el Performance Testing Stage?

¿Qué herramientas tengo para soportar el Release Stage?

Page 36: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

Q&A, RecursosEnlacesContinuous delivery: http://continuousdelivery.comWeb Deploy http://bit.ly/cUOpfw

Automatización de despliegueswww.secondnug.comMartes 21 de febrero de 19:30 a 21:30

Cursos Professional ScrumCalendario e información http://bit.ly/xc3rPE

[email protected]://geeks.ms/blogs/jlsoria@jlsoriat

Page 37: ¿Funciona? Más ejemplos: Facebook, Amazon, Netflix, Etsy…

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.