SlideShare una empresa de Scribd logo
Automatización
Contínua
¿Una historia que vale la pena contar?
Terror en la softscuridad
Historias que te dejarán pensando
“Basada en hechos reales”
El despertar de los muertos vivientes
El fin del mundo: Año 2000
El despertar de los muertos vivientes

El fin del mundo se aproxima (1999)
▪ Bug del Año 2000! También conocido como “el error del milenio”
▪ OK! Con GeneXus es trabajo fácil ;)
a) Instalo update de GX
b) Abro todas las KB’s
c) Build All
d) Compilo
e) Testeo
f) Distribuyo “pa todo el mundo”
g) Yupi! Contentos con la llegada del año 2000!
▪ OK! Manos a la obra! …. Mientras tanto…
Niiaaammmm! KBrebros!
El despertar de los muertos vivientes

Los muertos se levantan de la tumba!
▪ +50 KB’s Zombies!! (No se tocan hace mucho)

▪ Yupi! Disquetes de 5,25” y 3,5” (hermosos 90’s)
▪ +5 versiones diferentes de KB’s, desde GX 3.0 a 6.1
▪ Muchas versiones! ¿Cuál es “la posta”?

▪ Yes! mucha cosa programada a mano!!
▪ Un mix de gustos! Cobol, FoxPro, VFP, VB…
▪ OMG! Cuantas instalaciones? Uuu… nice!
▪ A Correr!! Digo.. A Migrar!!
El despertar de los muertos vivientes
El despertar de los muertos vivientes
El despertar de los muertos vivientes

¿Cómo matar un Zombie?
▪ Mantener vivo lo que vale la pena, el resto matarlo cuanto antes.

▪ Migrar siempre a última versión de GX (Si es automatizado mejor!)
▪ Refactoring! Refactoring! (en cuanto se descubra algo zombie, matarlo)
▪ Unificar! Una KB! Un Lenguaje! Un solo proceso! órganos internos apoyan a varios sistemas.
▪ Documentar! Documentar! (Principalmente proceso para no convertirse nuevamente en
zombie)
▪ No permitir “chanchujo a mano” por fuera (si no queda otra, documentar y automatizar)
▪ Tracking! (saber qué cosas están mal y marcarlas para darle seguimiento)
▪ Build y Deploy, asegurarse que la nueva versión suplante a la zombie cuanto antes!
El despertar de los muertos vivientes

Lecciones aprendidas
▪ Gestión de Configuración de Software (SCM) es “La Ley”
▪ 90’s pocas herramientas de automatización, Build, Deploy y jugar con XPW era lo que se podía hacer.
▪ Gurda tus productos de trabajo y los backup en un medio que no falle, tener replicación en caso que falle.
▪ No puedes migrarte de una última versión de GX, pasa por intermedias
▪ Migrar de GX cuanto antes! Probar cuanto antes! Corregir cuanto antes!
▪ ¿Si funciona no lo toques? Mantenlo actualizado, si se deja de usar, backup y borrado (kill the zombies!).
▪ Testing? Solo manual, documentar las pruebas y versionarla igual que versionas el sistema.
▪ Distribución e instalación (algo que no se tiene en cuenta siempre).
▪ Versionar todo! Hacer backups periódicos! (y periódicamente probar que los backups funcionan!)
▪ Un ciclo completo de build, test y deploy cada tanto viene bien (puedes aprovechar al migrarte de ver de GX)
Gizmo y el efecto “Gremlins”

Mogwai “Espíritu maligno”
Gizmo y el efecto “Gremlins”

2001 la odisea
▪ Producto Grande! KB’s Grandes!

▪ Muchas solicitudes de cambio!
▪ Muchos módulos nuevos!
▪ Muchas mejoras para hacer!

▪ Muchos programando todo el tiempo!
▪ Muchos haciendo macanas todo el tiempo!
▪ ¿En donde estoy?

En el sector encargado de arreglar “macanas”.
Gizmo y el efecto “Gremlins”

¿Quiéres un “Gizmo”?
Respeta las siguientes reglas:
▪ No lo expongas a la luz! Lo mataría!
▪ Nunca le des de beber agua!
▪ Nunca lo mojes!

▪ Nunca darle de comer luego de la media noche!
OK! Ahora estoy tranquilo, conozco las reglas!!
¿Pero todos los que juegan con “Gizmo”? ¿las conocen y las respetan?
Gizmo y el efecto “Gremlins”
Gizmo y el efecto “Gremlins”

Gremlins! Corran!
▪ Se portan mal!
▪ Son impredecibles!
▪ Se reproducen rápidamente!
▪ No siguen las reglas!

▪ Son producto de “descuidados” o “mal informados”
▪ Y lo peór de todo! Quieren maltratar a “Gizmo”
Gizmo y el efecto “Gremlins”

Algunos tipos de Gremlins
▪ No encontramos el fuente del programa

▪ ¿Quién hizo el cambio y cuando?
▪ Grrr! Código repetido por todos lados!
▪ La documentación no corresponde!

▪ ¿Realmente lo testearon?
▪ OMG! Está en producción?
▪ ¿Quién te pidió que hicieras ese cambio?
▪ Ups, me equivoqué y envié un programa incorrecto
Gizmo y el efecto “Gremlins”

Gremlins vs Zombies
▪ A diferencia de los Zombies, los Gremlins son producto de mucha actividad, a
medida que hay más trabajo, más puntos de fallo en el proceso pueden existir.
▪ Los Gremlins tienden a proliferen, se necesita de “Policías” encargados de que
se cumpla “la ley” (procesos) para mantenerlos en contról.
▪ Es casi imposible no tener Gremlins, si haces mucho, y muchos participan, es
natural que aparezcan, hay que trabajar de forma continua en intentar mitigarlos.
▪ Los “Policías” pueden ser personas u herramientas, o las dos trabajando juntas
son lo ideal.
Gizmo y el efecto “Gremlins”

Caso Ejemplo:
El Gremling de “datos truncados”
▪ 5 Bases de conocimiento con cientos de programas en cada una de ellas
▪ Cambio de un “dominio” de atributo de 14,5 a 18,5, todos los basados en se
actualizaron correctamente. Se regeneró y recompiló y se distribuyó a los
clientes.
▪ Los test no lograron el cubrimiento correcto, muchos de los programas fallaron
en el cliente.
▪ No todos los programadores basaron en atributos sus variables
▪ Existía problemas además entre “cross KB’s” con llamadas a procesos externos
Gizmo y el efecto “Gremlins”

El Gremling de “datos truncados”
Solución:
▪ 1 – Notificar a todos los programadores de los errores cometidos

▪ 2 – Crear una herramienta que intente detectar y corrija el problema
automáticamente.
Año 2001, se utilizaba GX 6.1, se analizaron las Spec y los XPW para detectar los
programas con variables que podrían estar mal creadas (se parcheaba el xpw ya con
el arreglo para luego ser integrado)
▪ 3 – Corregir todos los programas, y enviarlos a probar para luego enviarlo a los
clientes.
Se detectaron y corrigieron cientos de programas, antes de eso ya estaba cansado
de tantas “idas y venidas”, se tomó el toro por las guampas y se solucionó el
problema de raíz.
▪ 4 – Fue el inicio de primeras herramientas de inspección y corrección de programas,
arreglaba “problemas” en lo programado en la KB local o se podía usar para
procesar lo integrado en la KB en el servidor central.
Gizmo y el efecto “Gremlins”

Caso Ejemplo:
El Gremling de “no se de donde viene”
Solución:
▪ Se crearon herramientas para gestión de requerimientos

▪ Se crearon estándares de documentación para cada tipo de requerimiento.
▪ Se reservan los programas para su modificación asociados a un requerimiento (tipo lock, nadie puede
trabajar en ellos hasta que sean liberados)
▪ Se documentan las modificaciones en los fuentes, asociando el bloque modificado a los
requerimientos (se dejó de hacer cuando se implementó el diff entre versiones)

▪ Se “marca” los compilados con la firma del requerimiento (puedo saber desde un class o dll de qué
versión del fuente fue compilado)
▪ Se realiza un empaquetado y build asociado a un requerimiento (esto puede varias según el tipo de
desarrollo)
▪ Se creó una herramienta que permite ver la trazabilidad de todo el ciclo, desde un requerimiento
puede verse toda la documentación, así como los fuentes involucrados y los paquetes de distribución
e inclusive el código fuente (similar a GXServer)
Gizmo y el efecto “Gremlins”

Caso Ejemplo:
El Gremling de “en .net me compila…”
Solución:
▪ Se detectaron algunas limitaciones, que si los programadores programan y
compilan en solo un lenguaje no saltan y no son evidentes en otros.
El día que lo necesitan ver funcionando en ese otro lenguaje se enteran que
tienen que cambiar la forma de programarlo.
▪ Se implementó en la KB de integración que siempre se compile en todos los
lenguajes para asegurarse que en el proceso de integración lo integrado compila
para todas las plataformas soportadas.
▪ Para algunos bugs de generación, se parchea el código generado.
Gizmo y el efecto “Gremlins”

Caso Ejemplo:
El Gremling “el octavo pasajero”
Solución:
▪ Existe metadata que viaja en los exports que afectan la definición de datos de la
KB destino. El programador muchas veces tiene en su KB local una KB vieja o
pruebas y cambios de otras cosas que no serían deseables que sean integradas
en la KB central (sin embargo desapercibidamente viajan).
▪ Se implementó en la KB de integración un sistema de “filtro” que impide que se
“rompa” o “cambie” algunas cosas en la KB central (dominios y subtipos era lo
más común, si quieres hacer eso, tienes que seguir otro procedimiento formal).
Gizmo y el efecto “Gremlins”

Lecciones aprendidas
▪ Gestión de Configuración de Software (SCM) sigue siendo “La Ley”

▪ Inspeccionar el código y filtrar las cosas indeseadas permiten protegerte
▪ Gestionar requerimientos (tanto desarrollo como mantenimiento) y permitir una trazabilidad
ayudan.
▪ Crear herramientas para de forma automática arreglar “macanas”.

▪ Versionado de código fuentes (e includido comparación entre las mismas) ayuda mucho.
▪ Testing? Sigue siendo manual, pero se crearon estándares y documentación formal, tanto para
la documentación técnica, cambios, manuales y evidencias de pruebas funcionales.
▪ Un ciclo completo de build, test y deploy ayuda a detectar problemas (ahora se puede
automatizar con GXPublic!)
Entrando a la Matriz
Año 2008
Entrando a “La Matriz”

Todo es parte de la matriz
▪ Producto Monstruoso! KB’s Monstruosas!
▪ Nuevos mercados, nuevos clientes, nuevos desafíos.
▪ Muchos más programando!
▪ Muchos haciendo “macanas” todo el tiempo!

▪ ¿En donde estoy?
Estoy como “keymaker”.
Abro puertas para llegar más rápido y mejor al destino
Construyendo herramientas relacionadas con Build & Deploy
Entrando a “La Matriz”

¿Todo es parte de la matriz?
▪ Definiciones

▪ Diseño
▪ Requerimientos
▪ Pruebas
▪ Integración
▪ Configuración
▪ Programación
▪ Build

▪ Release
Entrando a “La Matriz”

Foco
2001 a 2008

Foco
>2008

▪ Definiciones

▪ Pruebas

▪ Diseño

▪ Integración

▪ Requerimientos

▪ Configuración
▪ Programación
▪ Build
▪ Release
Entrando a “La Matriz”

Interrogantes
▪ Acelerar el proceso y minimizar errores

▪ Mejorar la comunicación
▪ Mejorar calidad del software
▪ Estado actual y calidad de desarrollo

▪ Herramientas adaptdas a la necesidad
▪ Bloques de construcción e interacción
▪ Infraestructura flexible
▪ Trazabilidad de origen a resultado
Entrando a “La Matriz”

Acelerar el proceso y minimizar errores
▪ Automatizando los siguientes procesos
es posible acelerar y minimizar los errores
▪ Verificación
▪ Compilación
▪ Empaquetado
▪ Pruebas
▪ Inspección
▪ Distribución
Entrando a “La Matriz”

CI – Integración contínua
▪ Integrar, generar y distribuir lo antes posible para mitigar y reducir riesgos.
▪ Eliminar procesos manuales (errores humanos)
▪ Ejecutar de forma inmediata las pruebas
▪ Disponibilidad de builds actualizados

▪ Monitorización de las métricas de calidad del proyecto
Entrando a “La Matriz”

Automatizar tareas de poco valor
▪ Análisis de impacto antes de integrar (y filtrado)

▪ Consolidar programas
▪ Comparar programas
▪ Reorganización

▪ Generación y compilación
▪ Operaciones varias con XPZ
▪ Distribución y empaquetado de programas
▪ Comparador de esquemas de base de datos y GX
Entrando a “La Matriz”

Lecciones aprendidas
▪ Gestión de Configuración de Software (SCM) sigue siendo “La Ley”
▪ 7x24 ayuda más de lo que te imaginas
▪ Permite trabajo entre personas geográficamente distribuidas
▪ Una única forma de hacer las cosas (una única Ley)

▪ Reducir los tiempos de desarrollo y reléase ayuda a concentrarse en arreglar
▪ Escalable, puede crecer con el crecimiento del producto y la empresa
▪ Con cada corrida se aprende y mejora el proceso (mejora contínua)
¿Preguntas?
3dgiordano@gmail.com Twitter: @3dgiordano
Recursos: Buscar y “estudiar”
▪ Gestión de Configuración de Software (SCM)
▪ Integración contínua (CI)
▪ Deploy contínuo
▪ ALM

▪ Ispección contínua

Más contenido relacionado

Similar a Automatización Continua

Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
psluaces
 
Betabeers BCN
Betabeers BCNBetabeers BCN
Betabeers BCN
Social Point
 
Git with gifs
Git with gifsGit with gifs
Git with gifs
betabeers
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
Ricard Clau
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0
Fredy Guibert
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
Jorge Ortiz
 
Don't Feed The Zombies!
Don't Feed The Zombies!Don't Feed The Zombies!
Don't Feed The Zombies!
Ernesto Tagwerker
 
Desarrollo multiplataforma de apps con GWT y PhoneGap
Desarrollo multiplataforma de apps con GWT y PhoneGapDesarrollo multiplataforma de apps con GWT y PhoneGap
Desarrollo multiplataforma de apps con GWT y PhoneGap
betabeers
 
Charla 1er betabeers Córdoba
Charla 1er betabeers CórdobaCharla 1er betabeers Córdoba
Charla 1er betabeers Córdoba
Luis Muñoz Hueso
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
Irontec
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
VOIP2DAY
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
INSIGNIA4U
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Ricardo Guerrero Gómez-Olmedo
 
Desarrollando productos basados en F/OSS
Desarrollando productos basados en F/OSSDesarrollando productos basados en F/OSS
Desarrollando productos basados en F/OSS
Mauro Parra-Miranda
 
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Gustavo Arjones
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
Carlos Buenosvinos
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
Manuel de la Peña Peña
 
Tech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttlerTech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttler
Santex Group
 

Similar a Automatización Continua (20)

Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
 
Betabeers BCN
Betabeers BCNBetabeers BCN
Betabeers BCN
 
Git with gifs
Git with gifsGit with gifs
Git with gifs
 
Xamarin Basics
Xamarin BasicsXamarin Basics
Xamarin Basics
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
 
Don't Feed The Zombies!
Don't Feed The Zombies!Don't Feed The Zombies!
Don't Feed The Zombies!
 
Desarrollo multiplataforma de apps con GWT y PhoneGap
Desarrollo multiplataforma de apps con GWT y PhoneGapDesarrollo multiplataforma de apps con GWT y PhoneGap
Desarrollo multiplataforma de apps con GWT y PhoneGap
 
Charla 1er betabeers Córdoba
Charla 1er betabeers CórdobaCharla 1er betabeers Córdoba
Charla 1er betabeers Córdoba
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
Desarrollando productos basados en F/OSS
Desarrollando productos basados en F/OSSDesarrollando productos basados en F/OSS
Desarrollando productos basados en F/OSS
 
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Tech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttlerTech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttler
 

Último

ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 

Último (20)

ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 

Automatización Continua

  • 2. Terror en la softscuridad Historias que te dejarán pensando “Basada en hechos reales”
  • 3. El despertar de los muertos vivientes El fin del mundo: Año 2000
  • 4. El despertar de los muertos vivientes El fin del mundo se aproxima (1999) ▪ Bug del Año 2000! También conocido como “el error del milenio” ▪ OK! Con GeneXus es trabajo fácil ;) a) Instalo update de GX b) Abro todas las KB’s c) Build All d) Compilo e) Testeo f) Distribuyo “pa todo el mundo” g) Yupi! Contentos con la llegada del año 2000! ▪ OK! Manos a la obra! …. Mientras tanto…
  • 6. El despertar de los muertos vivientes Los muertos se levantan de la tumba! ▪ +50 KB’s Zombies!! (No se tocan hace mucho) ▪ Yupi! Disquetes de 5,25” y 3,5” (hermosos 90’s) ▪ +5 versiones diferentes de KB’s, desde GX 3.0 a 6.1 ▪ Muchas versiones! ¿Cuál es “la posta”? ▪ Yes! mucha cosa programada a mano!! ▪ Un mix de gustos! Cobol, FoxPro, VFP, VB… ▪ OMG! Cuantas instalaciones? Uuu… nice! ▪ A Correr!! Digo.. A Migrar!!
  • 7. El despertar de los muertos vivientes
  • 8. El despertar de los muertos vivientes
  • 9. El despertar de los muertos vivientes ¿Cómo matar un Zombie? ▪ Mantener vivo lo que vale la pena, el resto matarlo cuanto antes. ▪ Migrar siempre a última versión de GX (Si es automatizado mejor!) ▪ Refactoring! Refactoring! (en cuanto se descubra algo zombie, matarlo) ▪ Unificar! Una KB! Un Lenguaje! Un solo proceso! órganos internos apoyan a varios sistemas. ▪ Documentar! Documentar! (Principalmente proceso para no convertirse nuevamente en zombie) ▪ No permitir “chanchujo a mano” por fuera (si no queda otra, documentar y automatizar) ▪ Tracking! (saber qué cosas están mal y marcarlas para darle seguimiento) ▪ Build y Deploy, asegurarse que la nueva versión suplante a la zombie cuanto antes!
  • 10. El despertar de los muertos vivientes Lecciones aprendidas ▪ Gestión de Configuración de Software (SCM) es “La Ley” ▪ 90’s pocas herramientas de automatización, Build, Deploy y jugar con XPW era lo que se podía hacer. ▪ Gurda tus productos de trabajo y los backup en un medio que no falle, tener replicación en caso que falle. ▪ No puedes migrarte de una última versión de GX, pasa por intermedias ▪ Migrar de GX cuanto antes! Probar cuanto antes! Corregir cuanto antes! ▪ ¿Si funciona no lo toques? Mantenlo actualizado, si se deja de usar, backup y borrado (kill the zombies!). ▪ Testing? Solo manual, documentar las pruebas y versionarla igual que versionas el sistema. ▪ Distribución e instalación (algo que no se tiene en cuenta siempre). ▪ Versionar todo! Hacer backups periódicos! (y periódicamente probar que los backups funcionan!) ▪ Un ciclo completo de build, test y deploy cada tanto viene bien (puedes aprovechar al migrarte de ver de GX)
  • 11. Gizmo y el efecto “Gremlins” Mogwai “Espíritu maligno”
  • 12. Gizmo y el efecto “Gremlins” 2001 la odisea ▪ Producto Grande! KB’s Grandes! ▪ Muchas solicitudes de cambio! ▪ Muchos módulos nuevos! ▪ Muchas mejoras para hacer! ▪ Muchos programando todo el tiempo! ▪ Muchos haciendo macanas todo el tiempo! ▪ ¿En donde estoy? En el sector encargado de arreglar “macanas”.
  • 13. Gizmo y el efecto “Gremlins” ¿Quiéres un “Gizmo”? Respeta las siguientes reglas: ▪ No lo expongas a la luz! Lo mataría! ▪ Nunca le des de beber agua! ▪ Nunca lo mojes! ▪ Nunca darle de comer luego de la media noche! OK! Ahora estoy tranquilo, conozco las reglas!! ¿Pero todos los que juegan con “Gizmo”? ¿las conocen y las respetan?
  • 14. Gizmo y el efecto “Gremlins”
  • 15. Gizmo y el efecto “Gremlins” Gremlins! Corran! ▪ Se portan mal! ▪ Son impredecibles! ▪ Se reproducen rápidamente! ▪ No siguen las reglas! ▪ Son producto de “descuidados” o “mal informados” ▪ Y lo peór de todo! Quieren maltratar a “Gizmo”
  • 16. Gizmo y el efecto “Gremlins” Algunos tipos de Gremlins ▪ No encontramos el fuente del programa ▪ ¿Quién hizo el cambio y cuando? ▪ Grrr! Código repetido por todos lados! ▪ La documentación no corresponde! ▪ ¿Realmente lo testearon? ▪ OMG! Está en producción? ▪ ¿Quién te pidió que hicieras ese cambio? ▪ Ups, me equivoqué y envié un programa incorrecto
  • 17. Gizmo y el efecto “Gremlins” Gremlins vs Zombies ▪ A diferencia de los Zombies, los Gremlins son producto de mucha actividad, a medida que hay más trabajo, más puntos de fallo en el proceso pueden existir. ▪ Los Gremlins tienden a proliferen, se necesita de “Policías” encargados de que se cumpla “la ley” (procesos) para mantenerlos en contról. ▪ Es casi imposible no tener Gremlins, si haces mucho, y muchos participan, es natural que aparezcan, hay que trabajar de forma continua en intentar mitigarlos. ▪ Los “Policías” pueden ser personas u herramientas, o las dos trabajando juntas son lo ideal.
  • 18. Gizmo y el efecto “Gremlins” Caso Ejemplo: El Gremling de “datos truncados” ▪ 5 Bases de conocimiento con cientos de programas en cada una de ellas ▪ Cambio de un “dominio” de atributo de 14,5 a 18,5, todos los basados en se actualizaron correctamente. Se regeneró y recompiló y se distribuyó a los clientes. ▪ Los test no lograron el cubrimiento correcto, muchos de los programas fallaron en el cliente. ▪ No todos los programadores basaron en atributos sus variables ▪ Existía problemas además entre “cross KB’s” con llamadas a procesos externos
  • 19. Gizmo y el efecto “Gremlins” El Gremling de “datos truncados” Solución: ▪ 1 – Notificar a todos los programadores de los errores cometidos ▪ 2 – Crear una herramienta que intente detectar y corrija el problema automáticamente. Año 2001, se utilizaba GX 6.1, se analizaron las Spec y los XPW para detectar los programas con variables que podrían estar mal creadas (se parcheaba el xpw ya con el arreglo para luego ser integrado) ▪ 3 – Corregir todos los programas, y enviarlos a probar para luego enviarlo a los clientes. Se detectaron y corrigieron cientos de programas, antes de eso ya estaba cansado de tantas “idas y venidas”, se tomó el toro por las guampas y se solucionó el problema de raíz. ▪ 4 – Fue el inicio de primeras herramientas de inspección y corrección de programas, arreglaba “problemas” en lo programado en la KB local o se podía usar para procesar lo integrado en la KB en el servidor central.
  • 20. Gizmo y el efecto “Gremlins” Caso Ejemplo: El Gremling de “no se de donde viene” Solución: ▪ Se crearon herramientas para gestión de requerimientos ▪ Se crearon estándares de documentación para cada tipo de requerimiento. ▪ Se reservan los programas para su modificación asociados a un requerimiento (tipo lock, nadie puede trabajar en ellos hasta que sean liberados) ▪ Se documentan las modificaciones en los fuentes, asociando el bloque modificado a los requerimientos (se dejó de hacer cuando se implementó el diff entre versiones) ▪ Se “marca” los compilados con la firma del requerimiento (puedo saber desde un class o dll de qué versión del fuente fue compilado) ▪ Se realiza un empaquetado y build asociado a un requerimiento (esto puede varias según el tipo de desarrollo) ▪ Se creó una herramienta que permite ver la trazabilidad de todo el ciclo, desde un requerimiento puede verse toda la documentación, así como los fuentes involucrados y los paquetes de distribución e inclusive el código fuente (similar a GXServer)
  • 21. Gizmo y el efecto “Gremlins” Caso Ejemplo: El Gremling de “en .net me compila…” Solución: ▪ Se detectaron algunas limitaciones, que si los programadores programan y compilan en solo un lenguaje no saltan y no son evidentes en otros. El día que lo necesitan ver funcionando en ese otro lenguaje se enteran que tienen que cambiar la forma de programarlo. ▪ Se implementó en la KB de integración que siempre se compile en todos los lenguajes para asegurarse que en el proceso de integración lo integrado compila para todas las plataformas soportadas. ▪ Para algunos bugs de generación, se parchea el código generado.
  • 22. Gizmo y el efecto “Gremlins” Caso Ejemplo: El Gremling “el octavo pasajero” Solución: ▪ Existe metadata que viaja en los exports que afectan la definición de datos de la KB destino. El programador muchas veces tiene en su KB local una KB vieja o pruebas y cambios de otras cosas que no serían deseables que sean integradas en la KB central (sin embargo desapercibidamente viajan). ▪ Se implementó en la KB de integración un sistema de “filtro” que impide que se “rompa” o “cambie” algunas cosas en la KB central (dominios y subtipos era lo más común, si quieres hacer eso, tienes que seguir otro procedimiento formal).
  • 23. Gizmo y el efecto “Gremlins” Lecciones aprendidas ▪ Gestión de Configuración de Software (SCM) sigue siendo “La Ley” ▪ Inspeccionar el código y filtrar las cosas indeseadas permiten protegerte ▪ Gestionar requerimientos (tanto desarrollo como mantenimiento) y permitir una trazabilidad ayudan. ▪ Crear herramientas para de forma automática arreglar “macanas”. ▪ Versionado de código fuentes (e includido comparación entre las mismas) ayuda mucho. ▪ Testing? Sigue siendo manual, pero se crearon estándares y documentación formal, tanto para la documentación técnica, cambios, manuales y evidencias de pruebas funcionales. ▪ Un ciclo completo de build, test y deploy ayuda a detectar problemas (ahora se puede automatizar con GXPublic!)
  • 24. Entrando a la Matriz Año 2008
  • 25. Entrando a “La Matriz” Todo es parte de la matriz ▪ Producto Monstruoso! KB’s Monstruosas! ▪ Nuevos mercados, nuevos clientes, nuevos desafíos. ▪ Muchos más programando! ▪ Muchos haciendo “macanas” todo el tiempo! ▪ ¿En donde estoy? Estoy como “keymaker”. Abro puertas para llegar más rápido y mejor al destino Construyendo herramientas relacionadas con Build & Deploy
  • 26. Entrando a “La Matriz” ¿Todo es parte de la matriz? ▪ Definiciones ▪ Diseño ▪ Requerimientos ▪ Pruebas ▪ Integración ▪ Configuración ▪ Programación ▪ Build ▪ Release
  • 27. Entrando a “La Matriz” Foco 2001 a 2008 Foco >2008 ▪ Definiciones ▪ Pruebas ▪ Diseño ▪ Integración ▪ Requerimientos ▪ Configuración ▪ Programación ▪ Build ▪ Release
  • 28. Entrando a “La Matriz” Interrogantes ▪ Acelerar el proceso y minimizar errores ▪ Mejorar la comunicación ▪ Mejorar calidad del software ▪ Estado actual y calidad de desarrollo ▪ Herramientas adaptdas a la necesidad ▪ Bloques de construcción e interacción ▪ Infraestructura flexible ▪ Trazabilidad de origen a resultado
  • 29. Entrando a “La Matriz” Acelerar el proceso y minimizar errores ▪ Automatizando los siguientes procesos es posible acelerar y minimizar los errores ▪ Verificación ▪ Compilación ▪ Empaquetado ▪ Pruebas ▪ Inspección ▪ Distribución
  • 30. Entrando a “La Matriz” CI – Integración contínua ▪ Integrar, generar y distribuir lo antes posible para mitigar y reducir riesgos. ▪ Eliminar procesos manuales (errores humanos) ▪ Ejecutar de forma inmediata las pruebas ▪ Disponibilidad de builds actualizados ▪ Monitorización de las métricas de calidad del proyecto
  • 31. Entrando a “La Matriz” Automatizar tareas de poco valor ▪ Análisis de impacto antes de integrar (y filtrado) ▪ Consolidar programas ▪ Comparar programas ▪ Reorganización ▪ Generación y compilación ▪ Operaciones varias con XPZ ▪ Distribución y empaquetado de programas ▪ Comparador de esquemas de base de datos y GX
  • 32. Entrando a “La Matriz” Lecciones aprendidas ▪ Gestión de Configuración de Software (SCM) sigue siendo “La Ley” ▪ 7x24 ayuda más de lo que te imaginas ▪ Permite trabajo entre personas geográficamente distribuidas ▪ Una única forma de hacer las cosas (una única Ley) ▪ Reducir los tiempos de desarrollo y reléase ayuda a concentrarse en arreglar ▪ Escalable, puede crecer con el crecimiento del producto y la empresa ▪ Con cada corrida se aprende y mejora el proceso (mejora contínua)
  • 34. Recursos: Buscar y “estudiar” ▪ Gestión de Configuración de Software (SCM) ▪ Integración contínua (CI) ▪ Deploy contínuo ▪ ALM ▪ Ispección contínua