Las organizaciones en la actualidad se encuentran en el reto de prosperar en un mundo digital y generar soluciones que satisfagan necesidades de las personas que son cada vez más exigentes. Ante esta situación, se hace necesario un enfoque de servicio que acerque el conocimiento a sus clientes, que reduzca los costes, mejore la experiencia de los clientes y, lo que es más importante, que equilibre la tecnología y la conexión humana. Adoptar una estrategia basada en "Shift Left" brinda la posibilidad de responder a estas necesidades.
“Shift Left” es considerada una práctica originada en el software delivery, cuyo objetivo es mejorar la calidad y la rentabilidad trasladando las actividades críticas lo antes posible en el ciclo de vida del desarrollo de un producto. En la presente charla se dará a conocer las principales características, beneficios y prácticas de “Shift Left”.
4. @marcoviaweb
Los retos
actuales de las
organizaciones
● Disminuir los tiempos de
Delivery
● Incrementar la calidad
● Minimizar los costos
#agiles2021
6. Decidir Analizar Diseñar Desarrollar Test Deploy
Ciclo de vida de desarrollo
@marcoviaweb #agiles2021
7. Decidir Analizar Diseñar Desarrollar Test Deploy
Modelo tradicional de calidad
@marcoviaweb #agiles2021
8. IBM System Science Institute Relative Cost of Fixing Defects
Costo de los defectos
Costo
Diseñar Desarrollar Test Pre-Producción Producción
@marcoviaweb #agiles2021
9. Incremento
exponencial
del costo
● Se debe a que el impacto y la
cantidad de retrabajo es
mayor cuando los defectos se
detectan o se corrigen en
fases posteriores
@marcoviaweb #agiles2021
10. Un defecto que se elimina después de que el producto ha
entrado a producción costará alrededor de 100 veces más que
uno que se identifica y elimina al inicio
11. Características
del modelo
tradicional
● Los miembros de Quality
Assurance (QA) están menos
involucrados en las primeras
fases
● Menos tiempo para corregir
defectos
● Alta probabilidad de "romper"
la funcionalidad debido a
correcciones de última hora
● Se trabaja en silos
@marcoviaweb #agiles2021
13. Buscar
el éxito
del software
● ¿Cómo involucrar las
actividades de QA en las
primeras fases?
● ¿Cómo prevenir defectos?
● ¿Cómo reducir los costos?
● ¿Cómo hacer que el equipo
sea más efectivo?
@marcoviaweb #agiles2021
15. Enfoque
Shift Left
● Hacer las cosas más
temprano en el ciclo de
desarrollo
● Asegurar la calidad del
producto durante todo el
proceso
● Centrarse en la participación
y feedback de las personas
@marcoviaweb #agiles2021
16. Shift Left
NO
se trata de...
● Cambiar de posición, sino
hacer en todas las fase
● Enfocarse en la detección de
problemas, más bien en la
prevención su prevención
@marcoviaweb #agiles2021
17. Decidir Analizar Diseñar Desarrollar Test Deploy
No es cambiar de posición
@marcoviaweb #agiles2021
18. Decidir Analizar Diseñar Desarrollar Test Deploy
No es sólo detección Detección
Detección
Prevención
@marcoviaweb #agiles2021
20. Shift Left
se trata de...
● Considerar QA desde el
principio
● Tener un conocimiento
completo sobre el producto
● Establecer una cultura de
calidad como responsabilidad
de todos
@marcoviaweb #agiles2021
21. Beneficios de
Shift Left
● Delivery rápido
● Detectar defectos temprano
● Reducir costos
● Mejor entendimiento del
negocio
● Mejorar el trabajo en equipo
@marcoviaweb #agiles2021
22. Decidir Analizar Diseñar Desarrollar Test Deploy
Enfoque tradicional
Decidir
Analizar
Diseñar
Desarrollar
Test
Deploy
@marcoviaweb #agiles2021
23. Decidir Analizar Diseñar Desarrollar Test Deploy
Enfoque ágil
@marcoviaweb #agiles2021
Iteración n Iteración n + 1
24. Sprint Sprint Sprint Terminar Terminar
Trabajo sin terminar
release
@marcoviaweb #agiles2021
25. Sprint Sprint Sprint Terminar Terminar
Trabajo sin
terminar
release
Mover
DoD
@marcoviaweb #agiles2021
28. ¿Dónde se puede
aplicar Shift Left?
● Diseño
● Desarrollo
● Testing
● Seguridad
● Operaciones
@marcoviaweb #agiles2021
29. Diseño
● Eliminar requisitos deficiente
que hagan que un producto
no esté alineado con las
necesidades del negocio
● Propiciar una mentalidad de
pensamiento de diseño en
todo el equipo
● Todos comparten la visión del
producto
@marcoviaweb #agiles2021
30. Feedback en el diseño
@marcoviaweb #agiles2021
● Scrum: El Product Owner es parte del equipo y colabora en la
descripción, evaluación y reajuste de las necesidades del negocio
● Diseño basado en valor: Las mejores ideas surgen de datos
empíricos
● BizDevOps: Se derriban los silos entre el negocio y DevOps
● Arquitectura emergente: La arquitectura está de acuerdo a las
condiciones reales
● Diseñado para afrontar fallas: Se debe anticipar, no sólo a los
cambios, sino también a como se recuperará a las fallas
32. Validación de la calidad
@marcoviaweb #agiles2021
● Análisis de código: Usar herramientas como SonarQube
● Regla de los Boy Scouts: Deja cualquier código en un mejor estado
del que lo encontraste
● Continuous integration: Mob/Pair programming
● Buid automatizado: Build una vez, Deploy mucha veces
33. Testing
● Tienen su origen en las
pruebas
● Se alinea con prácticas ágiles
como el desarrollo basado en
pruebas (TDD) y el desarrollo
basado en el comportamiento
(BDD)
@marcoviaweb #agiles2021
34. Definición de pruebas
@marcoviaweb #agiles2021
● Test Driven Development: BDD para escribir Features e Historias
de usuario; TDD para escribir código
● Load Testing: Validar que la aplicación y la infraestructura están
sujetas a cargas máximas, cargas continuas, volúmenes de datos
● Test automation: Programar pruebas en varios niveles de
funcionalidad para disminuir la posibilidad de errores manuales
35. Seguridad
● Combinado con DevOps, se
obtiene DevSecOps
● Deben existir estándares de
seguridad
● El personal de seguridad
debe usar las mismas
herramientas que DevOps y
tener la capacidad de corregir
el código por su cuenta
@marcoviaweb #agiles2021
36. Preocupaciones de seguridad
@marcoviaweb #agiles2021
● DevSecOps: Implica pensar desde el principio en la seguridad de
las aplicaciones y de la infraestructura.
● Automatización: También implica automatizar algunas puertas de
seguridad para impedir que se ralentice el flujo de trabajo de
DevOps
37. Operaciones
● Cuando las aplicaciones
están en la nube, CD se ha
convertido en una práctica
común para ofrecer
rápidamente las últimas
correcciones y funciones
● El Deploying de software está
automatizado
● La implementación continua
permite realizar pruebas
continuas
@marcoviaweb #agiles2021
38. Preocupaciones operativas
@marcoviaweb #agiles2021
● DevOps: Mejora la comunicación, colaboración e integración de
Desarrollo y Operaciones
● Monitoreo: Para garantizar el correcto funcionamiento del
producto
39. “Shift Left se basa en el concepto de acercar una persona, un
proceso o una tecnología al cliente, lo que da como resultado
una resolución más rápida, más eficiente y más eficaz”
41. Adopción de Shift Left
Estrategia operativa
Definir e implementar: quality gates, prácticas de calidad y actividades de
testing a lo largo del ciclo de desarrollo
Madurez en Agile Experiencias en la adopción de agile
Test automation
La realización de test de manera frecuente requiere adoptar herramientas de
automatización
Pipeline CI/CD
Los defectos pueden detectarse y corregirse inclusive durante la integración del
código, mejorando la calidad del producto
Test temprano y frecuente Todos se ven involucrados durante todo el ciclo de desarrollo
Release y Deploy
automatizado
La probabilidad de que ocurra un error humano es menor, mejorando la
eficiencia y la eficacia del equipo
@marcoviaweb #agiles2021
42. Habilitando Shift Left
Shift Left
Cambio de mentalidad
Definir puertas de calidad y prácticas
de calidad a lo largo de todo el ciclo
Cambio de responsabilidades
La calidad es responsabilidad de todos
Cambio en el tiempo
Realizar pruebas con anticipación
Cambio en la organización
Más ingenieros de calidad que solo
testers
@marcoviaweb #agiles2021
43. “Cuanto más antes se encuentre un defecto en el ciclo de vida
del software, más barato será repararla”
44. Referencias
@marcoviaweb #agiles2021
Shift left thinking applied to the full software delivery cycle by Jasper Bogers
https://blog.jdriven.com/2018/10/devops-shift-left-paradigm/
Shift left Testing by Matias Torcivia
https://medium.com/globant/shift-left-testing-c838521617b0
Devopedia
https://devopedia.org/shift-left#discussion
SAFe
https://www.scaledagileframework.com/blog/enabling-technical-agility-in-
the-lean-enterprise-vlog-series-shift-left-testing/