Porqu utilizar herramientas giles Cmo se relacionan con la metodologa Consideraciones para implementarlas Ventajas y desventajas
www.lemondata.com.ar Prcticas del desarrollo gil
Revisiones continuas Refactoring Diseo simple Pruebas de integracin continuas Estndares de codificacin Propiedad colectiva Retroalimentacin del cliente Pequeos releases
www.lemondata.com.ar Nuestra primera herramienta
Cul es nuestra primera Herramienta?
EL IDE o Entorno de desarrollo
www.lemondata.com.ar Desarrollo
Nuestro trabajo se centra en el cdigo fuente y por ende en el entorno de desarrollo.
Eleccin de un IDE adecuado al proyecto : Posibilidad de navegacin rpida Generacin automtica de cdigo Realizar Refactoring fcilmente Mantener los estndares de programacin Automatizar tareas: anlisis esttico de cdigo, formateo de cdigo, compilacin automtica, versionado de cdigo, etc.
www.lemondata.com.ar Trabajo en equipo gil
Cmo hago para compartir con el equipo el cdigo fuente? Cmo mantengo un historial de cambios sobre el cdigo?
www.lemondata.com.ar Versionado de cdigo
Una versin, revisin o edicin de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificacin.
Caractersticas: Mecanismo de almacenamiento Posibilidad de realizar cambios a lo almacenado Registro histrico de cambios realizados Posibilidad de volver a versiones anteriores Generacin de informes con cambios entre versiones
www.lemondata.com.ar Versionado de cdigo: clasificacin Centralizados: Repositorio centralizado con todo el cdigo nico usuario responsable (o conjunto de ellos) Administracin vs Flexibilidad Ejemplos: CVS y Subversion.
Distribuidos: Cada usuario tiene su propio repositorio Los distintos repositorios pueden intercambiar y mezclar revisiones entre ellos Es frecuente el uso de un repositorio, que est normalmente disponible Ejemplos: Git y Mercurial.
www.lemondata.com.ar Versionado de cdigo: opciones
CVS SVN GIT MERCURIAL Cada archivo tiene su nmero de revisin independiente Todo el repositorio tiene un nico nmero de versin que identifica un estado comn de todos los archivos. Desarrollo no lineal. Rapidez en la gestin de ramas y mezclado de diferentes versiones. Desarrollo completamente distribuido. www.lemondata.com.ar Pruebas
Cmo mejoramos el nivel de las pruebas? Cmo evitamos realizar pruebas manuales? Cmo reutilizar las pruebas anteriores? Cmo minimizar o acotar los posibles errores en el software?
www.lemondata.com.ar Control de calidad: Pruebas
Necesidad de mantener pruebas unitarias e integradoras Fomentan el cambio Simplifican la integracin Documentan el cdigo Errores acotados y mas fciles de localizar La herramienta debera permitir tener pruebas: Automatizables Completas Repetibles Independientes Profesionales
www.lemondata.com.ar JUnit
Es un conjunto de clases (framework) que permite realizar la ejecucin de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los mtodos de la clase se comporta como se espera.
Es tambin un medio de controlar las pruebas de regresin, necesarias cuando una parte del cdigo ha sido modificado y se desea ver que el nuevo cdigo cumple con los requerimientos anteriores.
Este framework se encuentra actualmente en la versin 4.6, con grandes mejoras.
www.lemondata.com.ar JUnit: como funciona
En funcin de algn valor de entrada se evala el valor de retorno esperado.
Si la clase cumple con la especificacin, entonces JUnit devolver que el mtodo de la clase pas exitosamente la prueba.
En caso de que el valor esperado sea diferente al que regres el mtodo durante la ejecucin, JUnit devolver un fallo en el mtodo correspondiente.
www.lemondata.com.ar JUnit: como funciona www.lemondata.com.ar Buenas prcticas de codificacin Cmo fomento en el equipo las buenas prcticas de programacin?
Cmo hago mi cdigo ms entendible?
Cmo prever posible problemas de rendimiento, seguridad y complejidad?
www.lemondata.com.ar Control de calidad: anlisis esttico
El anlisis esttico del cdigo es el proceso de evaluar el software sin ejecutarlo. La verificacin de cdigo esttica se basa en un conjunto de reglas que representan buenas practicas a la hora de codificar. La idea es obtener informacin del cdigo que nos permita mejorarlo, manteniendo la semntica original.
www.lemondata.com.ar PMD
Analizador de cdigo esttico Se basa en un conjunto de reglas configurables Busca errores potenciales: Posibles errores: sentencias try/catch/finally/switch vacas Cdigo muerto: variables, parmetros y mtodos no usados Expresiones complejas: if innecesarios, bucles for que pueden ser while Cdigo no ptimo Cdigo duplicado
www.lemondata.com.ar PMD www.lemondata.com.ar PMD
www.lemondata.com.ar Entrega de releases
Cmo tengo seguridad para hacer cambios?
Cmo disminuir el tiempo de integracin?
Cmo hago versiones estables y entregables fcilmente?
www.lemondata.com.ar Integracin continua
El sistema se compila varias veces por da de forma automtica. Se obtiene el cdigo fuente desde el repositorio con los ltimos cambios. Se corren las pruebas unitarias en cada build. Fomenta : pruebas de integracin continuas propiedad colectiva del cdigo pequeos releases con entrega frecuente de valor Anticipa futuros conflictos.
Cmo puedo administrar el Product Backlog eficazmente? Cmo automatizar las mtricas y visualizar el avance del proyecto? Qu velocidad en la entrega de valor tiene el equipo? Cmo reduzco los tiempos administrativos del proyecto?
www.lemondata.com.ar Administracin de proyectos giles
Factores que ameritan herramientas colaborativas: Equipos distribuidos geogrficamente Necesidad de mantener histricos de las iteraciones Mayor control con respecto a tiempos de trabajo Necesidad de reducir tiempos de administracin del proyecto Mtricas automticas
www.lemondata.com.ar Kunagi
Herramienta web para administracin de proyectos giles Administracin y colaboracin basada en Scrum Buenas prcticas giles Informacin Scrum Product Backlog, Sprint Backlog, Impediments list. Datos adicionales del proyecto Requerimientos no funcionales Riesgos Archivos Issues y bugs Otras caractersticas Dashboard, Whiteboard y Planning Poker
www.lemondata.com.ar Kunagi
www.lemondata.com.ar Kunagi
www.lemondata.com.ar Kunagi
www.lemondata.com.ar Sprint y Herramientas
Sprint Planning/ Sprint Review/ Retrospectiva: Kunagi
Diariamente: Eclipse para el desarrollo JUnit para realizar las pruebas PMD para comprobar su cdigo SVN para compartir su cdigo Hudson para comprobar la integracin de los cambios Kunagi para tareas, cargar impedimentos, etc.
Al final del Sprint: Kunagi y Hudson: tests fallidos, warnings PMD, demo al cliente.
El equilibrio es fundamental. Las herramientas tienen que ser un medio para el desarrollo correcto del proyecto. Cuestiones que van mas all de las herramientas: Relacin con el cliente Costos de implementacin Curva de aprendizaje Restricciones tecnolgicas Re-trabajo para el equipo
El OBJETIVO de las herramientas es la entrega de VALOR al cliente al final del Sprint