jueves, 15 de agosto de 2013

Metodologías ágiles: Crystal Clear



Hola a todos,

Ya habéis visto SCRUM y KANBAN que realmente son dos metodologías ágiles no centradas en el software (se podrían usar en servicios de atención al cliente o en la construcción, por ejemplo, sin ningún tipo de problemas), ahora toca aprender la familia de metodologías Crystal creadas por Alistair CockBurn que están mucho más centradas en el negocio del software.

El sr Alistair después de mucho investigar en el rendimiento de diferentes equipos de IBM vió que lo más importante eran las personas que trabajan en ese equipo y como se auto-organizaban. Dependiendo de cúan grandes fuesen los equipos y de que responsabilidades tuviese el proyecto el equipo necesitaría más o menos "accesorios" para poder tirar adelante. Así fue como creó la familía de metodologías Crystal. Los proyectos se dividen en 16 tipos diferentes con metodologías ligeramente diferentes de una a otra en función de la peligrosidad y el tamaño del equipo:

NOTA:
L : Riesgo de perder vidas humanas si hay un fallo
E: Riesgo de perder dinero que no es nuestro, si hay un fallo podemos tener graves problemas económicos
D: Riesgo de perder dinero nuestro y no "vital". Si hay un fallo la empresa registrará menos ganancias pero seguirá viviendo.
C: Riesgo de perder la comodidad. Si hay un fallo el equipo tendrá que trabajar más horas e ir fines de semana a acabarlo pero no pasará nada más.
Número: Máximo de personas en el equipo

Así pues estas metodologías tanto sirven para equipos pequeños y proyectos no vitales como para grandes equipos con altas responsabilidades.

Yo me centraré en explicar el Cristal Clear (C6) debido a que es el más sencillo (y es al 90% igual que al resto) y el que al final más se usa (la gran mayoría de proyectos acostumbran a ser pequeños tanto en riesgos como en personal).

Las bases del Crystal Clear son muy parecidas a las de la mayoría de metodologías de desarrollo ágil:
    - Personas por encima de herramientas
    - Reducción de "artefactos" intermedios (documentación, hojas de control, logs, etc..)
    - Reducción en la toma de decisiones
    - Agilidad frente al cambio

Todo esto en la práctica se puede observar como un conjunto de propiedades:
     - Entrega frecuente (como con SCRUM)
     - Comunicación íntima (todos los trabajadores han de estar en la misma habitación y enterarse de las cosas casi sin querer , por ósmosis )
     - Mejora reflexiva (se ha de pensar que es lo que va bien y va mal, para poder mejorar)
     - Autoconfianza de los trabajadores.
     - Acceso fácil a los usuarios especialistas.
     - Foco (que nadie tenga más de dos cosas en la cabeza cuando está desarrollando)
     - Pruebas automatizadas. (como con TDD )
     - Integración frecuente (por ejemplo usando un servidor de integración que gestione también el control de versiones y la documentación)

 Las estrategias que más se recomiendan dentro de Crystal Clear son:
    - Obtener victorias en poco tiempo (es decir, intentar tener poco código pero validado cuanto antes mejor, así se evitan grandes cantidades de código mal enfiocado que no cumple con lo que quiere el cliente)
    - Intentar tener cuanto antes un esqueleto que más o menos funcione, para luego ir añadiendo todas las funcionalidades que se piden.
    - Asumir que en más de una ocasión se tendrá que reescribir una parte del código.
    - Programación por parejas: Ya lo explicaremos con más detalle más adelante, por ahora quedaos en que dos programadores trabajan en el mismo PC y obtienen más rendimiento que estando separados.
    - Reuniones diarias a pie. (como con SCRUM)

LordPakusBlog



0 comentarios :

Publicar un comentario

Entradas populares