SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Cabalgando a
la Bestia
Una experiencia de rediseño legacy
Diego Fontdevila Marcelo Gore
@dfontde @marcelogore
El camino
El contexto del proyecto
Decisiones tomadas
Mejoras implementadas en el producto
Prácticas implementadas
Lecciones aprendidas
Contexto del proyecto
Fue desarrollado en dos etapas para un cliente original
Fue repensado como un producto
Vendido a un primer cliente
144 pruebas unitarias y de integración en tres generaciones
(1 que fallaba aleatoriamente)
1 prueba de regresión de interfaz de usuario
Muchas dependencias innecesarias
Arquitectura de
módulos
Decisiones tomadas
Decisiones tomadas
1. Refactorizar en la primera etapa solamente el módulo de
inconsistencias.
2. Invertir fuerte en ejecutar continuamente la prueba
general de regresión.
3. Automatizar los procesos (build, deploy) de punta a
punta.
4. Realizar las mejoras incrementalmente.
Decisiones tomadas [I]
Refactorizar en la primera etapa solamente el módulo de
inconsistencias (también borrar lo que no servía)
Antes pensamos en refactorizar el módulo web
Antes aún, en refactorizar el módulo de Cuestionarios
Nos ayudó la presión de las fechas a reconcebir nuestra ideas
Tomamos la decisión con autonomía, pero con restricciones
Refactor
Renombrar 5
tablas y sus
columnas
Mejoras implementadas
Migración a Postgres
Refactoring de módulo de inconsistencias
Versionado de base de datos con FlyWay
Despliegues automatizados
Entornos con software de base idéntico
Homogeneización de estilos con Bootstrap
Prácticas
implementadas
Prácticas implementadas
Infraestructura como código
Integración continua (incluyendo despliegue)
Entrega continua
TDD de punta a punta o BDD
Infraestructura
como código
./ Utilizamos Vagrant como
abstracción para administrar
máquinas virtuales VirtualBox y
cajas en la nube con DigitalOcean
./ Ansible como abstracción de la
provisión de software de base a las
máquinas virtuales
./ Bash para automatizar despliegues
./ Maven para automatizar builds
./ Repositorio de infraestructura
Administrar la configuración de
infra (máquinas virtuales,
software de base,
automatización) como código
Infraestructura
como código
[demo]
Lecciones (re)aprendidas
● Es fundamental gestionar efectivamente la configuración
○ En particular, separar la configuración dependiente del ambiente
(puertos, usuario y clave, etc.)
● Manejar las tareas en jenkins con scripts que
empaqueten toda la información
○ Por ejemplo deploy y deploy-test que llama a deploy con los
parámetros para test.
○ Permite ejecutar rápidamente maximizando el feedback.
● Ejercitar el proceso múltiples veces para encontrar
errores y aumentar su claridad/eficiencia.
● Usar smokeTest
Nos equivocamos (I)
Integración
continua total
./ Ejecutar continuamente las prueba
s unitarias.
./ Desplegar continumante a una
máquina virtual
./ Ejecutar continuamente la prueba
de aceptación (regresión) general.
Ejecutar continuamente las
pruebas
Integración
Continua
Tablero de Jenkins
Despliegue continuo
Delivery pipeline
SEGT
CI
SEGT
Generar
Test
SEGT
Desplegar
Test
SEGT
Desplegar
Cliente
SEGT
Desplegar
Test
SEGT
Desplegar
Prod
TDD de punta a punta (BDD)
Creamos pruebas para la poquísima funcionalidad nueva
Escribimos las pruebas antes de escribir la funcionalidad
Lo hicimos probando desde la interfaz de usuario
TDD de punta a punta
[demo]
Lecciones aprendidas
Vale la pena no abandonar aunque el andamiaje sea frágil.
Vale la pena invertir en abstracciones de infraestructura.
Siempre hay alguna forma de cortar que permite mejorar.
Las pruebas heredadas son difíciles pero pueden ser útiles.
Es importante hacer versiones iniciales y mejorarlas luego.
¿Preguntas o
reflexiones?
Muchas gracias
Diego Fontdevila
@dfontde
diego.fontdevila@grupoesfera.com.ar
Marcelo Gore
@marcelogore
marcelo.gore@grupoesfera.com.ar

Más contenido relacionado

Destacado

0531-981-01-90 VE 0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...
0531-981-01-90 VE  0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...0531-981-01-90 VE  0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...
0531-981-01-90 VE 0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...antika alanlar
 
Handling Information Responsibly
Handling Information ResponsiblyHandling Information Responsibly
Handling Information ResponsiblySaleh Saad Alhlwany
 
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...antika alanlar
 
EPM_SAP_Integration_TPG_PSLink_FirstON
EPM_SAP_Integration_TPG_PSLink_FirstONEPM_SAP_Integration_TPG_PSLink_FirstON
EPM_SAP_Integration_TPG_PSLink_FirstONFirstON SA
 
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...ENJ
 
Solar Pump Applications in South asia
Solar Pump Applications in South asiaSolar Pump Applications in South asia
Solar Pump Applications in South asiatiger power yan
 
Audrey Mandela: Public Sector Information Policy: On the Right Track?
Audrey Mandela: Public Sector Information Policy: On the Right Track?Audrey Mandela: Public Sector Information Policy: On the Right Track?
Audrey Mandela: Public Sector Information Policy: On the Right Track?AGI Geocommunity
 
Formulas and Equations
Formulas and EquationsFormulas and Equations
Formulas and EquationsLumen Learning
 
4 fundamental shifts you need to succeed in digital
4 fundamental shifts you need to succeed in digital4 fundamental shifts you need to succeed in digital
4 fundamental shifts you need to succeed in digitalMarcel Santilli
 
MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids
 

Destacado (14)

0531-981-01-90 VE 0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...
0531-981-01-90 VE  0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...0531-981-01-90 VE  0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...
0531-981-01-90 VE 0532-335-75-06 İKİNCİ EL KİTAP ALANLAR YILDIZDAN KİTAP ALA...
 
מצגת אדריכל פול ויטל, מהנדס העיר נתניה
מצגת אדריכל פול ויטל, מהנדס העיר נתניהמצגת אדריכל פול ויטל, מהנדס העיר נתניה
מצגת אדריכל פול ויטל, מהנדס העיר נתניה
 
logo_larger
logo_largerlogo_larger
logo_larger
 
Handling Information Responsibly
Handling Information ResponsiblyHandling Information Responsibly
Handling Information Responsibly
 
Handling Credit Cards
Handling Credit CardsHandling Credit Cards
Handling Credit Cards
 
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...
(0531-981-01-90) HASANPAŞA ANTİKA ESKİ EŞYA-KİTAP-PLAK-MOBİLYA-HALI+ALANLAR+A...
 
EPM_SAP_Integration_TPG_PSLink_FirstON
EPM_SAP_Integration_TPG_PSLink_FirstONEPM_SAP_Integration_TPG_PSLink_FirstON
EPM_SAP_Integration_TPG_PSLink_FirstON
 
Santa Ceia
Santa CeiaSanta Ceia
Santa Ceia
 
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...
ENJ-100 Módulo 1 los principios del proceso y debido proceso de ley - Herrami...
 
Solar Pump Applications in South asia
Solar Pump Applications in South asiaSolar Pump Applications in South asia
Solar Pump Applications in South asia
 
Audrey Mandela: Public Sector Information Policy: On the Right Track?
Audrey Mandela: Public Sector Information Policy: On the Right Track?Audrey Mandela: Public Sector Information Policy: On the Right Track?
Audrey Mandela: Public Sector Information Policy: On the Right Track?
 
Formulas and Equations
Formulas and EquationsFormulas and Equations
Formulas and Equations
 
4 fundamental shifts you need to succeed in digital
4 fundamental shifts you need to succeed in digital4 fundamental shifts you need to succeed in digital
4 fundamental shifts you need to succeed in digital
 
MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009
 

Similar a Cabalgando a la bestia: una experiencia de rediseño legacy

Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Juampy NR
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxCompusoftnetCiaLtda
 
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSJose Luis Soria
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Eduardo Diaz
 
Vuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfVuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfPabloMorales831994
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 

Similar a Cabalgando a la bestia: una experiencia de rediseño legacy (20)

Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
CI integración continua
CI   integración continuaCI   integración continua
CI integración continua
 
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
Vuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfVuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdf
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Rup
RupRup
Rup
 
Rup
RupRup
Rup
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (13)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Cabalgando a la bestia: una experiencia de rediseño legacy