Extreme Programming, una nueva metodologa
Jos Martn Rozanec habla de las nuevas tcnicas de los procesadores. XP es el nombre de Windows, pero tambin sirve de abreviatura de Extreme Programming. Lo ltimo en metodologa para los ingenieros informticos.
Qu es XP? Qu es XP? Para muchos, XP es sinnimo de una versin de Windows. Sin embargo, para el informtico, XP tambin significa Extreme Programming. Los alumnos de la materia Laboratorio III estamos desarrollando un juego de estrategia por turnos haciendo uso de esta metodologa gil. El concepto de metodologas giles es relativamente nuevo pero cada vez ms conocido. stas se centran en el uso de mnima documentacin en el momento de desarrollar los proyectos y buscar ser giles en cuanto a responder adecuadamente a los cambios de requerimientos. El enfoque al desarrollo de software que propone XP, pretende ser til en proyectos de alto riesgo caracterizados por una constante variacin de los requerimientos. Promueve la integracin del cliente en el proceso de desarrollo, la programacin de a pares y el trabajo en equipo como medios para lograrlo. El proceso puede resumirse en el siguiente esquema:
Los puntos ms importantes a ser tenidos en cuenta son: Creacin de user stories: son documentos breves escritos por el cliente, en el cual escribe requerimientos puntuales que precisa del sistema. Se busca que estos documentos se centren en las necesidades y beneficios esperados por el usuario antes que las tecnologas usadas y layouts. Determinacin previa de tests a realizar: para cada user story se decide qu tipo de tests se han de realizar. Se evita la posibilidad de crear pruebas conociendo que parte puede fallar o no; dando lugar a testeos ms objetivos y no manipulables. Creacin de spike solutions (spike=estaca): en caso de surgir dudas referentes a cmo solucionar un problema tcnico o de arquitectura del software, se recurre a soluciones provisorias que se focalizan en el tema en
cuestin. No se espera que estas soluciones provisorias se conserven en la solucin definitiva, sino que generalmente se descartan tras haber cumplido con su propsito. Release planning: para la planificacin de los lanzamientos se contempla un conjunto de user stories, cuya prioridad de desarrollo ser establecida por el cliente. La planificacin puede priorizar el tiempo de entrega o la extensin del proyecto. Siempre se divide el total de casos a desarrollar en un conjunto de iteraciones. Las variables que se consideran en el momento de realizar las planificaciones son la extensin, recursos, tiempo y calidad. Se tiende a maximizar la calidad, por el impacto que posee sobre las dems variables a largo plazo. Iteraciones: duran de una a tres semanas, en las que se debe concluir las user stories pactadas. Su propsito es simplificar la planificacin, permitir medir el progreso y agilizar el desarrollo. Tests: se efectan los testeos previstos para asegurarse que el programa no presente fallas. Releases: se hace uso de releases (lanzamiento de versiones del programa) frecuentes y de tamao reducido.
A partir de la descripcin del proceso se observa que este es fcil de implementar en proyectos de poca envergadura. Surge entonces el interrogante si es posible implementarlo en empresas con cientos de empleados. Bernard Rumpe y Peter Scholz en su artculo A managers view on large scale XP projects responden que es posible implementar la metodologa XP a gran escala. Para ello sugieren plantear una estructura jerrquica del Extremme Programming, por la cual se formara grupos de desarrollo de hasta 68 pares de programadores; cada uno de los cuales estara dividido en subgrupos de 6 a 8 pares. Estos subgrupos podran a la vez subdividirse en hasta tres grupos menores. Por cada grupo mayor (de 68 pares) habr un moderador que deber velar por la transferencia de informacin dentro del grupo y el intercambio de informacin entre los grupos. Se debe hallar presente en las reuniones de inicio de jornada de cada subgrupo. Tambin mantendr reuniones regulares con los moderadores de los grupos restantes evitando la incomunicacin de los grupos. Del moderador no se espera que tenga brillantes cualidades como programador, sino que sea preciso en la comunicacin y que sepa transmitir un knowhow referido a cuestiones tcnicas e inherentes de la aplicacin. Las ventajas que surgen de la moderacin son la transparencia de resultados, la cooperacin y el hecho que todos los miembros del grupo se puedan centrar en la programacin. Los autores sugieren tambin la creacin de un grupo de desarrolladores especializados en la creacin de test unitarios. Estos, adems de velar que el cdigo desarrollado pase los tests que corresponda; deben velar en el correcto uso de las interfaces definidas en ambas direcciones. Hasta aqu la teora. Pero en la prctica, el escalamiento del XP arroja resultados significativamente mejores? S. Un ejemplo de implementacin exitosa fue Sabre Airlines
Solutions, quien logr mejorar la productividad en un 42% y redujo los errores de desarrollo en un 80%. Otras empresas que se beneficiaron adoptando la metodologa fueron Symantec, Workshare Technology y Escrow.com. Jos Martn Roanec. Algunas fuentes consultadas: http://www.extremeprogramming.org/; detalles de metodologa XP. http://www.objectmentor.com/; detalles sobre XP y metodologas giles. Casos exitosos de XP. A managers view on large scale XP projects, por Bernard Rumpe y Peter Scholz. Sabre takes extreme measures, por Gary Anthes. Can XP Projects Grow?, por Ed Yourdon; en http://www.computerworld.com/