GUIA DE NUTRICION Y ENTRENAMIENTO para principiantes
Infraestructura agil
1. Infraestructura de
Desarrollo Ágil
Como apoyarnos en herramientas libres
para construir software aplicando Scrum +
XP.
Ing. Adrian Moya
Mérida, Octubre de 2011
1 de 52
5. Prácticas y requerimientos
SCRUM: Planificar y Gestionar el proyecto
Llevar control de las historias de usuario.
Planificar las entregas en iteraciones.
Medir el avance del equipo.
XP: Prácticas de Desarrollo
Buena comunicación del equipo.
Control de versiones de código.
Integrar código continuamente.
Pruebas unitarias de código.
5 de 52
6. Infraestructura Ágil
Servidor de Servidor de Servidor Controlador Servidor de
Scrum Información de Versiones Integración Continua
Servidor de
Estaciones de trabajo Desarrollo Servidor de
Calidad
6 de 52
8. Servidor de Scrum
Herramienta que lleva el control del proceso
Scrum.
Fácil instalación y configuración.
Backlog de producto automatizado.
Planificación de Entregas e Iteraciones.
Tablero de actividad del proyecto.
Gráficas de Burndown, Velocidad entre otras.
8 de 52
10. Servidor de Información
DokuWiki
Wiki sencillo de usar.
Basado en archivos de texto (no requiere DB).
Sintaxis simple pero poderosa.
Rápido.
Tematizable
Extensible vía plugins.
10 de 52
12. Servidor Controlador de Versiones
Sistema de control de versiones centralizado.
Fácil uso y excelente documentación.
Soporte de ramas y etiquetas.
Soporte de archivos binarios.
Cliente Tortoise (integración en Windows) y
RabitVCS (Linux).
Puede ser servido a través de apache.
12 de 52
14. Servidor de integración continua
Herramienta que monitorea la ejecución de
trabajos repetitivos.
Construcción y prueba de proyectos de manera
continua.
Fácil instalación y configuración.
Soporta múltiples control de versiones.
Notificaciones por RSS/Correo.
Extensible vía plugins.
14 de 52
16. Infraestructura Ágil
DokuWiki
Servidor de Servidor de Servidor Controlador Servidor de
Scrum Información de Versiones Integración Continua
Servidor de
Estaciones de trabajo Desarrollo Servidor de
Calidad
16 de 52
18. Implementando la Infraestructura
Librería de aplicaciones que incluye lo mejor
del software libre en un formato empaquetado y
listo para usar.
Servidores basados en Ubuntu 10.04 LTS.
Optimizados para facilidad de uso y despliegue
rápido (sólo minutos).
Instalables en servidores físicos, máquinas
virtuales o en la nube.
18 de 52
19. Implementando la Infraestructura
Servidor de Scrum Imagen Comunitaria.
Desarrollada por
Icescrum: Adrian Moya.
Servidor de Información Imagen Oficial
Dokuwiki
Dokuwiki:
Imagen Oficial
Servidor de Control Versiones Source Control
Subversion: Svn/Git/Bzr/Hg
Servidor de Int. Continua Imagen Comunitaria.
Desarrollada por
Jenkins: Adrian Moya.
19 de 52
29. Utilizando - Icescrum
7. Iniciar la iteración. El equipo toma las tareas y las pone en progreso. A medida que trabaja
actualiza las horas restantes.
29 de 52
32. Utilizando - Dokuwiki
Información general:
1. Información de contacto de los miembros del
equipo.
2. Estándares de trabajo.
32 de 52
33. Utilizando - Dokuwiki
Información por proyecto:
1. Configuraciones del repositorio de código.
2. Documentos/Información que respalden las
historias.
3. Recursos: Enlaces a Servidor IC, Ambientes de
Desarrollo y Calidad.
33 de 52
46. Utilizando - Jenkins
Algunas recomendaciones de trabajo:
● Configurar límites de “violaciones” a las reglas
aceptables.
● Si el build se rompe, hay que repararlo de
inmediato.
46 de 52
47. Utilizando – DEV y QA
El servidor a utilizar dependerá del tipo de
aplicación que estemos construyendo.
En el servidor de desarrollo siempre estará
disponible la última versión de la aplicación
(desplegada por el Servidor de IC desde trunk).
En el servidor de calidad estarán las versiones
al final de una iteración (sprint).
El servidor de calidad debe ser una COPIA
FIEL del ambiente de producción.
47 de 52
48. Conclusiones
● Debemos apoyarnos en un ecosistema de
herramientas que faciliten nuestro trabajo y nos
permitan atender rápidamente cualquier
eventualidad que pueda presentarse.
● El tiempo invertido en montar la infraestructura
se ve compensando enormemente con las
ventajas obtenidas de automatizar nuestro
proceso de desarrollo ágil.
● Debemos aprender a utilizar las herramientas,
pues de lo contrario el resultado será el mismo
que como si no estuviéramos utilizándolas.
48 de 52
49. Recomendaciones
● Implementar una herramienta y/o práctica a la
vez.
● Para el manejo de incidencias, se usa el Area
de Ensayo de Icescrum, pero podría
incorporarse una herramienta de manejo de
incidencias si fuera necesario (ChiliProject).
● Para el manejo centralizado de usuarios y
claves, se ha pensado agregar un servidor de
autenticación (OpenLDAP).
49 de 52
52. Gracias por su atención
Para comentarios/preguntas, pueden
hacerlo a
adrianmoya@gmail.com
Twitter - @adrianmoya
Blog – http://www.adrianmoya.com
52 de 52