Professional Documents
Culture Documents
Agenda
Introduccin: Metodologas y
Procesos
Metodologas giles y SCRUM
Testing Agile y la Integracin
Continua
METODOLOGAS Y
PROCESOS
El xito es raro
Fallidos
2014 15%
2010 23%
Problemticos
51%
49%
Existosos
34%
28%
Se pasan en coste:
45%
Se pasan en tiempo:
63%
No llegan a la funcionalidad:
67%
Productivo
Complejo
Desconectado
Difcil
El tringulo de
Hierro
(Tetraedro ms bien?)
Imagen copyright de Tetra Pak
Hacer ms con
menos!
Pero si tus nicas variables son:
Funcionalidad
Recursos
Tiempo
Calidad
Dos Paradigmas de
Proceso
El tradicional: descomponemos
tareas y medimos su grado de
completitud
El alternativo: contabilizamos el
valor para el cliente y lo vamos
entregando incrementalmente
Dos Paradigmas de
Proceso
Work-down
Sacar trabajo
adelante
Value-up
Incrementar valor
Planificacin y
gestin del cambio
El cambio ocurre,
acostmbrate
Medida principal
Finalizacin de tarea
Definicin de
calidad
Conformidad con la
especificacin
Tolerancia a la
variabilidad
La variabilidad es parte de
todos los flujos del proceso
Productos
intermedios
Documentos, modelos y
otros artefactos
Aproximacin a la
resolucin de
desviaciones
Aproximacin a la
confianza
Monitorizar y medir;
rendimiento relativo al plan
METODOLOGAS GILES
El manifiesto gil
http://www.agilemanifesto.org
Preferimos
Individuos e interaccin a procesos y
herramientas
Software funcional a documentacin
exahustiva
Colaboracin con el cliente a
negociacin de contratos
Respuesta ante los cambios al
seguimiento de un plan
Aunque hay valor en lo segundo,
preferimos lo primero
Adaptabilidad
El anlisis inicial es una gua, no una
biblia intocable
El cliente propondr cambios que han
de introducirse en el desarrollo
Los presupuestos han de contar con
esos cambios
La mtrica ha de reflejar el impacto
de los cambios
Se consigue un software ms
satisfactorio
Colaboracin
El equipo es importante, no los procesos
Todo el mundo tiene algo que decir
La organizacin es dinmica
Liderar un equipo, no gestionarlo
Integracin continua
El software se entrega por partes
Las diversas entregas han de ser
ejecutables
Cada integracin supone una
evualuacin de la misma
Eso permite corregir errores y cambiar
funcionalidad
Simplicidad
Lo simple es bello
Mantener una estructura organizativa
sencilla
No complicar innecesariamente los
procesos
No saturar el proyecto con
documentacin superflua
Crear un sistema de comunicaciones
rpido y gil
Conceptos
Roles
Actividades
Iteraciones
Roles
Un rol es una funcin dentro del
equipo de desarrollo
Los roles pueden desempearse por
ms de una persona
Una persona puede desempear ms
de un rol
Las actividades estn asociadas a
roles
Los roles pueden tener ciertos
permisos dentro de la organizacin
Actividades
Las tareas se definen como
actividades
Incluyen cualquier cosa que haya de
hacerse durante el proyecto
Captura de requerimientos, testeo,
codificacin...
Iteraciones
Ciclos de desarrollo cortos
Suelen ser de un mes
SCRUM
Es una
implementacin de
metodologa gil
Creada por
Hirotaka Takeuchi e
Ikujiro Nonaka en
1986
Principios de SCRUM
Equipo muy simple
Pila de funcionalidades (Backlog)
Reuniones diarias (Scrums)
Iteraciones (Sprints)
Equipo
Propietario del producto
Da los requerimientos
Paga!
Equipo
Autogestionado
Multidisciplinar
Scrum Manager
Supervisa y coordina los roles
Comprueba las tareas
Backlogs
Listado de requisitos
Recopilado por el propietario del
producto
Es una lista dinmica
Se subdivide en los diferentes sprints
Sprints
Representan iteraciones
Por lo general de un mes
Integracin Continua
Laintegracin continua(continuous integrationeningls) es un
modeloinformticopropuesto inicialmente porMartin Fowlerque
consiste en hacerintegraciones automticasde un proyecto lo ms
a menudo posible para as poder detectar fallos cuanto antes.
Entendemos por integracin lacompilacinyejecucin de
pruebasde todo un proyecto.
El proceso suele ser, cada cierto tiempo (horas), descargarse las
fuentes
desde
elcontrol
de
versiones(por
ejemploCVS,Git,Subversion,MercurialoMicrosoft
Visual
SourceSafe) compilarlo, ejecutar pruebas y generar informes.
Para
esto
se
utilizan
aplicaciones
comoBamboo,Continuum,Hudson,Jenkins,CruiseControloAnthill
(para proyectosJava) oCruiseControl.Net,Team Foundation Build
para.Net, que se encargan de controlar las ejecuciones, apoyadas
en otras herramientas comoAntoMaven(tambin para proyectos
Java), o Nant o MSBUILD (para .Net) que se encargan de realizar
las compilaciones, ejecutar las pruebas y realizar los informes.
A menudo la integracin continua est asociada con las
metodologas deprogramacin extremaydesarrollo gil.
Concepto
La integracin continua es una
prctica de desarrollo de software en
la cul los miembros de un equipo
integran su trabajo frecuentemente,
como mnimo de forma diaria. Cada
integracin se verifica mediante una
herramienta de construccin
automtica para detectar los errores
de integracin tan pronto como sea
posible.
Esquema Bsico
Forma de trabajo
1. Un desarrollador realiza un commit (cambios) sobre el SCM server mientras el administrador de CI lo
consulta por cambios con una frecuencia determinada.
2. Despus del commit el administrador de CI detecta el cambio, toma del repositorio las ltimas
versiones y ejecuta los scripts que integran todo el software.
3. El administrador de CI informa por mail acerca de los resultados a los miembros del grupo de
desarrollo de los resultados del build.
Buenas prcticas
Construya binarios con cada cambio.
Haga commit con frecuencia.
NO haga commit de cdigo que no funciona.
Corrija los errores que rompieron el buid inmediatamente.
Escriba tests unitarios automticos.
TODOS los test y revisiones deben ejecutar OK.
Ejecute builds privados.
NO tome cdigo del repositorio que no funciona.
Beneficios de la integracin
continua
Tambin permite reducir la aparicin de bugs, puesto que la realizacin constante de pruebas
permite su pronta deteccin y correccin antes de que entren en produccin.
Ya que se dispone en todo momento de ejecutables del proyecto, esto permite la rpida adopcin
por parte de los usuarios de las nuevas caractersticas aadidas al proyecto. Esto tambin
permite que los usuarios valoren estos cambios y sugieran cambios nuevos de forma rpida.
Videos de Explicacin de
Integracin Continua y Jenkins
https://www.youtube.com/watch?
v=mrUfnPqUwKw
https://www.youtube.com/watch?
v=bpWuPaeggzo