Crystal es una familia de metodologías de desarrollo de software con un código genético compartido que incluye entregas frecuentes, comunicación personal y mejora a través de la reflexión. Cada tipo de proyecto tiene su propia metodología Crystal. Este artículo explorará Crystal Clear como un concepto para equipos pequeños (hasta 8 personas). Es una buena alternativa à la programación extrema, con algunos aspectos compartidos.
Historia de la Familia Crystal
En 1991, Alistair Cockburn, uno de los coautores del Manifiesto Ágil, tenía como objetivo crear una metodología de desarrollo de software efectiva. Encuestó a numerosos equipos de proyectos y estudió sus casos de desarrollo.
La investigación sentó las bases para los principios clave de Crystal Clear como un concepto eficaz de desarrollo de software:
- Las metodologías orientadas a las personas son más beneficiosas que las orientadas a procesos.
- La metodología debe adaptarse al proyecto y al equipo individuales; no hay una metodología universal de desarrollo de aplicaciones.
En 1994, implementó estas ideas como consultor principal en un proyecto de costo fijo valorado en $15 millones con un personal de 45 personas llamado “Naranja.” Los principios desarrollados por Alistair se convirtieron en la base del éxito del proyecto. Documentó esta experiencia en su libro “Sobreviviendo a los Proyectos Orientados a Objetos” (1997) y un año después desarrolló la familia de metodologías Crystal.

Autor feliz de la familia de metodologías Crystal, coautor del Manifiesto Ágil Alistair Cockburn
En 2004, Cockburn identificó tres métodos principales del concepto:
- Entrega rápida de código útil: Transición de despliegues de código grandes e infrecuentes a lanzamientos más pequeños y frecuentes.
- Mejora a través de la reflexión: Reunir ideas sobre qué funcionó bien y qué no en la versión anterior del software para mejorar la siguiente versión.
- Comunicación osmótica: Cockburn describió la percepción e intercambio de información entre desarrolladores trabajando en la misma sala como ruido de fondo, similar à la ósmosis.
Ese mismo año, Cockburn publicó “Crystal Clear: Una Metodología Impulsada por Humanos para Equipos Pequeños”. Otras contribuciones al desarrollo de CC fueron realizadas por el administrador de sistemas Marcel Wagemann, quien escribió un ensayo sobre el uso de los principios de Crystal Clear, Ágil y Scrum en el desarrollo de software.
¿Qué es la Metodología Crystal?
Crystal es una familia de metodologías basada en estos tres métodos.
No hay una única metodología “mejor” Crystal Clear; cada modificación se adapta a diferentes tipos de proyectos. La organización o proyecto crea esta modificación basada en el “código genético” de Crystal (reglas básicas de uso).
La clasificación más simple posible de Crystal es por el número de personas en el proyecto:
- Clear: 2 a 8 personas trabajando juntas en una o adyacentes oficinas
- Yellow: 10 a 20 personas
- Orange: 20 a 50 personas
- Red: 50 a 100 personas
El código genético de Crystal Clear consiste en:
- Modelo de juego cooperativo económico: Cockburn ve el desarrollo de software como una serie de “juegos” que consisten en invención y comunicación, restringidos por los recursos. Cada juego tiene dos objetivos: entregar software en este juego y prepararse para el siguiente juego de la serie. Cada nuevo proyecto requiere nuevas estrategias.
- Prioridades elegidas: Común a todas las metodologías Crystal son dos prioridades: seguridad y eficiencia en el desarrollo.
- Características elegidas: Estas mejoran la prioridad de seguridad. Tres son básicas (entrega rápida y frecuente de código, comunicación personal, mejora a través de la reflexión), mientras que las cuatro restantes son adicionales: seguridad personal, enfoque, fácil acceso a expertos, y un entorno técnico de calidad con pruebas automatizadas.
- Principios elegidos: Uno continúa la dirección clave de individualizar la metodología:
El nivel de detalle en los requisitos de software, documentos de diseño y planificación depende de las especificidades del proyecto, incluyendo el grado de interacción personal del equipo y el daño que pueden causar los errores no detectados.
Proceso Cíclico de Crystal Clear
La mayoría de los proyectos con Crystal Clear constan de seis ciclos, definiendo las responsabilidades y tareas del equipo del proyecto:
- Ciclo de proyecto: Aunque el proyecto en sí es una unidad de producto, generalmente es seguido por otro proyecto que repite el ciclo. El ciclo del proyecto consta de tres partes: preparación (reunión del equipo, investigación 360°, determinación de metodología), una serie de ciclos de entrega, y un “ritual de finalización”. Duración: de unos pocos días a semanas.
- Ciclo de entrega: Involucra recalibrar el plan de lanzamiento del software, una serie de una o más iteraciones que resultan en un código integrado probado, entrega a usuarios reales, y un “ritual de finalización”. Duración: de 1 semana a 3 meses.
- Iteración: Consiste en tres partes principales: planificación de iteración, actividades diarias e integración, y el “ritual de finalización” del proyecto.
- Semana/día laboral: La elección de día o semana como unidad de tiempo del ciclo depende del formato del proyecto y del equipo. Ejemplos incluyen reuniones semanales de departamento, informes del líder del equipo, y seminarios de “brown-bag” (discusiones durante el almuerzo sobre problemas del proyecto).
- Periodo de integración: Desarrollo, integración y pruebas del sistema. Algunos equipos realizan pruebas de construcción continua con una máquina dedicada, mientras que otros integran diariamente o tres veces à la semana. Cuanto más corto sea el ciclo de integración, mejor. Duración: de 30 minutos a 3 días (dependiendo de la experiencia del equipo).
- Desarrollo: Escribir y verificar una parte del código. Este es el trabajo central de un programador en el desarrollo ágil. Un miembro del equipo toma una pequeña tarea, programa una solución (idealmente con pruebas), y la verifica en configuración con todo el sistema. Duración: de 15 minutos a varios días.
Estrategias y Técnicas de Crystal Clear
El Crystal Clear “puro” no requiere ninguna estrategia y técnica específica. Sin embargo, hemos preparado un conjunto inicial de métodos para ayudar al equipo a trabajar de manera eficaz en cada ciclo de CC.Las Estrategias Clave Incluyen:
- Investigación 360°: Al inicio del proyecto, el equipo necesita entender cuán útil y significativo es el producto y si puede ser creado con los recursos y tecnologías disponibles. El proyecto se examina en áreas como valor comercial, requisitos, tecnologías necesarias, plan del proyecto, composición del equipo, y metodologías elegidas. La implementación toma de unos pocos días a 1 – 2 semanas.
- Victoria Temprana: Una victoria une al equipo y aumenta la confianza de cada miembro. En el desarrollo de aplicaciones, la estrategia de victoria temprana implica encontrar el primer trozo de código funcional, a menudo un pequeño elemento de la funcionalidad útil del sistema. Esta pequeña victoria ayuda a los miembros del equipo a aprender los estilos de trabajo de los demás, los usuarios obtienen una idea temprana del sistema, y los patrocinadores ven la capacidad del equipo.
- Cambio Arquiṭectónico Incremental: La arquitectura del sistema debe evolucionar a medida que cambian los requisitos tecnológicos y comerciales con el tiempo. La estrategia aborda esto permitiendo al equipo cambiar la arquitectura de manera incremental sin alterar la funcionalidad general del sistema. La misma estrategia puede aplicarse a cambios funcionales en el sistema final.
- Radiadores de Información: Displays colocados donde las personas pueden verlos mientras trabajan o descansan. Muestran información necesaria sin necesidad de hacer preguntas adicionales, encarnando la regla de Crystal Clear “más comunicación, menos interrupciones”.
El radiador de información debe ser grande, de fácil acceso, simple de usar y leer, y contener información actualizada. Ejemplos incluyen tableros de Scrum y Kanban y un glosario de trabajo que interpreta la terminología del proyecto.

Técnicas Populares Incluyen:
- Formación de la Metodología: La personalización de Crystal Clear ocurre en dos etapas: entrevistas del proyecto (creando una mini-biblioteca de experiencia organizacional destacando los puntos fuertes y débiles del proyecto) y un taller de formación de metodología (analizando la experiencia para mejorar las fortalezas y compensar las debilidades). La información del primer paso se utiliza en el segundo.
- Taller de Reflexión: Periódicamente, el equipo debe tomar un descanso de una hora para realizar un “taller de reflexión,” discutiendo qué funciona bien o mal, qué necesita mejorarse y qué se puede hacer de manera diferente en las siguientes etapas del proyecto.
- Planificación Blitz: Permite a patrocinadores, usuarios y desarrolladores crear conjuntamente una hoja de ruta del proyecto con restricciones de tiempo.
- Reuniones Diarias de Pie: Reuniones cortas para determinar el estado, el progreso y los problemas del proyecto. Estas reuniones no son para discusión, solo para identificación de problemas. Los resultados se registran en ungestor de tareas en línea o en un tablero Kanban físico.
- Programación en Pareja: En este proceso, dos personas trabajan en una tarea de programación en un solo dispositivo. La programación en pareja a menudo es criticada por eliminar enfoques individuales para las tareas y requerir relaciones interpersonales de alta calidad dentro del equipo del proyecto. Una técnica alternativa, “diapositiva a diapositiva,” implica que dos personas se sientan lo suficientemente cerca como para ver las pantallas del otro pero trabajen en tareas diferentes en estaciones de trabajo separadas. Esto corresponde al concepto de “interacción osmótica.”
Lectura Recomendada sobre Crystal Clear
Desafortunadamente, hay muy poca literatura sobre Crystal Clear, y no hay obras especializadas en ucraniano hasta 2017.Recursos clave para estudiar Crystal Clear incluyen:
- “Crystal Clear: Una Metodología Impulsada por Humanos para Equipos Pequeños” de Alistair Cockburn: El libro esencial para entender la metodología desde su creador. Contiene muchos estudios de caso, ejemplos y mini-guías sobre la implementación de elementos individuales de Clear en una organización.
- “Programación en Pareja Iluminada” de Laurie Williams: Un análisis detallado de una de las técnicas de Crystal Clear, la programación en pareja. El libro proporciona consejos prácticos sobre el uso de PP en el desarrollo de software.
- “Desarrollo Ágil de Software: El Juego Cooperativo” de Alistair Cockburn: Explica el concepto de desarrollo de software como un “juego cooperativo de invención y comunicación.” Cockburn expande ideas de Crystal Clear en este libro, que luego formaliza en “Crystal Clear: Una Metodología Impulsada por Humanos para Equipos Pequeños.”
- El sitio web oficial del creador de Crystal Clear: Si bien no es un libro, ofrece una gran cantidad de información, incluidas entrevistas, diagramas, publicaciones en blogs y discusiones sobre la metodología. La única desventaja es el diseño poco amigable del sitio.
Veredicto
Muchas de las llamadas metodologías “mejores” son rechazadas por los equipos de proyecto porque son demasiado complejas, intrusivas e incómodas.