SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
David de Francisco Marcos
Msc, MBA, PMP y CSM
XP y Entornos
de Desarrollo
Ágil
Máster en Informática
Universidad de Valladolid
2014-2015
Sesión 3
david.de.fco@gmail.com
www.linkedin.com/in/daviddefco
Notas Rápidas sobre XP
Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
Análisis Causa - Efecto
5 Whys
Para llegar al fondo de algo
continuar preguntando por qué
hasta que llegamos a un motivo
de peso
Diagrama de Raspa de Pez
1) Dibujar el problema a resolver
2) Categorizar las causas
3) Detallar las causas
4) Analizar causas principales
5) Buscar correlaciones entre ellas
Ejemplo Cucumber
Característica: Proceso de login de mi tienda online
Como cliente de la tienda online
Quiero poder autenticarme en la tienda
De forma que pueda acceder al contenido de la aplicación y mi
autenticación quede registrada a lo largo de toda la sesión
Antecedentes:
Dado que me encuentro en la vista de autenticacion de la Web
Y que no estoy autenticado dentro de la aplicación
Escenario: proceso de autenticación
Esquema del escenario: autenticación
Cuando relleno el campo de identificador de usuario con el valor
<username>
Y relleno el campo de password con el valor <password>
Entonces al pulsar en el botón de acción debería estar en la
pagina <page>
Ejemplos:
| username | password | page |
| user01 | claveerronea | LoginPage |
| inexistente| user01pass | LoginPage |
| super | user01pass | RootPage |
TDD y BDD
TDD: Ciclo rápido de:
Prueba
Desarrollo
Refactorización
Reduce el efecto de errores y
mejora el diseño del código
Behaviour Driven Development
Lleva TDD un paso más allá, al
diseño guiado por dominio,
involucrando a los BSE en los
procesos de test / aceptación
Refactorización
Refactorizar es cambiar el
código fuente sin alterar su
funcionalidad.
Beneficios
Mejora el diseño del software
Contribuye a detectar errores
Facilita la comprensión del SW
Ayuda a programar más rápido
Imagen obtenida de
www.flickr.com/photos/danisarda
Ejemplo Refactorización
public class CalcSal {
private static final int meses = 12;
private static final double ss = 6.3;
private static final double imp = 14;
public static double calcSalNet(double s) {
if (s < 0) throw new IllegalArgumentException();
double sMens = s/meses;
return sMens - (s/meses * (ss/100)) - (sMens * (imp/100));
}
}
Ejemplo Refactorización
public class Salario {
private static final int CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL = 12;
private static final int NUMERO_DE_PAGAS_ANUALES = 12;
private static final double PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL = 6.3;
private static final double PORCENTAJE_RETENCION_IRPF = 14;
public static double calcularSalarioMensualNeto(double salarioAnualBruto) {
validarCifraDeSalario(salarioAnualBruto);
double salarioMensualBruto = salarioAnualBruto / NUMERO_DE_PAGAS_ANUALES;
return salarioMensualBruto
- getRetencionesMensualesSeguridadSocial(salarioAnualBruto)
- getRetencionesMensualesIrpf(salarioMensualBruto);
}
private static void validarCifraDeSalario(double salarioParaValidar) {
if (salarioParaValidar < 0) throw new IllegalArgumentException(
"El valor de un salario no puede ser menor que 0"
);
}
private static double getRetencionesMensualesSeguridadSocial(double salarioAnualBruto) {
double decimalRetencionSeguridadSocial = PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL / 100;
return (salarioAnualBruto / CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL) * decimalRetencionSeguridadSocial;
}
private static double getRetencionesMensualesIrpf(double salarioMensualBruto) {
double decimalRetencionIrpf = PORCENTAJE_RETENCION_IRPF / 100;
return (salarioMensualBruto * decimalRetencionIrpf);
}
}
Entornos de Desarrollo
Ejemplo Entorno de Desarrollo
Gestión de las Issues
Servidor CI
Métricas de Calidad (Sonar)
Próximos Pasos:
1) Encuesta: https://es.surveymonkey.com/s/WJSJVNS
2) Bibliografía y PPTs en la plataforma y Slideshare
3) Cualquier duda / comentario es bienvenido
David de Francisco Marcos
Msc, MBA, PMP y CSM
david.de.fco@gmail.com
www.linkedin.com/in/daviddefco
Gracias por la Atención

Más contenido relacionado

La actualidad más candente

Introduccion A Scrum, con caso práctico
Introduccion A Scrum, con caso prácticoIntroduccion A Scrum, con caso práctico
Introduccion A Scrum, con caso prácticoguestebf771
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareMarco Avendaño
 
Scrum sesion 03 principios
Scrum sesion 03 principiosScrum sesion 03 principios
Scrum sesion 03 principiosOpen Source Pyme
 
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Sergio Yazyi
 
SCRUM un camino exitoso, no sólo para el Desarrollo de SW
SCRUM un camino  exitoso, no sólo para el Desarrollo de SWSCRUM un camino  exitoso, no sólo para el Desarrollo de SW
SCRUM un camino exitoso, no sólo para el Desarrollo de SWscrumecuador
 
Design QA: las grandes experiencias no ocurren por accidente
Design QA: las grandes experiencias no ocurren por accidente Design QA: las grandes experiencias no ocurren por accidente
Design QA: las grandes experiencias no ocurren por accidente Lucía Bustamante
 
Prototipado Agil por Mateu Batle Sastre
Prototipado Agil por Mateu Batle SastrePrototipado Agil por Mateu Batle Sastre
Prototipado Agil por Mateu Batle SastreIPAE_INNOVA
 

La actualidad más candente (20)

Principios Ágiles y Lean-Kanban
Principios Ágiles y Lean-KanbanPrincipios Ágiles y Lean-Kanban
Principios Ágiles y Lean-Kanban
 
Framework Scrum
Framework ScrumFramework Scrum
Framework Scrum
 
Introducción a SCRUM
Introducción a SCRUMIntroducción a SCRUM
Introducción a SCRUM
 
Introduccion a Scrum
Introduccion a ScrumIntroduccion a Scrum
Introduccion a Scrum
 
3.desarrollo ágil
3.desarrollo ágil3.desarrollo ágil
3.desarrollo ágil
 
4.aspectos humanos de sistemas
4.aspectos humanos de sistemas4.aspectos humanos de sistemas
4.aspectos humanos de sistemas
 
Metodologías Agiles
Metodologías AgilesMetodologías Agiles
Metodologías Agiles
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3
 
Scrum En 20 Minutos
Scrum En 20 MinutosScrum En 20 Minutos
Scrum En 20 Minutos
 
Scrum
ScrumScrum
Scrum
 
Introduccion A Scrum, con caso práctico
Introduccion A Scrum, con caso prácticoIntroduccion A Scrum, con caso práctico
Introduccion A Scrum, con caso práctico
 
2.procesos de desarrollo de software
2.procesos de desarrollo de software2.procesos de desarrollo de software
2.procesos de desarrollo de software
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del software
 
Scrum sesion 03 principios
Scrum sesion 03 principiosScrum sesion 03 principios
Scrum sesion 03 principios
 
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
 
SCRUM un camino exitoso, no sólo para el Desarrollo de SW
SCRUM un camino  exitoso, no sólo para el Desarrollo de SWSCRUM un camino  exitoso, no sólo para el Desarrollo de SW
SCRUM un camino exitoso, no sólo para el Desarrollo de SW
 
Inceptions
InceptionsInceptions
Inceptions
 
Introduccion a Scrum
Introduccion a ScrumIntroduccion a Scrum
Introduccion a Scrum
 
Design QA: las grandes experiencias no ocurren por accidente
Design QA: las grandes experiencias no ocurren por accidente Design QA: las grandes experiencias no ocurren por accidente
Design QA: las grandes experiencias no ocurren por accidente
 
Prototipado Agil por Mateu Batle Sastre
Prototipado Agil por Mateu Batle SastrePrototipado Agil por Mateu Batle Sastre
Prototipado Agil por Mateu Batle Sastre
 

Destacado

Metricas calidad de software
Metricas calidad de softwareMetricas calidad de software
Metricas calidad de softwareCristian Proaño
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del softwareReivaj Sagarv
 
Estándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina OrtegaEstándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina Ortega2008PA2Info3
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareIker Canarias
 

Destacado (8)

Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Programacion extrema_WR
Programacion extrema_WRProgramacion extrema_WR
Programacion extrema_WR
 
Metricas calidad de software
Metricas calidad de softwareMetricas calidad de software
Metricas calidad de software
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del software
 
Estándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina OrtegaEstándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina Ortega
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 

Similar a Xp y Entornos de Desarrollo Software

Desafíos en las organizaciones que desarrollan software
Desafíos en las organizaciones que desarrollan softwareDesafíos en las organizaciones que desarrollan software
Desafíos en las organizaciones que desarrollan softwareAlvaro Ruiz de Mendarozqueta
 
Proceso Unificado de Desarrollo
Proceso Unificado de DesarrolloProceso Unificado de Desarrollo
Proceso Unificado de DesarrolloFausto J Loja Mora
 
Bedomax - Campus Party 2013
Bedomax - Campus Party 2013Bedomax - Campus Party 2013
Bedomax - Campus Party 2013bedomax
 
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Software Guru
 
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
 
Presentacion Microsoft
Presentacion MicrosoftPresentacion Microsoft
Presentacion Microsoftfcolauravel
 
Conferencia Gestión de Proyectos de TI
Conferencia Gestión de Proyectos de TIConferencia Gestión de Proyectos de TI
Conferencia Gestión de Proyectos de TIhanzcg
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Softwareeeencalada
 
SQLSaturday 346 El Salvador 2015 Cubes Performance
SQLSaturday 346 El Salvador 2015 Cubes PerformanceSQLSaturday 346 El Salvador 2015 Cubes Performance
SQLSaturday 346 El Salvador 2015 Cubes PerformanceMarco Tulio Gómez Reyes
 
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL ServerJohn Bulla
 
Programación extrema
Programación extremaProgramación extrema
Programación extremaBrandon Betto
 
s05 - paradigma de construcción de soluciones basado en desarrollo de código
s05 - paradigma de construcción de soluciones basado en desarrollo de códigos05 - paradigma de construcción de soluciones basado en desarrollo de código
s05 - paradigma de construcción de soluciones basado en desarrollo de códigoMario Solarte
 
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
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrolloitsarellano
 
Optimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis ServicesOptimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis ServicesMarco Tulio Gómez Reyes
 
Metodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAMetodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAGustavo Andres Brey
 

Similar a Xp y Entornos de Desarrollo Software (20)

Desafíos en las organizaciones que desarrollan software
Desafíos en las organizaciones que desarrollan softwareDesafíos en las organizaciones que desarrollan software
Desafíos en las organizaciones que desarrollan software
 
Proceso Unificado de Desarrollo
Proceso Unificado de DesarrolloProceso Unificado de Desarrollo
Proceso Unificado de Desarrollo
 
Bedomax - Campus Party 2013
Bedomax - Campus Party 2013Bedomax - Campus Party 2013
Bedomax - Campus Party 2013
 
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
 
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
 
Presentacion Microsoft
Presentacion MicrosoftPresentacion Microsoft
Presentacion Microsoft
 
Conferencia Gestión de Proyectos de TI
Conferencia Gestión de Proyectos de TIConferencia Gestión de Proyectos de TI
Conferencia Gestión de Proyectos de TI
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Software
 
SQM Lifecycle models
SQM Lifecycle modelsSQM Lifecycle models
SQM Lifecycle models
 
SQLSaturday 346 El Salvador 2015 Cubes Performance
SQLSaturday 346 El Salvador 2015 Cubes PerformanceSQLSaturday 346 El Salvador 2015 Cubes Performance
SQLSaturday 346 El Salvador 2015 Cubes Performance
 
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
 
Programación extrema
Programación extremaProgramación extrema
Programación extrema
 
s05 - paradigma de construcción de soluciones basado en desarrollo de código
s05 - paradigma de construcción de soluciones basado en desarrollo de códigos05 - paradigma de construcción de soluciones basado en desarrollo de código
s05 - paradigma de construcción de soluciones basado en desarrollo de código
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
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
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
 
Optimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis ServicesOptimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis Services
 
Metodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAMetodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBA
 

Más de David de Francisco Marcos

Más de David de Francisco Marcos (10)

Introducción a Earned Value Management
Introducción a Earned Value ManagementIntroducción a Earned Value Management
Introducción a Earned Value Management
 
Principios Ágiles para la Gestión de Proyectos TIC
Principios Ágiles para la Gestión de Proyectos TICPrincipios Ágiles para la Gestión de Proyectos TIC
Principios Ágiles para la Gestión de Proyectos TIC
 
AddHunters: Proyecto MBA Executive
AddHunters: Proyecto MBA ExecutiveAddHunters: Proyecto MBA Executive
AddHunters: Proyecto MBA Executive
 
Notas Sobre la Gestión de Proyectos
Notas Sobre la Gestión de ProyectosNotas Sobre la Gestión de Proyectos
Notas Sobre la Gestión de Proyectos
 
Introducción a Earned Value Magement
Introducción a Earned Value MagementIntroducción a Earned Value Magement
Introducción a Earned Value Magement
 
Introduccion a Earned Valuema Magement
Introduccion a Earned Valuema MagementIntroduccion a Earned Valuema Magement
Introduccion a Earned Valuema Magement
 
Introducción a la Gestión de Riesgos
Introducción a la Gestión de RiesgosIntroducción a la Gestión de Riesgos
Introducción a la Gestión de Riesgos
 
Un Poco de Historia sobre Proyectos
Un Poco de Historia sobre ProyectosUn Poco de Historia sobre Proyectos
Un Poco de Historia sobre Proyectos
 
Introducción a la gestión de riesgos
Introducción a la gestión de riesgosIntroducción a la gestión de riesgos
Introducción a la gestión de riesgos
 
Principios de Metodologías Ágiles
Principios de Metodologías ÁgilesPrincipios de Metodologías Ágiles
Principios de Metodologías Ágiles
 

Xp y Entornos de Desarrollo Software

  • 1. David de Francisco Marcos Msc, MBA, PMP y CSM XP y Entornos de Desarrollo Ágil Máster en Informática Universidad de Valladolid 2014-2015 Sesión 3 david.de.fco@gmail.com www.linkedin.com/in/daviddefco
  • 3. Desarrollar Análisis Incremental Tests de Cliente TDD Refactorización Diseño Simple Desarrollo Incremental Spikes Optimización Tests Exploratorios Prácticas XP Pensar Programación Pares Trabajo con Energía Controles Visuales Análisis Causa – Efecto Retrospectivas Colaborar Confianza Sentarse Juntos Cliente Involucrado Daily Meetings Estándares de Código Demos Continuas Informar y Comunicar Planificar Visión Planificar Entregas Juegos de Planificación Gestión de Riesgos Historias Backlogs Entregar Definición de Hecho No Bugs Control de Versiones Build en 10 Minutos Autoría Compartida Documentación
  • 4. Desarrollar Análisis Incremental Tests de Cliente TDD Refactorización Diseño Simple Desarrollo Incremental Spikes Optimización Tests Exploratorios Prácticas XP Pensar Programación Pares Trabajo con Energía Controles Visuales Análisis Causa – Efecto Retrospectivas Colaborar Confianza Sentarse Juntos Cliente Involucrado Daily Meetings Estándares de Código Demos Continuas Informar y Comunicar Planificar Visión Planificar Entregas Juegos de Planificación Gestión de Riesgos Historias Backlogs Entregar Definición de Hecho No Bugs Control de Versiones Build en 10 Minutos Autoría Compartida Documentación
  • 5. Análisis Causa - Efecto 5 Whys Para llegar al fondo de algo continuar preguntando por qué hasta que llegamos a un motivo de peso Diagrama de Raspa de Pez 1) Dibujar el problema a resolver 2) Categorizar las causas 3) Detallar las causas 4) Analizar causas principales 5) Buscar correlaciones entre ellas
  • 6. Ejemplo Cucumber Característica: Proceso de login de mi tienda online Como cliente de la tienda online Quiero poder autenticarme en la tienda De forma que pueda acceder al contenido de la aplicación y mi autenticación quede registrada a lo largo de toda la sesión Antecedentes: Dado que me encuentro en la vista de autenticacion de la Web Y que no estoy autenticado dentro de la aplicación Escenario: proceso de autenticación Esquema del escenario: autenticación Cuando relleno el campo de identificador de usuario con el valor <username> Y relleno el campo de password con el valor <password> Entonces al pulsar en el botón de acción debería estar en la pagina <page> Ejemplos: | username | password | page | | user01 | claveerronea | LoginPage | | inexistente| user01pass | LoginPage | | super | user01pass | RootPage | TDD y BDD TDD: Ciclo rápido de: Prueba Desarrollo Refactorización Reduce el efecto de errores y mejora el diseño del código Behaviour Driven Development Lleva TDD un paso más allá, al diseño guiado por dominio, involucrando a los BSE en los procesos de test / aceptación
  • 7. Refactorización Refactorizar es cambiar el código fuente sin alterar su funcionalidad. Beneficios Mejora el diseño del software Contribuye a detectar errores Facilita la comprensión del SW Ayuda a programar más rápido Imagen obtenida de www.flickr.com/photos/danisarda
  • 8. Ejemplo Refactorización public class CalcSal { private static final int meses = 12; private static final double ss = 6.3; private static final double imp = 14; public static double calcSalNet(double s) { if (s < 0) throw new IllegalArgumentException(); double sMens = s/meses; return sMens - (s/meses * (ss/100)) - (sMens * (imp/100)); } }
  • 9. Ejemplo Refactorización public class Salario { private static final int CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL = 12; private static final int NUMERO_DE_PAGAS_ANUALES = 12; private static final double PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL = 6.3; private static final double PORCENTAJE_RETENCION_IRPF = 14; public static double calcularSalarioMensualNeto(double salarioAnualBruto) { validarCifraDeSalario(salarioAnualBruto); double salarioMensualBruto = salarioAnualBruto / NUMERO_DE_PAGAS_ANUALES; return salarioMensualBruto - getRetencionesMensualesSeguridadSocial(salarioAnualBruto) - getRetencionesMensualesIrpf(salarioMensualBruto); } private static void validarCifraDeSalario(double salarioParaValidar) { if (salarioParaValidar < 0) throw new IllegalArgumentException( "El valor de un salario no puede ser menor que 0" ); } private static double getRetencionesMensualesSeguridadSocial(double salarioAnualBruto) { double decimalRetencionSeguridadSocial = PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL / 100; return (salarioAnualBruto / CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL) * decimalRetencionSeguridadSocial; } private static double getRetencionesMensualesIrpf(double salarioMensualBruto) { double decimalRetencionIrpf = PORCENTAJE_RETENCION_IRPF / 100; return (salarioMensualBruto * decimalRetencionIrpf); } }
  • 11. Ejemplo Entorno de Desarrollo
  • 12. Gestión de las Issues
  • 15. Próximos Pasos: 1) Encuesta: https://es.surveymonkey.com/s/WJSJVNS 2) Bibliografía y PPTs en la plataforma y Slideshare 3) Cualquier duda / comentario es bienvenido David de Francisco Marcos Msc, MBA, PMP y CSM david.de.fco@gmail.com www.linkedin.com/in/daviddefco Gracias por la Atención