SlideShare una empresa de Scribd logo
1 de 19
Ingeniería del software y metodologías ágiles Rodrigo Corral rcorral@plainconcepts.com http://geeks.ms/blogs/rcorral MVP TeamSystem / CSM / CSP PlainConcepts
Ingeniería del software TDD Integración continua ATDD Mock GatedCheckins SCM Documentación Comunicación Calidad TesteoUnitario ROI Gestión de la configuración Construcción automatizada Gestión del cambio
SOCORRO     ! Pruebas unitarias Gestión de la configuración Integración continua Más en próximos capítulos… ;)
¿Qué es la ingeniería del software?
¿Es posible la agilidad sin buenos fundamentos de ingeniería del software? Posible, quizás… Probable… ¡NO!
Pruebas unitarias La detección más temprana posible Demostración de que no hemos roto nada Documentación Marcador claro de que una tarea está completada Mejora el diseño Verifica la correcta corrección de errores El tiempo de depuración se reduce
Pruebas unitarias ¿Cómo son las buenas pruebas unitarias? Se ejecuta rápido, se ejecuta rápido, se ejecuta rápido Tiene escasas dependencias Su alcance es claro y limitado Se ejecutan y pasan de manera independiente.  Revelan claramente su intención Tienen la mayor cobertura posible No alteran el estado del sistema
Gestión de la configuración Desarrollo concurrente y en equipo ‘Aislar’ el entorno de pruebas Lograr incrementos de funcionalidad potencialmente entregables Habilitar mecanismos ágiles y operativos para la corrección de errores
Desarrollo concurrente y en equipo $ PROJECT DEV - FEATURES + DEV-401 + Estructura de ramas Estructura de carpetas DEV-402 + DEV-401 Antes de comenzar a trabajar en una historia de usuario creamos una rama sobre la que realizamos el desarrollo DEV-402 RI RI Branch Branch DEV Concluido el desarrollo de la historia de usuario, integramos el código en la rama principal de desarrollo
Estructura de ramas ‘Aislar’ el entorno de pruebas Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 RI Branch + MAIN MAIN Cuando se cumplen las condiciones de calidad el código en desarrollo se integra en la rama MAIN para que los testers comiencen el trabajo de estabilización Cuando se cumplen las condiciones de calidad el código en desarrollo se integra en la rama MAIN para que los testers comiencen el trabajo de estabilización
Estructura de ramas Incrementos de funcionalidad potencialmente entregables Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 Fin de Sprint RI Branch + MAIN MAIN Usar ramas de característica garantiza que a la rama principal, sobre la que realizamos la estabilización del software, solo contendrá características completas y que han alcanzado un mínimo de calidad que permita que el trabajo de los testers sea productivo Realizar el desarrollo de nuevas funcionalidades sobre ramas dedicadas permite que si una funcionalidad no se completa a tiempo para incluirla en el Sprint Review el resto de la base de código principal siga siendo coherente y no incluya características incompletas
Estructura de ramas Corrección de errores Los errores que no son urgentes se corrigen sobre la línea principal de desarrollo y se llevan a las ramas de release, si es necesario, haciendo merge del changeset asociado a la corrección del error Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 RI RI FI Branch + MAIN MAIN Branch RI FI V1.0.1 + RELEASE RELEASE 1.0 + Contar con una rama de RELEASE nos permite liberar parches de emergencia, para ‘showstopers’, minimizando los posibles impactos sobre el entorno de producción y minimizando las necesidades de validación por parte de los testers RELEASE x.y.z V1.0 (hotfix)
Construcción automatizada Construcción automatizada:  patrón ‘onecommand complete build’ ¿Qué es completo? Define tu nivel de completo para tu ‘build’. Automatiza, automatiza, automatiza. Se puede compilar un kernel luego se puede compilar automáticamente tu proyecto. ¡No hay escusas! Entorno neutral En mi máquina compila. En mi máquina pasan los test. En mi máquina funciona.
Integración continua Precondición: construcción automatizada. Detección más temprana posible de: Errores de integración. Regresiones en las pruebas unitarias. Evita que la ejecución de los test unitarios se supedite a la voluntad del desarrollador. Debe proteger todas las ramas donde se integra código. Ocurre en cada check-in. Si se rompe una buildla prioridad es corregirla.
Integración continua
Integración contínua Ventajas: Los problemas de integración se detectan y corrigen continuamente. Alerta temprana de código erroneo/incompatible. Test unitario inmediato de todos los cambios. Disponibilidad total de una build “actual” para una demo de pruebas o para ser liberada. El impacto inmediato del check in de código erroneo actua como actua como incentivo para no meter la pata.
Integración contínua Inversiones: Necesita mucho mantenimiento. Necesita servidores de compilación. El impacto de los fallos actua como incentivo negativo para hacer check-ins frecuentes (backupcheck-in). El código erroneo solo se detecta una vez añadido al repositorio.
Gatedcheck-ins Cuando se rompe la build Es tarde el código ya está integrado Todo el equipo se ve afectado Alternativa: gatedcheck-ins.
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Integración Continua con Team Foundation Server
Integración Continua con Team Foundation ServerIntegración Continua con Team Foundation Server
Integración Continua con Team Foundation Serverrido
 
Frank estaba ensayo
Frank estaba ensayoFrank estaba ensayo
Frank estaba ensayoID Z
 
Presentacion de Integración Continua
Presentacion de Integración ContinuaPresentacion de Integración Continua
Presentacion de Integración ContinuaRodrigo Ayala
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de softwarecodicia316
 
Introducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetIntroducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetAbel Quintana Lopez
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOpsHablemosDeTesting
 
Testing como parte de la cultura DevOps
Testing como parte de la cultura DevOpsTesting como parte de la cultura DevOps
Testing como parte de la cultura DevOpsAbel Quintana Lopez
 
Cómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasCómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasAbel Quintana Lopez
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaJose Luis Soria
 
Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Naim Jhon Cruzado Paredes
 
Aug frontend dev ops
Aug frontend dev opsAug frontend dev ops
Aug frontend dev opsMitzi Moncada
 
Pruebas Unitarias
Pruebas UnitariasPruebas Unitarias
Pruebas Unitariasggarber
 
Pruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones webPruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones webGiannis Morales
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1Juanes Alzt
 

La actualidad más candente (20)

Integración Continua con Team Foundation Server
Integración Continua con Team Foundation ServerIntegración Continua con Team Foundation Server
Integración Continua con Team Foundation Server
 
Frank estaba ensayo
Frank estaba ensayoFrank estaba ensayo
Frank estaba ensayo
 
Presentacion de Integración Continua
Presentacion de Integración ContinuaPresentacion de Integración Continua
Presentacion de Integración Continua
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Introducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetIntroducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .Net
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
 
Testing como parte de la cultura DevOps
Testing como parte de la cultura DevOpsTesting como parte de la cultura DevOps
Testing como parte de la cultura DevOps
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Cómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasCómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebas
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
 
Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010
 
Aug frontend dev ops
Aug frontend dev opsAug frontend dev ops
Aug frontend dev ops
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Pruebas Unitarias
Pruebas UnitariasPruebas Unitarias
Pruebas Unitarias
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Pruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones webPruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones web
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 

Destacado

Collage 3° DíA Ingresantes 2010
Collage 3° DíA Ingresantes 2010Collage 3° DíA Ingresantes 2010
Collage 3° DíA Ingresantes 2010Julieta
 
Elecciones2010 - SANTOS Propuesta TIC para Colombia
Elecciones2010 - SANTOS Propuesta TIC para ColombiaElecciones2010 - SANTOS Propuesta TIC para Colombia
Elecciones2010 - SANTOS Propuesta TIC para ColombiaCINTELColombia
 
Plan de tratamiento tpi 2010 2 rodriguez y basora
Plan de tratamiento tpi 2010   2  rodriguez y basoraPlan de tratamiento tpi 2010   2  rodriguez y basora
Plan de tratamiento tpi 2010 2 rodriguez y basoraMilagros Daly
 
Por Que Escogí La Carrera De ComunicióN Social
Por Que Escogí La Carrera De ComunicióN SocialPor Que Escogí La Carrera De ComunicióN Social
Por Que Escogí La Carrera De ComunicióN SocialJeysi
 
Motivación
MotivaciónMotivación
MotivaciónKely
 
Manual Metodologico De Mecanismos Y Estrategias De Control Comunitario
Manual Metodologico De Mecanismos Y Estrategias De Control ComunitarioManual Metodologico De Mecanismos Y Estrategias De Control Comunitario
Manual Metodologico De Mecanismos Y Estrategias De Control ComunitarioObservatorio Politico Dominicano
 
2 10 ParticipacióN De La Comunidad En Las PolíTicas De
2 10 ParticipacióN De La Comunidad En Las PolíTicas De2 10 ParticipacióN De La Comunidad En Las PolíTicas De
2 10 ParticipacióN De La Comunidad En Las PolíTicas Denekochocolat
 
15 tips para integrar tus videos de youtube en tu sitio web
15 tips para integrar tus videos de youtube en tu sitio web15 tips para integrar tus videos de youtube en tu sitio web
15 tips para integrar tus videos de youtube en tu sitio webTula Alcocer [Fortuna]
 
Actividad Ciencias Fisica 1er año
Actividad Ciencias Fisica 1er añoActividad Ciencias Fisica 1er año
Actividad Ciencias Fisica 1er añomalaclau
 
Amirez bernard pronostico tpi 2010 2
Amirez bernard pronostico tpi 2010   2Amirez bernard pronostico tpi 2010   2
Amirez bernard pronostico tpi 2010 2Milagros Daly
 
Derechos De Autor
Derechos De AutorDerechos De Autor
Derechos De Autorjohanagro
 
Microprocesadores Grupo 3
Microprocesadores Grupo 3Microprocesadores Grupo 3
Microprocesadores Grupo 3wilmer92
 
Unidade DidáCtica Xogos Estupendos Con Material De Escoura
Unidade DidáCtica Xogos Estupendos Con Material De EscouraUnidade DidáCtica Xogos Estupendos Con Material De Escoura
Unidade DidáCtica Xogos Estupendos Con Material De Escouracortinhas
 

Destacado (20)

Collage 3° DíA Ingresantes 2010
Collage 3° DíA Ingresantes 2010Collage 3° DíA Ingresantes 2010
Collage 3° DíA Ingresantes 2010
 
LO2
LO2LO2
LO2
 
Estructuras i
Estructuras iEstructuras i
Estructuras i
 
Elecciones2010 - SANTOS Propuesta TIC para Colombia
Elecciones2010 - SANTOS Propuesta TIC para ColombiaElecciones2010 - SANTOS Propuesta TIC para Colombia
Elecciones2010 - SANTOS Propuesta TIC para Colombia
 
Plan de tratamiento tpi 2010 2 rodriguez y basora
Plan de tratamiento tpi 2010   2  rodriguez y basoraPlan de tratamiento tpi 2010   2  rodriguez y basora
Plan de tratamiento tpi 2010 2 rodriguez y basora
 
Por Que Escogí La Carrera De ComunicióN Social
Por Que Escogí La Carrera De ComunicióN SocialPor Que Escogí La Carrera De ComunicióN Social
Por Que Escogí La Carrera De ComunicióN Social
 
Motivación
MotivaciónMotivación
Motivación
 
Manual Metodologico De Mecanismos Y Estrategias De Control Comunitario
Manual Metodologico De Mecanismos Y Estrategias De Control ComunitarioManual Metodologico De Mecanismos Y Estrategias De Control Comunitario
Manual Metodologico De Mecanismos Y Estrategias De Control Comunitario
 
2 10 ParticipacióN De La Comunidad En Las PolíTicas De
2 10 ParticipacióN De La Comunidad En Las PolíTicas De2 10 ParticipacióN De La Comunidad En Las PolíTicas De
2 10 ParticipacióN De La Comunidad En Las PolíTicas De
 
Productos mega kawaii vienen!!!
Productos mega kawaii vienen!!!Productos mega kawaii vienen!!!
Productos mega kawaii vienen!!!
 
15 tips para integrar tus videos de youtube en tu sitio web
15 tips para integrar tus videos de youtube en tu sitio web15 tips para integrar tus videos de youtube en tu sitio web
15 tips para integrar tus videos de youtube en tu sitio web
 
1punto4
1punto41punto4
1punto4
 
Actividad Ciencias Fisica 1er año
Actividad Ciencias Fisica 1er añoActividad Ciencias Fisica 1er año
Actividad Ciencias Fisica 1er año
 
Amirez bernard pronostico tpi 2010 2
Amirez bernard pronostico tpi 2010   2Amirez bernard pronostico tpi 2010   2
Amirez bernard pronostico tpi 2010 2
 
Romanticismo
RomanticismoRomanticismo
Romanticismo
 
Derechos De Autor
Derechos De AutorDerechos De Autor
Derechos De Autor
 
Mastermind puntaumbria
Mastermind puntaumbria Mastermind puntaumbria
Mastermind puntaumbria
 
Microprocesadores Grupo 3
Microprocesadores Grupo 3Microprocesadores Grupo 3
Microprocesadores Grupo 3
 
Menu Principal
Menu PrincipalMenu Principal
Menu Principal
 
Unidade DidáCtica Xogos Estupendos Con Material De Escoura
Unidade DidáCtica Xogos Estupendos Con Material De EscouraUnidade DidáCtica Xogos Estupendos Con Material De Escoura
Unidade DidáCtica Xogos Estupendos Con Material De Escoura
 

Similar a Ingeniería del software ágil

Fase De Pruebas Angel Chucho
Fase De Pruebas Angel ChuchoFase De Pruebas Angel Chucho
Fase De Pruebas Angel Chuchoangel.carvajal
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
¿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
 
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles2009
 
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...adrianeidelman
 
Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins armolinamilla
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETLa Red DBAccess
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoTestingUy
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareJose Manuel Ortega Candel
 
Modelo lineal secuencial
Modelo lineal secuencialModelo lineal secuencial
Modelo lineal secuencialjenmer
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systemsfmmeson
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion ContinuaLenin Lozano
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 

Similar a Ingeniería del software ágil (20)

Fase De Pruebas Angel Chucho
Fase De Pruebas Angel ChuchoFase De Pruebas Angel Chucho
Fase De Pruebas Angel Chucho
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
¿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?
 
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
 
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
 
Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins
 
Prueba unitaria
Prueba unitariaPrueba unitaria
Prueba unitaria
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
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
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Modelo lineal secuencial
Modelo lineal secuencialModelo lineal secuencial
Modelo lineal secuencial
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systems
 
Una introducción a la Integración continua
Una introducción a la Integración continuaUna introducción a la Integración continua
Una introducción a la Integración continua
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Sqm
SqmSqm
Sqm
 

Más de Rodrigo Corral

El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++Rodrigo Corral
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeRodrigo Corral
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL ServerRodrigo Corral
 
CAS 2016 Scrum internals - Por qué scrum funciona
CAS 2016   Scrum internals - Por qué scrum funcionaCAS 2016   Scrum internals - Por qué scrum funciona
CAS 2016 Scrum internals - Por qué scrum funcionaRodrigo Corral
 
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxDotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxRodrigo Corral
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciadorRodrigo Corral
 
Introducción a phone gap
Introducción a phone gapIntroducción a phone gap
Introducción a phone gapRodrigo Corral
 
Llevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesLlevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesRodrigo Corral
 
Leyes que todo agilista debería conocer
Leyes que todo agilista debería conocerLeyes que todo agilista debería conocer
Leyes que todo agilista debería conocerRodrigo Corral
 
Scrum, Team System y el mundo real
Scrum, Team System y el mundo realScrum, Team System y el mundo real
Scrum, Team System y el mundo realRodrigo Corral
 
Control de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemControl de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemRodrigo Corral
 
Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Rodrigo Corral
 
Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Rodrigo Corral
 

Más de Rodrigo Corral (14)

El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL Server
 
CAS 2016 Scrum internals - Por qué scrum funciona
CAS 2016   Scrum internals - Por qué scrum funcionaCAS 2016   Scrum internals - Por qué scrum funciona
CAS 2016 Scrum internals - Por qué scrum funciona
 
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxDotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciador
 
Introducción a phone gap
Introducción a phone gapIntroducción a phone gap
Introducción a phone gap
 
Llevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesLlevando scrum a grandes organizaciones
Llevando scrum a grandes organizaciones
 
Leyes que todo agilista debería conocer
Leyes que todo agilista debería conocerLeyes que todo agilista debería conocer
Leyes que todo agilista debería conocer
 
Deuda técnica
Deuda técnicaDeuda técnica
Deuda técnica
 
Scrum, Team System y el mundo real
Scrum, Team System y el mundo realScrum, Team System y el mundo real
Scrum, Team System y el mundo real
 
Control de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemControl de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team System
 
Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?
 
Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010
 

Último

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Último (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

Ingeniería del software ágil

  • 1. Ingeniería del software y metodologías ágiles Rodrigo Corral rcorral@plainconcepts.com http://geeks.ms/blogs/rcorral MVP TeamSystem / CSM / CSP PlainConcepts
  • 2. Ingeniería del software TDD Integración continua ATDD Mock GatedCheckins SCM Documentación Comunicación Calidad TesteoUnitario ROI Gestión de la configuración Construcción automatizada Gestión del cambio
  • 3. SOCORRO ! Pruebas unitarias Gestión de la configuración Integración continua Más en próximos capítulos… ;)
  • 4. ¿Qué es la ingeniería del software?
  • 5. ¿Es posible la agilidad sin buenos fundamentos de ingeniería del software? Posible, quizás… Probable… ¡NO!
  • 6. Pruebas unitarias La detección más temprana posible Demostración de que no hemos roto nada Documentación Marcador claro de que una tarea está completada Mejora el diseño Verifica la correcta corrección de errores El tiempo de depuración se reduce
  • 7. Pruebas unitarias ¿Cómo son las buenas pruebas unitarias? Se ejecuta rápido, se ejecuta rápido, se ejecuta rápido Tiene escasas dependencias Su alcance es claro y limitado Se ejecutan y pasan de manera independiente. Revelan claramente su intención Tienen la mayor cobertura posible No alteran el estado del sistema
  • 8. Gestión de la configuración Desarrollo concurrente y en equipo ‘Aislar’ el entorno de pruebas Lograr incrementos de funcionalidad potencialmente entregables Habilitar mecanismos ágiles y operativos para la corrección de errores
  • 9. Desarrollo concurrente y en equipo $ PROJECT DEV - FEATURES + DEV-401 + Estructura de ramas Estructura de carpetas DEV-402 + DEV-401 Antes de comenzar a trabajar en una historia de usuario creamos una rama sobre la que realizamos el desarrollo DEV-402 RI RI Branch Branch DEV Concluido el desarrollo de la historia de usuario, integramos el código en la rama principal de desarrollo
  • 10. Estructura de ramas ‘Aislar’ el entorno de pruebas Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 RI Branch + MAIN MAIN Cuando se cumplen las condiciones de calidad el código en desarrollo se integra en la rama MAIN para que los testers comiencen el trabajo de estabilización Cuando se cumplen las condiciones de calidad el código en desarrollo se integra en la rama MAIN para que los testers comiencen el trabajo de estabilización
  • 11. Estructura de ramas Incrementos de funcionalidad potencialmente entregables Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 Fin de Sprint RI Branch + MAIN MAIN Usar ramas de característica garantiza que a la rama principal, sobre la que realizamos la estabilización del software, solo contendrá características completas y que han alcanzado un mínimo de calidad que permita que el trabajo de los testers sea productivo Realizar el desarrollo de nuevas funcionalidades sobre ramas dedicadas permite que si una funcionalidad no se completa a tiempo para incluirla en el Sprint Review el resto de la base de código principal siga siendo coherente y no incluya características incompletas
  • 12. Estructura de ramas Corrección de errores Los errores que no son urgentes se corrigen sobre la línea principal de desarrollo y se llevan a las ramas de release, si es necesario, haciendo merge del changeset asociado a la corrección del error Estructura de carpetas DEV-401 $ PROJECT + DEV-402 DEV RI - FEATURES Branch RI Branch + DEV-401 DEV + DEV-402 RI RI FI Branch + MAIN MAIN Branch RI FI V1.0.1 + RELEASE RELEASE 1.0 + Contar con una rama de RELEASE nos permite liberar parches de emergencia, para ‘showstopers’, minimizando los posibles impactos sobre el entorno de producción y minimizando las necesidades de validación por parte de los testers RELEASE x.y.z V1.0 (hotfix)
  • 13. Construcción automatizada Construcción automatizada: patrón ‘onecommand complete build’ ¿Qué es completo? Define tu nivel de completo para tu ‘build’. Automatiza, automatiza, automatiza. Se puede compilar un kernel luego se puede compilar automáticamente tu proyecto. ¡No hay escusas! Entorno neutral En mi máquina compila. En mi máquina pasan los test. En mi máquina funciona.
  • 14. Integración continua Precondición: construcción automatizada. Detección más temprana posible de: Errores de integración. Regresiones en las pruebas unitarias. Evita que la ejecución de los test unitarios se supedite a la voluntad del desarrollador. Debe proteger todas las ramas donde se integra código. Ocurre en cada check-in. Si se rompe una buildla prioridad es corregirla.
  • 16. Integración contínua Ventajas: Los problemas de integración se detectan y corrigen continuamente. Alerta temprana de código erroneo/incompatible. Test unitario inmediato de todos los cambios. Disponibilidad total de una build “actual” para una demo de pruebas o para ser liberada. El impacto inmediato del check in de código erroneo actua como actua como incentivo para no meter la pata.
  • 17. Integración contínua Inversiones: Necesita mucho mantenimiento. Necesita servidores de compilación. El impacto de los fallos actua como incentivo negativo para hacer check-ins frecuentes (backupcheck-in). El código erroneo solo se detecta una vez añadido al repositorio.
  • 18. Gatedcheck-ins Cuando se rompe la build Es tarde el código ya está integrado Todo el equipo se ve afectado Alternativa: gatedcheck-ins.