Sunteți pe pagina 1din 35

Herramientas giles

2do. Agile Open - 7 de Setiembre de 2012


Alejandro Gallegos | alejandro.gallegos@lemondata.com.ar
www.lemondata.com.ar
Objetivos

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.





www.lemondata.com.ar
Integracin continua: Hudson
www.lemondata.com.ar
Integracin continua: Hudson





www.lemondata.com.ar
Integracin continua: Hudson





www.lemondata.com.ar
Administracin gil

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.



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
Anlisis
Esttico
PMD,
Checkstyles,
Findbugs
FxCop, Code
Analysis,
StyleCop
PHP Analyzer, RIPS Emacs flymake,
Pyflakes, PyLint
Integracin
Continua
Hudson, Jenkins CruiseControl.
Net
Xinc, Jenkins,
phpUnderControl
Hudson.
Jenkins
Gestin Kunagi, Xplanner, DotProject, Jira, GreenHopper, Mantis, Bugzilla,
TargetProcess, WebCollab, Rally, Version One, Agile Zen, Scrumwise
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:
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




www.lemondata.com.ar

www.lemondata.com.ar
Preguntas?
Debate?
Comentarios?

S-ar putea să vă placă și