miércoles, 10 de abril de 2013

El modelo 4 + 1 vistas como guía de los workshops de ingeniería de software

[Post Anterior: Re-aprendiendo como enseñar ingeniería de software]

Antes de iniciar con las reseñas de cada una de las actividades, es necesario que quienes quieren ser instructores de este tipo de actividades tengan en cuenta que deben prepararse al menos de manera básica en algunos aspectos. Yo personalmente uso estos Workshops para enseñar Arquitectura de Software a principiantes, existen otros tipos de Workshop más enfocados a Ingeniería de Requisitos y que no cubriré en mis post.

Ahora bien, independiente de las metodologías que usemos es importante recordar que hay algunos principios básicos y hasta sencillos que ayudarían a muchos proyectos y a muchas personas en proceso de aprendizaje, a involucrarse más coherentemente en las actividades que se desarrollan durante el proceso de desarrollo de software. Algunos de esos principios en la Arquitectura de Software se explican de forma genérica en el Modelo 4+1 vistas.

Dando una idea corta de lo que el significa, es un conjunto de perspectivas para afrontar un proceso de desarrollo, esas perspectivas entendidas en sus conceptos generales, pueden ser usadas para expresar y modelar los aspectos principales de nuestros proyectos, dirigiéndonos en cada vista especificamente a algunos participantes en el proceso (ver imagen). Hay otras aproximaciones  esta es una de las más fáciles de comunicar y que les recomiendo leer, tengan en cuenta que el Modelo 4+1 no define que UML es la forma de modelar las distintas vistas, sin embargo, al hacer el símil con los diferentes diagramas es posible materializarlas usando diagramas UML específicos.

Los workshops, no están enfocados a cubrir UML, lo que hago es usar algunos conceptos principales, pero es importante no olvidar que las sesiones buscan crear la sensibilización y ayudar a despertar las habilidades a los asistentes con respecto a los temas a considerar en las diferentes vistas o perspectivas. El trabajo más teórico y detallado de UML requiere de las sesiones de teoría y práctica que no son el objetivo ni de estos post ni de los workshops.

Antes de empezar con el workshop, es necesario socializar con todo el equipo el alcance del problema a resolver, claramente al no partir desde requisitos detallados la actividad no buscará un alto nivel de precisión, sin embargo si cumplir con lo que se pacte en la socialización, para que el producto final pueda ser revisado en el proceso y al terminar la actividad. De acuerdo al Modelo 4+1 lo que se converse en este tiempo serían los escenarios que todos van a cumplir en las 4 vistas adicionales.

Una de mis recomendaciones es que si hace este ejercicio en una empresa, no lo haga con una aplicación real, las personas terminan disipándose en sus problemas del día a día, elija algo sencillo, y que permita usar altas dosis de sentido común para ser resuelto.

Para la etapa de socialización he usado 3 técnicas distintas:

1. Enunciado detallado: Se entrega a todos los participantes un enunciado detallado del software que se va a construir y se hace una sesión de dudas para que todos puedan preguntar y aclarar inquietudes. Es muy importante que si se llegan a pactos o se hacen observaciones en la sesión de dudas el instructor las tenga presentes para asegurarse que en las diferentes vistas todos estuvieron pendientes no solo del enunciado si no de los acuerdos realizados. Confieso que en la parte de preguntas justamente intento introducir algún criterio de alto valor, con el ánimo de llamar la atención sobre que el cliente pidió algo y nadie estuvo atento a lo que pidió, en caso de que olviden implementarlo.

2. Historias de usuario: El instructor prepara las historias de usuario que cubren todos los escenarios de la aplicación a realizar. Esto me pareció muy adecuado y creo que es la que más repetiría en escenarios fuera de un salón de clase, la razón es que te ayuda a llegar más rápidamente al Worskhop de Arquitectura, y las historias de usuario se convierten en la herramientas que todos usan como referencia.

Con ellas se puede realizar una actividad de identificar metas, restricciones y supuestos arquitectónicos. Además en uno de los equipos hicimos la identificación de las calidades sistemicas de ISO 9126, esto depende más del nivel de los participantes. En un salón de clase de primer nivel de ingeniería recomiendo más el enunciado inicial, a menos que ya se cuente con requisitos detallados abordados en la materia o por que no, historias de usuario detalladas.

3. Workshop previo de Ingeniería de Requisitos: Según el foco y la disponibilidad de tiempo, antes de inicial el Workshop de arquitectura, puede realizarse una actividad de identificación de requisitos. Esto es una buena experiencia ya que se logra involucrar a las personas desde el inicio, sin embargo el instructor debe hacer además en algunos momentos escenas actuadas tratado de ser mas el cliente que el instructor, con el animo justamente de poner algunos tropiezos y llevar a los futuros arquitectos a buscar y no solo quedarse en consideraciones técnicas, si no entender realmente su rol, en el cual los objetivos de negocio son tan importantes como las buenas arquitecturas.

Aquí podría generar otra serie de post al respecto, más adelante espero animarme a hacerlo, ya que se pueden hacer bastantes actividades como generación de historias de usuario, prototipos, requisitos formales, etc, todo de una manera bastante lúdica.

Vistas estas 3 maneras de iniciar con el workshop, les dejo algunas recomendaciones generales.

Recomendaciones:
Como les aconsejaba antes es bueno que el instructor tenga una aplicación que conozca lo suficientemente bien, pero que siempre este dispuesto a dejar que propuestas diferentes salgan en el transcurso, conocer el proyecto es más una manera de dar ideas ante una situación donde los participantes no sepan que hacer.

Generalmente abordo he abordado esta actividad en grupos de 10 o más personas, la idea es que el grupo se divide el equipo en equipos y se les encarga a cada equipo de una de las vistas.

Recomiendo que minimamente antes de empezar se haga una socialización del Modelo 4+1 vistas, esta puede realizarse con las notas breves del Modelo 4+1 de Javier Garzas.

Asignación de participantes:
Si el docente o instructor conoce las personas en la actividad, es bueno que inicialmente asigne al menos una persona con conocimientos en cada vista. En la vista logica un analista funcional, en la vista fisica alguien que le guste y conozca temas de IT y redes y en las vistas de implementación y procesos a quienes sepa que son más buenos en el ámbito del desarrollo de software.

La idea consiste en hacer sesiones de 15 minutos, cada quince minutos uno de los integrantes del equipo o más en caso de ser muchos, giran a otra de las vistas, la dinámica se da hasta que todos hayan pasado por todas las vistas. Cada que alguien nuevo llega a un equipo, debe ser puesto en contexto de lo que se está trabajando. La parte genial que da la dinámica de girar es que cuando alguien gira, debe ayudar a que la otra vista sea consecuente con la vista en la que estaba participando antes, de hecho esto se da por defecto, pero si no debe ser indicado por el instructor.

El instructor debe estar pendiente además de los equipos que enfocan mal el sentido de las vistas o que no avanzan por que sienten algún bloqueo.


Espacio de trabajo: 
Trate de buscar un espacio amplio donde la gente pueda desplazarse, no permita que se usen computadoras o dispositivos moviles en el transcurso de la sesión, que todos estén involucrados trabajando.

Necesitará trabajar en las paredes, así que asegúrese de que todos los materiales que usan no maltratan las mismas. Algunos diagramas necesitan además escribir y borrar, para esos necesita un tablero para marcadores borrables o muchas hojas de papel periódico.


Estrategia:
Como preparación al Workshop, defina las reglas de cada una de las vistas. Elija un modelo para hacer en la sesión en cada una y defina una cada de herramientas, esto se convertirá en la guia de las actividades de cada uno de los equipos.

En adelante generaré 4 post con cada una de las vistas y mis aprendizajes en ellas, en cada una les diré que reglas o caja de herramientas uso, y espero recibir sus comentarios.

Los veo en la siguiente entrega.

Sorey

No hay comentarios: