jueves, 3 de julio de 2008

Jugando al eXtreme Programming

En esta entrada os propongo una forma muy original y amena de trabajar en clase la metodología de desarrollo eXtreme Programming. La actividad consiste en jugar al XPGame.

La realización de este juego es una actividad muy atractiva en donde podemos además de poner en práctica el ciclo de desarrollo propuesto por extreme programming, reflexionar sobre la importancia de la gestión de requisitos en los proyectos de desarrollo.

XPGame ofrece a los alumnos unas fichas de acciones que deben realizar (storyboards). Las acciones son muy diversas, por ejemplo, conseguir sacar un tres tirando un dado o construir una pirámide de cartas. Cada ficha tiene un valor en puntos diferentes que refleja el valor de negocio para el cliente. El objetivo del juego es conseguir el mayor número de puntos posibles.

El juego se desarrollo siguiendo estos pasos:
1. Cada equipo recibe 12 tarjetas.
2. Lo primero que deben hacer los equipos es estimar la complejidad de las tarjetas.
3. El equipo, simulando a un cliente, escoge las tarjetas con las acciones que van a realizar. Para realizar todas las acciones tiene 180 segundos. El equipo debe definir el orden en que van a intentar hacer las acciones.
4. El equipo realiza de forma ordenada las acciones seleccionadas con anterioridad.
5. Se suma al equipo los puntos de las acciones que han conseguido realizar con éxito.

Se propone repetir este proceso hasta tres veces. Se puede enriquecer el juego, por ejemplo:
1. Durante el paso 4, en donde los equipos están intentando realizar las acciones escogidas, se puede interrumpir el proceso indicando que el cliente ha cambiado sus prioridades con lo que se lleva a cabo cambios en la valoración de las actividades (los puntos asignados a cada tarjeta). Los alumnos pueden decidir reordenar las tarjetas seleccionadas o cambiarlas por otras.
2. Se puede proponer a los alumnos tarjetas con actividades que son imposibles de comprobar que se han realizado éxito. Por ejemplo, solicitar que infle una sopladera con una determinad presión. Con esto, los alumnos ven la importancia de que todos los objetivos marcados deben ser medibles.

lunes, 30 de junio de 2008

Enseñando programación extrema

Desde mi punto de vista, una de las mejores formas de enseñar esta metodología es ponerla en práctica. Como primera actividad en clase, me parece muy interesante realizar y analizar con los alumnos el proceso de desarrollo descrito en el artículo: “Engineer Notebook: An Extreme Programming Episode”. Este articulo narra el desarrollo, empleando extreme programming, de una aplicación muy simple que tiene como objetivo el registrar las anotaciones de partidas de bolos. Se narra como una conversación entre dos amigos a lo largo de la que se produce una metamorfosis que culmina con la aplicación.
La aplicación es desarrollada empleando Java y muy importante, podemos ver el uso de tests, un aspecto clave en el desarrollo de software y que trataré en futuras entradas de este blog.

Programación extrema

La programación extrema, en inglés eXtreme Programming XP, es una metodología de desarrollo de software perteneciente a lo que se conoce como metodologías ágiles de desarrollo de software.

XP se caracteriza por atender rápidamente los posibles cambios de requisitos por parte de los clientes. Para esto, integra al cliente como parte del equipo de desarrollo y dirige el desarrollo a la entrega sucesiva de versiones con valor para el cliente. Es decir, a lo largo del proceso de desarrollo se obtiene versiones funcionales de la aplicación que aporta valor añadido al cliente. Estas versiones no se deben considerar prototipos o versiones betas de la aplicación final, sino versiones acabadas que integran uno o más casos de uso definidos por el cliente.

El ciclo de vida de extreme programming se resume en una serie de iteraciones que siguen el siguiente esquema: Planificación --> diseño --> implementación --> prueba
Una ficha resumen la puedes ver en http://xp123.com/xplor/xp0202/xp-one-page.PDF. Puedes conocer más información acerca de esta metodología en eXtreme Programming.

En próximas entradas de este blog os propongo algunas actividades para trabajar esta metodología en clase.

miércoles, 25 de junio de 2008

JavaCup: Aprende Java jugando al fútbol


Se está celebrando la JavaCup 2008, un torneo de fútbol virtual. Los participantes deben desarrollar un equipo de fútbol usando java como lenguaje de programación. La Web del torneo es http://javacup.javahispano.org/.

Se proporciona un framework en donde los participantes sólo deben programar el comportamiento de los jugadores, estando ya desarrollada toda la parte visual del programa.

En la Web del torneo se proporciona el código del framework, tutoriales y el código de los equipos que participarón en ediciones anteriores.

Se puede aprovechar esta idea para realizar una actividad a nivel de clase con los alumnos en los módulos de programación. Los alumnos deberían desarrollar un equipo cada uno y se podría realizar un torneo interno eligiendo el mejor equipo para participar en la edición anual o recopilar las mejores ideas entre todos los alumnos y confeccionar un equipo que represente a la clase.

jueves, 19 de junio de 2008

VirtualBox la alternativa a VMWare


En muchas actividades es muy útil instalar máquinas virtuales en nuestros sistemas. Por ejemplo, tener en Linux una máquina virtual con Windows Instalada o viceversa. La mayoría de nosotros acostumbramos a usar VMWare, una excelente herramienta pero con el gran inconveniente de ser de pago.
Pues bien, también contamos con una herramienta de software libre que nos ofrece las mismas posibilidades que VMWare. Esta herramienta se llama VirtualBox. Una herramienta gratuita, software libre, y que tiene versiones tanto para Windows como para Linux. !Pruébala!

viernes, 13 de junio de 2008

Guía de software libre

Cuando trabajamos con Software libre una de las cosas más difícil es escoger el proyecto de software libre que mejor se ajuste a nuestras necesidades. Para facilitar este paso y para poder conocer el amplio abanico de posibilidades que tenemos actualmente, podemos consultar la guía FLOSS (Free/Libre Open Source Software). Esta guía se actualiza cada 6 meses.

jueves, 12 de junio de 2008

LOPD - Ley orgánica de protección de datos de carácter personal

Desde mi punto de vista los alumnos que cursan los ciclos de informática deberían estar formados acerca de la LOPD - Ley Orgánica de Protección de datos. Son técnicos que a lo largo de su vida profesional gestionarán sistemas de información que manejarán grandes volúmenes de información de carácter personal. En este marco, deben conocer las medidas de seguridad que son de obligado cumplimiento.
Por este motivo, me gusta añadir en la materia del curso unas actividades para trabajar la LOPD. Para explicar la LOPD me apoyo en la siguiente presentación que os dejo aquí por si os sirve.
Documentación relevante:
  1. Ley Orgánica de Protección de datos de carácter personal de 1999.
  2. Desarrollo de la LOPD de 2007. Desarrolla con más detalle la ley de 1999.
  3. Guía de seguridad. Elaborado por la Agencia de Protección de Datos como plantilla para la elaboración de los documentos de seguridad.
  4. Informe, plan sectorial de oficio a la enseñanza reglada no universitaria, elaborado por la Agencia de protección de datos. Estudio acerca del cumplimiento de la LOPD por centro educativos no universitarios.