XP y Entorno de Desarrollo Ágil
-
Upload
david-de-francisco-marcos -
Category
Technology
-
view
155 -
download
1
Transcript of XP y Entorno de Desarrollo Ágil
![Page 1: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/1.jpg)
David de Francisco MarcosMsc, MBA, PMP y CSM
XP y Entornos de Desarrollo Ágil
Máster en InformáticaUniversidad de Valladolid2015-2016
[email protected]/in/daviddefcohttp://es.slideshare.net/daviddefco
![Page 2: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/2.jpg)
Notas Rápidas sobre XP
![Page 3: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/3.jpg)
DesarrollarAnálisis IncrementalTests de ClienteTDDRefactorizaciónDiseño SimpleDesarrollo IncrementalSpikesOptimizaciónTests Exploratorios
Prácticas XPPensarProgramación ParesTrabajo con EnergíaControles VisualesAnálisis Causa – EfectoRetrospectivas
ColaborarConfianzaSentarse JuntosCliente InvolucradoDaily MeetingsEstándares de CódigoDemos ContinuasInformar y Comunicar
PlanificarVisiónPlanificar EntregasJuegos de PlanificaciónGestión de RiesgosHistoriasBacklogs
EntregarDefinición de HechoNo BugsControl de VersionesBuild en 10 MinutosAutoría CompartidaDocumentación
![Page 4: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/4.jpg)
DesarrollarAnálisis IncrementalTests de ClienteTDDRefactorizaciónDiseño SimpleDesarrollo IncrementalSpikesOptimizaciónTests Exploratorios
Prácticas XPPensarProgramación ParesTrabajo con EnergíaControles VisualesAnálisis Causa – EfectoRetrospectivas
ColaborarConfianzaSentarse JuntosCliente InvolucradoDaily MeetingsEstándares de CódigoDemos ContinuasInformar y Comunicar
PlanificarVisiónPlanificar EntregasJuegos de PlanificaciónGestión de RiesgosHistoriasBacklogs
EntregarDefinición de HechoNo BugsControl de VersionesBuild en 10 MinutosAutoría CompartidaDocumentación
![Page 5: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/5.jpg)
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 resolver2)Categorizar las causas3)Detallar las causas4)Analizar causas principales5)Buscar correlaciones entre ellas
1
2
3
![Page 6: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/6.jpg)
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:PruebaDesarrolloRefactorización
Reduce el efecto de errores y mejora el diseño del código
Behaviour Driven DevelopmentLleva TDD un paso más allá, al diseño guiado por dominio, involucrando a los BSE en los procesos de test / aceptación
![Page 7: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/7.jpg)
Refactorización
Refactorizar es cambiar el código fuente sin alterar su funcionalidad.
BeneficiosMejora el diseño del softwareContribuye a detectar erroresFacilita la comprensión del SWAyuda a programar más rápido
Imagen obtenida de www.flickr.com/photos/danisarda
![Page 8: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/8.jpg)
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));}
}
¿Para qué sirve este código?
¿Es fácil de reutilizar?
¿Es fácil de mantener?
![Page 9: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/9.jpg)
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);}
}
¿Se podría mejorar fácilmente?
![Page 10: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/10.jpg)
Entornos de Desarrollo
![Page 11: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/11.jpg)
Ejemplo Entorno de Desarrollo
![Page 13: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/13.jpg)
Servidor CI
![Page 14: XP y Entorno de Desarrollo Ágil](https://reader036.fdocuments.co/reader036/viewer/2022062523/587d4db81a28ab7c638b7b69/html5/thumbnails/14.jpg)
Métricas de Calidad (Sonar)