Metodología de desarrollo Crystal

Metodología de desarrollo Crystal

Cuando en 1991, IBM le pidió a Alistair Cockburn que desarrollara la metodología para proyectos orientados a objetos, sabía que sería un verdadero desafío ya que no sabía mucho sobre metodologías de proyectos en ese momento. 

Sin embargo, luego de hacer una investigación exhaustiva, llegó a la conclusión de que los equipos altos y exitosos compartían los mismos patrones y técnicas sin siquiera utilizar ninguna metodología de proyecto específica. 

En otras palabras, agregaron valor a aspectos como la comunicación cercana, la moral, el acceso a los usuarios y otros, que no se pueden encontrar en ninguna metodología específica. Estos hallazgos le permitieron construir la metodología de desarrollo Crystal.

Qué es el método Crystal

Introducido por Alistair Cockburn, El método de desarrollo Crystal, es una colección de enfoques de desarrollo de software ágil, se centra principalmente en las personas y la interacción entre ellas mientras trabajan en un proyecto de desarrollo de software. También hay un enfoque en la criticidad comercial y la prioridad comercial del sistema en desarrollo.

A diferencia de los métodos de desarrollo tradicionales, Crystal no repara las herramientas y técnicas de desarrollo, sino que mantiene a las personas y los procesos en el centro del proceso de desarrollo. Sin embargo, lo importante no son solo las personas o los procesos, sino la interacción entre los dos.

Crystal no es un conjunto de herramientas y métodos de desarrollos prescritos, sino una familia de varios enfoques de desarrollo. Al comienzo del proyecto, los procesos y las herramientas no son fijas, sino que se deciden teniendo en cuenta los requisitos comerciales y las necesidades técnicas del proyecto.

Al decidir si Crystal es la metodología correcta para un proyecto, considera la comodidad, el dinero discrecional, el dinero esencial y la vida junto con el tamaño del equipo que trabaja en un proyecto en particular. Varias metodologías en la familia Crystal se conocen como los diversos "pesos" del enfoque de Crystal y están representados por diferentes colores del espectro.

Por lo tanto, la familia de metodologías Crystal consta de las siguientes variantes: Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Orange Web, Crystal Red, Crystal Maroon, Crystal Diamond y Crystal Sapphire. Crystal es preciso sobre ciertas prácticas porque son cruciales para la implementación exitosa del enfoque de Crystal en cualquier proyecto. 

Estas prácticas incluyen:

Un enfoque de desarrollo iterativo e incremental: el proyecto se desarrolla en iteraciones que generalmente tienen un límite de tiempo. La característica entregada al final de una iteración está integrada en el sistema general. Los comentarios de los usuarios tomados al final de una iteración se utilizan para planificar la próxima iteración; y, se agregan características nuevas y adicionales en cada iteración posterior. Todo esto da como resultado el refinamiento y la finalización del software en general.

Participación activa del usuario: esto es imprescindible porque Crystal es un enfoque centrado en las personas y enfatiza la transparencia. Por lo tanto, los usuarios no solo participan activamente sino que también reciben información periódica sobre el progreso del proyecto.

Cumplimiento de compromisos: el equipo se esfuerza por garantizar la entrega frecuente de funcionalidades potencialmente viables y valoradas por el cliente. Es con este fin que Crystal sigue un enfoque de desarrollo iterativo e incremental.

Para aclarar, Crystal Clear es más apropiado para proyectos comparativamente a corto plazo administrados por un equipo de seis desarrolladores que trabajan en un solo espacio de trabajo, mientras que Crystal Orange es adecuado para proyectos que requieren un equipo de 10 a 40 miembros y tienen una vida útil de 1-2 años

Por otro lado, los métodos Crystal Sapphire o Crystal Diamond se utilizan en grandes proyectos que implican un riesgo potencial para la vida humana. Por lo tanto, el peso de la metodología Crystal está determinado por el entorno del proyecto y el tamaño del equipo.

Características

El método Crystal se desarrolla basándose en tres grandes aspectos que son: la potencia humana, la adaptación, y su capacidad para ser ultraligera. Pero ¿Qué significa esto?

Potencia Humana

Esto significa que las personas son el aspecto más importante de Crystal, y que todos los procesos y herramientas están relacionados con ellas. Crystal cree que el desarrollo de software es esencialmente una actividad humana, por lo que las personas involucradas en esta actividad son vitales, mientras que los procesos deben modelarse para cumplir con los requisitos del equipo, y no al revés.

Crystal enfatiza que los equipos de desarrollo son autosuficientes y auto organizados, por lo que son capaces de racionalizar los procesos a medida que avanza el proceso de desarrollo y se vuelven más organizados y competentes.

Adaptativo

En cuanto a lo adaptativo, hay que decir que en primer lugar, debemos recordar que Crystal no es un conjunto de herramientas y técnicas prescritas para el desarrollo de software; más bien, es un enfoque. Por lo tanto, los procesos y las herramientas no son fijas, sino que deben ajustarse a los requisitos y características del proyecto.

En otras palabras, Crystal es una metodología de "estiramiento a medida", porque cada proyecto es único y requiere métodos que se adapten a los requisitos comerciales y que satisfagan los requisitos técnicos del proyecto.

Ultraligero

Finalmente, cuando hablamos de que Crystal es ultraligero es debido a que Crystal no recomienda demasiada documentación, administración general e informes. En cambio, cree en mantener las cosas ligeras y centrarse en el desarrollo de software funcional y valorado para el negocio.

Para esto, los equipos que siguen el enfoque de Crystal trabajan para mejorar la comunicación libre y abierta entre los miembros del equipo, así como para establecer un flujo transparente de información entre los desarrolladores y las partes interesadas.

Beneficios

El hecho de que Crystal utilice un enfoque en las personas y la comunicación como su principio organizador es lo que lo distingue de otros métodos de desarrollo de software. A diferencia de otras metodologías ágiles, Crystal se enfoca en ajustar las técnicas utilizadas en un proyecto con el objetivo de fortalecer el proceso de comunicación en equipo. Además de eso, Crystal permite:

  • Integración continúa
  • Procesos flexibles y configurables.
  • Participación activa del usuario

Ten en cuenta que Crystal se creó principalmente para recordarte cómo mantenerte centrado y enfocado en tu trabajo durante el desarrollo del proyecto.

Esto significa que debes tener un amplio conocimiento y una amplia experiencia en el desarrollo de software si deseas implementarlo con éxito y triunfar en tus próximos proyectos futuros.

Más métodos y metodologías: