Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P)
II - Planificacin del proyecto
III - Diseo
IV - Codificacin
V - Pruebas y bibliografia
Release planning: Tras definir las historias de usuario es necesario crear un plan
de publicaciones, en ingls "Release planning", donde se indiquen las historias
de usuario que se implementarn para cada versin de la aplicacin y las fechas
en las que se publicarn dichas versiones.
Un "Release planning" es una planificacin donde los desarrolladores y clientes
establecen los tiempos de implementacin ideales de las historias de usuario, la
prioridad con la que sern implementadas y las historias de usuario que sern
implementadas en cada versin del programa.
Despus de un "Release planning" tienen que estar claros estos cuatro factores:
los objetivos que se deben cumplir (que son principalmente las historias que se
deben desarrollar en cada versin), el tiempo que tardarn en desarrollarse y
publicarse las versiones de la aplicacin, el nmero de personas que trabajarn
en el desarrollo y cmo se evaluar la calidad del trabajo realizado.
Iteraciones. Todo proyecto que siga la metodologa X.P se ha de dividir en
iteraciones de aproximadamente 3 semanas de duracin. Al comienzo de cada
iteracin los clientes deben seleccionar las historias de usuario definidas en el
"Release planning" que sern implementadas. Tambin se seleccionan las
historias de usuario que no pasaron el test de aceptacin que se realiz al
terminar la iteracin anterior.
Estas historias de usuario son divididas en tareas de entre 1 y 3 das de
duracin cada una y sern asignadas a los programadores.
Velocidad del proyecto. La velocidad del proyecto es una medida que representa
la rapidez con la que se desarrolla el mismo; estimarla es muy sencillo: basta
con contar el nmero de historias de usuario que se pueden implementar en
una iteracin; de esta forma, se sabr el cupo de historias que se pueden
desarrollar en las distintas iteraciones.
2 Fase: Diseo.
Diseos simples: La metodologa X.P sugiere que hay que conseguir diseos
simples y sencillos. Hay que procurar hacerlo todo lo menos complicado posible
para conseguir un diseo fcil de entender e implementar que a la larga costar
menos tiempo y esfuerzo desarrollar.
3 Fase: Codificacin.
Como ya se dijo en la introduccin, el cliente es una parte ms del equipo de
desarrollo; su presencia es indispensable en las distintas fases de X.P. A la hora de
codificar una historia de usuario su presencia es an ms necesaria. No olvidemos que
los clientes son los que crean las historias de usuario y negocian los tiempos en los que
sern implementadas. Antes del desarrollo de cada historia de usuario el cliente debe
especificar detalladamente lo que sta har y tambin tendr que estar presente
cuando se realicen los test que verifiquen que la historia implementada cumple la
funcionalidad especificada.
La codificacin debe hacerse ateniendo a estndares y patrones de codificacin ya
creados. Programar bajo estndares mantiene el cdigo consistente y facilita su
comprensin y la escalabilidad.
Crear test que prueben el funcionamiento de los distintos cdigos implementados nos
ayudar a desarrollar dicho cdigo. Crear estos test antes nos ayuda a saber qu es
exactamente lo que tiene que hacer el cdigo a implementar y sabremos que una vez
implementado pasar dichos test sin problemas ya que dicho cdigo ha sido diseado
para ese fin. Se puede dividir la funcionalidad que debe cumplir una tarea a programar
en pequeas unidades, de esta forma se crearn primero los test para cada unidad y a
continuacin se desarrollar dicha unidad, as poco a poco conseguiremos un desarrollo
que cumpla todos los requisitos especificados.
Como ya mencionamos, X.P opta por la programacin en pareja ya que permite un
cdigo ms eficiente y con una gran calidad.
X.P sugiere un modelo de trabajo usando repositorios de cdigo dnde las parejas de
programadores publican cada pocas horas sus cdigos implementados y corregidos
junto a los test que deben pasar. De esta forma el resto de programadores que
necesiten cdigos ajenos trabajarn siempre con las ltimas versiones. Para mantener
un cdigo consistente, publicar un cdigo en un repositorio es una accin exclusiva
para cada pareja de programadores.
X.P tambin propone un modelo de desarrollo colectivo en el que todos los
programadores estn implicados en todas las tareas; cualquiera puede modificar o
ampliar una clase o mtodo de otro programador si es necesario y subirla al repositorio
de cdigo. El permitir al resto de los programadores modificar cdigos que no son
suyos no supone ningn riesgo ya que para que un cdigo pueda ser publicado en el
repositorio tiene que pasar los test de funcionamiento definidos para el mismo.
La optimizacin del cdigo siempre se debe dejar para el final. Hay que hacer que
funcione y que sea correcto, ms tarde se puede optimizar.
X.P afirma que la mayora de los proyectos que necesiten ms tiempo extra que el
planificado para ser finalizados no podrn ser terminados a tiempo se haga lo que se
haga, aunque se aadan ms desarrolladores y se incrementen los recursos. La
solucin que plantea X.P es realizar un nuevo "Release planning" para concretar los
nuevos tiempos de publicacin y de velocidad del proyecto.
4 Fase: Pruebas. Uno de los pilares de la metodologa X.P es el uso de test para
comprobar el funcionamiento del cdigo que estamos desarrollando.
El uso de los test en X.P es el siguiente:
Se deben crear los test con frameworks especficos para tests (JUnit, por
ejemplo para Java).
Hay que someter a test las distintas clases del sistema omitiendo los mtodos
ms triviales.
Se deben crear los test que se aplicarn a una clase/mtodo antes de
implementarla; en el apartado anterior se explic la importancia de crear antes
los test que el cdigo.
Un punto importante es crear test que no tengan ninguna dependencia del cdigo que
en un futuro evaluar. Hay que crear los test abstrayndose del futuro cdigo, de esta
forma aseguraremos la independencia del test respecto al cdigo que evala.
Como se coment anteriormente los distintos test se deben subir al repositorio de
cdigo acompaados del cdigo que verifican. Ningn cdigo puede ser publicado en el
repositorio sin que haya pasado su test de funcionamiento, de esta forma, aseguramos
el uso colectivo del cdigo (explicado en el apartado anterior).
El uso de los test es adecuado para observar la refactorizacin. Los test permiten
verificar que un cambio en la estructura de un cdigo no tiene porqu cambiar su
funcionamiento. Para finalizar, un nuevo concepto.
Bibliografa.
http://www.extremeprogramming.org
[NEWK, 2002] NEWKIRK, J. "La programacin extrema en la prctica". Ed.
Pearson Education, Madrid, 2002.
[STEP, 2003] STEPHENS, M., ROSENBERG,D. "Extreme programming
refactored: the case against X.P". Ed. Berkeley, California, 2003.