Herramientas Ágiles para Desarrollo
-
Upload
gaston-guilleron -
Category
Documents
-
view
1.218 -
download
0
Transcript of Herramientas Ágiles para Desarrollo
![Page 2: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/2.jpg)
www.lemondata.com.ar
Objetivos
Porqué utilizar herramientas ágiles Cómo se relacionan con la metodología Consideraciones para implementarlas Ventajas y desventajas
![Page 3: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/3.jpg)
www.lemondata.com.ar
Prácticas del desarrollo ágil
Revisiones continuas Refactoring Diseño simple Pruebas de integración continuas Estándares de codificación Propiedad colectiva Retroalimentación del cliente Pequeños releases
![Page 4: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/4.jpg)
www.lemondata.com.ar
Nuestra primera herramienta
¿Cuál es nuestra primera Herramienta?
EL IDE o Entorno de desarrollo
![Page 5: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/5.jpg)
www.lemondata.com.ar
Desarrollo
Nuestro trabajo se centra en el código fuente y por ende en el entorno de desarrollo. Elección de un IDE adecuado al proyecto : Posibilidad de navegación rápida Generación automática de código Realizar Refactoring fácilmente Mantener los estándares de programación Automatizar tareas: análisis estático de código, formateo de código, compilación automática, versionado de código, etc.
![Page 6: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/6.jpg)
www.lemondata.com.ar
Trabajo en equipo Ágil
¿Cómo hago para compartir con el equipo el código fuente? ¿Cómo mantengo un historial de cambios sobre el código?
![Page 7: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/7.jpg)
www.lemondata.com.ar
Versionado de código
Una versión, revisión o edición de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificación.
Características: Mecanismo de almacenamiento Posibilidad de realizar cambios a lo almacenado Registro histórico de cambios realizados Posibilidad de volver a versiones anteriores Generación de informes con cambios entre versiones
![Page 8: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/8.jpg)
www.lemondata.com.ar
Versionado de código: clasificación Centralizados: Repositorio centralizado con todo el código Único usuario responsable (o conjunto de ellos) Administración 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.
![Page 9: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/9.jpg)
www.lemondata.com.ar
Versionado de código: opciones
CVS SVN GIT MERCURIAL
Cada archivo tiene su número de revisión independiente
Todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos.
Desarrollo no lineal. Rapidez en la gestión de ramas y mezclado de diferentes versiones.
Desarrollo completamente distribuido.
![Page 10: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/10.jpg)
www.lemondata.com.ar
Pruebas
¿Cómo mejoramos el nivel de las pruebas? ¿Cómo evitamos realizar pruebas manuales? ¿Cómo reutilizar las pruebas anteriores? ¿Cómo minimizar o acotar los posibles errores en el software?
![Page 11: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/11.jpg)
www.lemondata.com.ar
Control de calidad: Pruebas
Necesidad de mantener pruebas unitarias e integradoras Fomentan el cambio Simplifican la integración Documentan el código Errores acotados y mas fáciles de localizar La herramienta debería permitir tener pruebas:
Automatizables Completas Repetibles Independientes Profesionales
![Page 12: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/12.jpg)
www.lemondata.com.ar
JUnit
Es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera.
Es también un medio de controlar las pruebas de regresión, necesarias cuando una parte del código ha sido modificado y se desea ver que el nuevo código cumple con los requerimientos anteriores.
Este framework se encuentra actualmente en la versión 4.6, con grandes mejoras.
![Page 13: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/13.jpg)
www.lemondata.com.ar
JUnit: como funciona
En función de algún valor de entrada se evalúa el valor de retorno esperado.
Si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba.
En caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente.
![Page 14: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/14.jpg)
www.lemondata.com.ar
JUnit: como funciona
![Page 15: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/15.jpg)
www.lemondata.com.ar
Buenas prácticas de codificación
¿Cómo fomento en el equipo las buenas prácticas de programación?
¿Cómo hago mi código más entendible?
¿Cómo prever posible problemas de rendimiento, seguridad y complejidad?
![Page 16: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/16.jpg)
www.lemondata.com.ar
Control de calidad: análisis estático
El análisis estático del código es el proceso de evaluar el software sin ejecutarlo. La verificación de código estática se basa en un conjunto de reglas que representan buenas practicas a la hora de codificar. La idea es obtener información del código que nos permita mejorarlo, manteniendo la semántica original.
![Page 17: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/17.jpg)
www.lemondata.com.ar
PMD
Analizador de código estático Se basa en un conjunto de reglas configurables Busca errores potenciales:
Posibles errores: sentencias try/catch/finally/switch vacías Código muerto: variables, parámetros y métodos no usados Expresiones complejas: if innecesarios, bucles for que pueden ser while Código no óptimo Código duplicado
![Page 18: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/18.jpg)
www.lemondata.com.ar
PMD
![Page 19: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/19.jpg)
www.lemondata.com.ar
PMD
![Page 20: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/20.jpg)
www.lemondata.com.ar
Entrega de releases
¿Cómo tengo seguridad para hacer cambios?
¿Cómo disminuir el tiempo de integración?
¿Cómo hago versiones estables y entregables fácilmente?
![Page 21: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/21.jpg)
www.lemondata.com.ar
Integración continua El sistema se compila varias veces por día de forma automática. Se obtiene el código fuente desde el repositorio con los últimos cambios. Se corren las pruebas unitarias en cada build. Fomenta : pruebas de integración continuas propiedad colectiva del código pequeños releases con entrega frecuente de valor
Anticipa futuros conflictos.
![Page 22: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/22.jpg)
www.lemondata.com.ar
Integración continua: Hudson
![Page 23: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/23.jpg)
www.lemondata.com.ar
Integración continua: Hudson
![Page 24: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/24.jpg)
www.lemondata.com.ar
Integración continua: Hudson
![Page 25: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/25.jpg)
www.lemondata.com.ar
Administración Ágil
¿Cómo puedo administrar el Product Backlog eficazmente? ¿Cómo automatizar las métricas y visualizar el avance del proyecto? ¿Qué velocidad en la entrega de valor tiene el equipo? ¿Cómo reduzco los tiempos administrativos del proyecto?
![Page 26: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/26.jpg)
www.lemondata.com.ar
Administración de proyectos ágiles
Factores que ameritan herramientas colaborativas: Equipos distribuidos geográficamente Necesidad de mantener históricos de las iteraciones Mayor control con respecto a tiempos de trabajo Necesidad de reducir tiempos de administración del proyecto Métricas automáticas
![Page 27: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/27.jpg)
www.lemondata.com.ar
Kunagi
Herramienta web para administración de proyectos ágiles Administración y colaboración basada en Scrum Buenas prácticas ágiles Información Scrum Product Backlog, Sprint Backlog, Impediments list.
Datos adicionales del proyecto Requerimientos no funcionales Riesgos Archivos Issues y bugs
Otras características Dashboard, Whiteboard y Planning Poker
![Page 28: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/28.jpg)
www.lemondata.com.ar
Kunagi
![Page 29: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/29.jpg)
www.lemondata.com.ar
Kunagi
![Page 30: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/30.jpg)
www.lemondata.com.ar
Kunagi
![Page 31: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/31.jpg)
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 código SVN para compartir su código Hudson para comprobar la integración de los cambios Kunagi para tareas, cargar impedimentos, etc.
Al final del Sprint: Kunagi y Hudson: tests fallidos, warnings PMD, demo al cliente.
![Page 32: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/32.jpg)
www.lemondata.com.ar
Otras herramientas
Java .Net Php Phyton
IDE Eclipse, Netbeans,
Jdeveloper, BlueJ
Visual Studio, Sharp Develop
Eclipse, ZendStudio, Open
Komodo, PDT, Aptana
Vim, Emacs, Gedit, Kate, PyDev, Open Komodo, Eric
Versionado SVN/CVS/GIT/Mercurial
Pruebas Junit, TestNG NUnit PHPUnit PyUnit
Análisis Estático
PMD, Checkstyles, Findbugs
FxCop, Code Analysis, StyleCop
PHP Analyzer, RIPS Emacs flymake, Pyflakes, PyLint
Integración Continua
Hudson, Jenkins CruiseControl.Net
Xinc, Jenkins, phpUnderControl
Hudson. Jenkins
Gestión Kunagi, Xplanner, DotProject, Jira, GreenHopper, Mantis, Bugzilla, TargetProcess, WebCollab, Rally, Version One, Agile Zen, Scrumwise
![Page 33: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/33.jpg)
www.lemondata.com.ar
Consideraciones
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:
Relación con el cliente Costos de implementación Curva de aprendizaje Restricciones tecnológicas Re-trabajo para el equipo
“El OBJETIVO de las herramientas es la entrega de VALOR al cliente al final del Sprint”
![Page 34: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/34.jpg)
www.lemondata.com.ar
![Page 35: Herramientas Ágiles para Desarrollo](https://reader034.fdocument.pub/reader034/viewer/2022052622/558c6490d8b42a176c8b4746/html5/thumbnails/35.jpg)
www.lemondata.com.ar
¿Preguntas? ¿Debate?
¿Comentarios?