Managing the Agile Process of HCD & SCRUM

SCRUM

Scrum es un método de desarrollo ágil de software, concebido en 1990.
En Scrum se realizan entregas parciales o regulares del producto final,priorizadas por el beneficio que aportan al receptor del proyecto.

Está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.

Actividades presentes en la metodología Scrum: requerimientos, análisis, diseño, evolución y entrega
En cada actividad, las tareas de trabajo ocurren en un patrón del proceso llamado sprint.

El trabajo realizado en un sprint se adapta al problema en cuestión y se define en tiempo real por parte del equipo Scrum.

Consta de los siguientes elementos:
  • Retraso: lista de requerimientos prioritarios o características del proyecto. Es posible agregar en cualquier momento otros aspectos (requerimientos) al retraso. El gerente del proyecto evalúa el retraso y actualiza las prioridades según se requiera. 
  • Sprints: consiste en unidades de trabajo que se necesitan para alcanzar un requerimiento definido en el retraso que debe ajustarse en una caja de tiempo predefinida (suele tratarse de eventos cada 30 días). Durante el sprint no se introducen cambios. Así, el sprint permite a los miembros del equipo trabajar en un ambiente de corto plazo pero estable. 
  • Reuniones Scrum: son reuniones breves (de 15 minutos, por lo general) que el equipo Scrum efectúa a diario. Hay 3 preguntas clave: 
    • ¿Qué hiciste desde la última reunión del equipo? 
    • ¿Qué obstáculos estás encontrando? 
    • ¿Qué planeas hacer mientras llega la siguiente reunión del equipo? 
  • Un líder del equipo, llamado maestro SCRUM, dirige la junta y evalúa las respuestas de cada persona. La junta Scrum ayuda al equipo a descubrir los problemas potenciales tan pronto como sea posible. Estructura de equipo con organización propia.
  • Demostraciones preliminares: entregar el incremento de software al cliente de modo que la funcionalidad que se haya implementado pueda demostrarse al cliente y éste pueda evaluarla. Las demostraciones preliminares no contienen toda la funcionalidad planeada, sino que éstas entregará todo en la caja de tiempo establecido.

Managing the Agile Process of Human-Centred Design and Software Development 


En el desarrollo de software,  desarrollar de forma iterativa permite una mejor captura de requerimientos de los usuarios y permite que se genere un software que brinde un alto grado de usabilidad.

Los métodos ágiles empezaron a surgir y tomar notoriedad debido a los fracasos de los proyectos que tomaban mucho tiempo en pasar de levantamiento de requisitos a la priemera prueba del sistema.

 Mientras que SCRUM es popular para los Ingenieros de Software, es HCD es popular para expertos en Usability and User Experience. Los requisitos de los usuarios y la evauación de las soluciones de diseño tienen un papel muy importante. Los requisitos del usuario son más importantes que las características técnicas que los ingenieros de software podrían derivar. Los usuarios obtienen lo que realmente quieren.

Proceso HCD con base a ISO 9242-210:
  1. Entender y especificar el contexto de uso.
  2. Especificar los requerimientos de usuario.
  3. Producir soluciones de diseño para complacer los requerimientos de usuario.
  4. Evaluar el diseño contra los requerimientos.
El Usability Engineering Repository (UsER) es un framework, plataforma y repositorio que soporta el análisis, diseño y evaluación de sistemas interactivo, y fue desarrollado en la universidad de Lübeck. Este modelo es una extensión del proceso de HCD.  

Combinar los enfoques de HCD y SCRUM podría dar lugar a un desarrollo con las ventajas de ambos enfoques. 



Paelke publicó un proceso llamado Agile UCD-Process, en el que se inicia el proceso de desarrollo con actividades de UCD para obtener los requerimientos y desarrollar el producto backlog. Después de que se realiza esta fase, se corre el SCRUM. En este método las actividades de UCD y el desarrollo de software no están fuertemente integradas, sólo se tratan como actividades secuenciales.

Otro modelo es U-SCRUM, el cual sugiere integrar aspectos de usabilidad a SCRUM, esto se da al  tener dos productos propios y el uso de conceptos de personas para la comunicación.

Patrones de proceso para SCRUM:
  • Yesterday's weather: El número de Puntos de Estimación completados en el útlimo Sprint es el predictor más confiable acerca de cuantos Puntos de Estimación se completarán en el siguiente Sprint.
  • Sprint Zero: Se sugiere realizar un Sprint corto antes de la implementación de código, para definir un margen del producto, metas generales, para planear los siguientes sprints y definir principios de diseño.
  • One Sprint Ahead: Soluciona el problema de sincronización entre el equipo de desarrollo y el de UX, haciendo que el equipo de UX trabaje al menos una iteración adelante del de desarrollo.
  • Parallel Tracks: El equipo UX o de Usabilidad trabaja en paralelo con el equipo de desarrollo de manera que puedan sincronizarse sus actividades.
Se presenta un modelo actualizado para el SCRUM:
  • El proceso de desarrollo empieza con un primer análisis del contexto del proyecto. 
  • Basado en la visión del proyecto, las necesidades son identificadas (Sprint Zero), esta actividad se realiza por personas analistas, o por los mismos desarrolladores.
  • Basándose en los requerimientos, 
  • En base a las necesidades y requisitos identificados en este primer sprint se corre un sprint de desarrollo para entregar el primer incremento del producto. 
  • Se produce un desarrollo de sprint en paraleldo al siguiente ciclo de identificación de requerimientos en forma de un incremento de product backlog. 
  • El Sprint para identificar requerimientos sigue la idea del Proceso HCD. Esto provee oportunidades de desarrollar software que tiene utilidades necesarias, es usable y provee la experiencia de usario necesaria.
  • Sobre la base de las necesidades identificadas, debe haber un plan para las actividades en el próximo Proceso HCD que permita identificar los requisitos del proyecto en desarrollo. 
  • Los requisitos identificados se recopilan y se especifican como acumulación de productos.

Comentarios