Universidad Nacional de Trujillo
CRYSTAL
Metodología Ágil
Sistemas Orientados a Objetos
Abanto Pineda, Carlos Fernando
Bazán Cerna, Miguel Ángel
Namoc Portilla, Bryan Alfredo
Tafur Bustamante, Tony Alexander
Junio, 2017
ii
RESUMEN
Fundamentalmente en este trabajo a realizar se presenta una conceptualización de una de
las metodologías ágil, la cual es conocida como “Crystal”, sus principales características,
las cuales describen la manera en que se desarrolla este tipo de metodología, su
clasificación que toma según la capacidad del equipo y la comunicación, también veremos
sus procesos, en donde se muestra como es que los equipos de desarrollo realizan
aplicando la metodología crystal, en que consiste el código genérico junto a las
propiedades y principios que sirven de guía para la toma de decisiones y muchas cosas más
que hacen de este trabajo un importante monografía para leer.
iii
ÍNDICE
CAPÍTULO 1 ........................................................................................................................ 1
DESARROLLO DE LA METODOLOGIA ......................................................................... 1
1.1. Antecedentes ........................................................................................................... 1
1.2. ¿Qué es la metodología crystal? ............................................................................. 1
1.3. ¿Qué es Cristal Clear?............................................................................................. 2
1.4. Definiciones ............................................................................................................ 2
1.5. Características ......................................................................................................... 3
1.6. El Código Genético ................................................................................................. 8
1.6.1. Prioridades ....................................................................................................... 9
1.6.2. Propiedades ...................................................................................................... 9
1.6.3. Principios ....................................................................................................... 10
1.6.4. Estrategias ...................................................................................................... 10
1.6.5. Técnicas ......................................................................................................... 11
CONCLUSIÓN ................................................................................................................... 12
BIBLIOGRAFIA ................................................................................................................. 13
iv
LISTA DE FIGURAS
FIGURA 1. COLORES DE LA METODOLOGÍA CRYSTAL. 2
FIGURA 2. ESTRATEGIA DE CRYSTAL CLEAR. 11
v
INTRODUCCIÓN
Crystal es una metodología de desarrollo de Software ágil, más que una metodología se la
considera una familia de metodologías, debido a que se subdivide en varios tipos de
metodologías en función a la cantidad de persona que vayan a estar en el proyecto. Es una
metodología que ha sido creada por una persona en particular (Alistair Cockburn ) el cuál
lo llego a creó en base al análisis de distintos proyectos de desarrollo de software y su
propia experiencia, lo cual fusionando ambos aspectos dio lugar a una metodología
bastante interesante, la cual se presenta a continuación.
1
CAPÍTULO 1
DESARROLLO DE LA METODOLOGIA
1.1.Antecedentes
En los inicios de 1990, en un estudio realizado en IBM se llegó a los siguientes acuerdos
(Cockburn, 2001). Los equipos exitosos enfatizaban que no habían seguido métodos
formales ni herramientas CASE y que habían estimulado la comunicación y los test.
Los equipos con problemas no entendían sus fallas o si habían cumplido con los métodos
formales.
1.2.¿Qué es la metodología crystal?
Son un conjunto de metodologías que se basan en 2 principios fundamentales que son: la
capacidad del equipo y la comunicación. A través de estos elementos se toman
metafóricamente diferentes piedras, gemas o colores de acuerdo a la capacidad del equipo
y complejidad del proyecto. Principalmente nació en apoyo a dar soluciones específicas en
IBM de las cuales eXtreme Programing (XP) y Scrum no se adaptaban a sus necesidades.
Los colores de esta metodología se dividen de la siguiente manera:
Crystal Clear: El más usado de las metodologías de Crystal que entra en un rango
de 8 o menos integrantes.
Crystal Yellow: para equipos de 9 – 20 personas.
Crystal Orange: para equipos de 21 – 50 personas.
Crystal Red: para equipos de 51 - 100 personas.
2
Crystal Diammond o Sapphire: utilizado para casos en los que la permanencia del
equipo o la subsistencia de la organización depende de la funcionalidad del
programa (en sistemas) o del proyecto en sí.
Figura 1. Colores de la Metodología Crystal.
1.3.¿Qué es Cristal Clear?
Crystal Clear no es una metodología en si misma sino una familia de metodologías con un
“código genético” común.
Crystal Clear (CC), puede ser usado en proyectos pequeños y como casi todos los otros
métodos, CC consiste en valores, técnicas y procesos.
En primera instancia se especifican los antecedentes de la metodología, continuando con
definiciones que ayudan a estructurar la fundamentación teórica y se termina con las
características esenciales de los diferentes tipos de Crystal
1.4.Definiciones
Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por
estar centradas en las personas que componen el equipo y la reducción al máximo del
número de artefactos producidos.
3
El desarrollo de software se considera un juego cooperativo de invención y comunicación,
limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que
se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas
de trabajo en equipo definidas.
Estas políticas dependerán del tamaño del equipo, estableciéndose una clasificación por
colores como se aprecia en la Figura 1.
1.5.Características
Las personas, como dispositivos activos, tienen modos de éxito y modos de fallo. Los
siguientes son los principales:
Cuando el número de personas aumenta, también aumenta la necesidad de
coordinar.
Cuando el potencial de daños se incrementa, la tolerancia a variaciones se ve
afectada.
La sensibilidad del tiempo en que se debe estar en el mercado varía: a veces este
tiempo debe acortarse al máximo y se toleran defectos, otras se enfatiza la
auditoria, confiabilidad, protección legal, entre otros.
Las personas se comunican mejor cara a cara, con la pregunta y la respuesta en el
mismo espacio de tiempo.
El factor más significativo es “comunicación”.
Los métodos se llaman Crystal evocando las facetas de una gema: cada faceta es otra
versión del proceso, y todas se sitúan en torno a un núcleo idéntico. Hay cuatro variantes
de metodologías: Crystal Clear para equipos de 8 o menos integrantes; Amarillo, para 9 a
20; Naranja, para 21 a 50; Rojo, para 51 a 100.
4
La más exhaustivamente documentada es Crystal Clear (CC), y es la que se ha de describir
a continuación. CC puede ser usado en proyectos pequeños. El otro método elaborado en
profundidad es el Naranja, apto para proyectos de duración estimada en 2 años. Los otros
dos aún se están desarrollando. Como casi todos los otros métodos, CC consiste en valores,
técnicas y procesos. Los seis valores o propiedades de CC son:
1) Entrega frecuente. Consiste en entregar software a los clientes con frecuencia, no
solamente en compilar el código. La frecuencia dependerá del proyecto, pero
puede ser diaria, semanal o mensual.
2) Comunicación osmótica. Todos juntos en el mismo cuarto. Una variante especial
es disponer en la sala de un experto diseñador senior y discutir respecto del tema
que se trate.
3) Mejora reflexiva. Tomarse un pequeño tiempo (unas pocas horas cada o una vez al
mes) para pensar bien qué se está haciendo, cotejar notas, reflexionar, discutir.
4) Seguridad personal. Hablar con los compañeros cuando algo molesta dentro del
grupo.
5) Foco. Saber lo que se está haciendo y tener la tranquilidad y el tiempo para hacerlo.
6) Fácil acceso a usuarios expertos. Tener alguna comunicación con expertos
desarrolladores.
Crystal Clear no requiere ninguna estrategia o técnica, pero siempre es útil tener unas
cuantas a mano para empezar. Las estrategias comunes a otras Metodologías Ágiles, son:
1) Exploración de 360°. Verificar o tomar una muestra del valor de negocios del
proyecto, los requerimientos, el modelo de dominio, la tecnología, el plan del
proyecto y el proceso.
2) Victoria temprana. Es mejor buscar pequeños triunfos iniciales que aspirar a una
gran victoria tardía.
5
3) Esqueleto ambulante. Es una transacción que debe ser simple pero completa.
4) Rearquitectura incremental. Se ha demostrado que no es conveniente interrumpir
el desarrollo para corregir la arquitectura. Más bien la arquitectura debe
evolucionar en etapas, manteniendo el sistema en ejecución mientras ella se
modifica.
5) Radiadores de información. Es una lámina pegada en algún lugar que el equipo
pueda observar mientras trabaja o camina. Tiene que ser comprensible para el
observador casual, entendida de un vistazo y renovada periódicamente para que
valga la pena visitarla.
En cuanto a las técnicas, se favorecen:
a) Entrevistas de proyectos. Se suele entrevistar a más de un responsable para tener
visiones más ricas.
b) Talleres de reflexión. El equipo debe detenerse treinta minutos o una hora para
reflexionar sobre sus convenciones de trabajo, discutir inconvenientes y mejoras y
planear para el período siguiente.
c) Planeamiento Blitz. Una técnica puede ser el Juego de Planeamiento de XP. En
este juego, se ponen tarjetas indexadas en una mesa, con una historia de usuario o
función visible en cada una. El grupo finge que no hay dependencias entre tarjetas,
y las alinea en secuencias de desarrollo preferidas. Los programadores escriben en
cada tarjeta el tiempo estimado para desarrollar cada función. El patrocinador del
usuario escribe la secuencia de prioridades, teniendo en cuenta los tiempos
referidos y el valor de negocio de cada función. Las tarjetas se agrupan en períodos
de tres semanas llamados iteraciones que se agrupan en entregas, usualmente no
más largas de tres meses.
6
d) Estimación Delphi con estimaciones de pericia. En el proceso Delphi se reúnen
los expertos responsables y proceden como en un remate para proponer el tamaño
del sistema, su tiempo de ejecución, la fecha de las entregas según dependencias
técnicas y de negocios y para equilibrar las entregas en paquetes de igual tamaño.
e) Encuentros diarios de pie. La palabra clave es “brevedad”, cinco a diez minutos
como máximo. No se trata de discutir problemas, sino de identificarlos.
f) Miniatura de procesos. Una forma de presentar Crystal Clear puede consumir
entre 90 minutos y un día. La idea es que la gente pueda “degustar” la nueva
metodología.
g) Gráficos de quemado. Su nombre viene de los gráficos de quemado de calorías de
los regímenes dietéticos; se usan también en Scrum. Se trata de una técnica de
graficación para descubrir demoras y problemas tempranamente en el proceso,
evitando que se descubra demasiado tarde que todavía no se sabe cuánto falta. Para
ello se hace una estimación del tiempo faltante para programar lo que resta al ritmo
actual, lo cual sirve para tener dominio de proyectos en los cuales las prioridades
cambian bruscamente y con frecuencia. Esta técnica se asocia con algunos recursos
ingeniosos, como la Lista Témpana, llamada así porque se refiere al agregado de
ítems con alta prioridad en el tope de las listas de trabajos pendientes, esperando
que los demás elementos se hundan bajo la línea de flotación; los elementos que
están sobre la línea se entregarán en la iteración siguiente, los que están por debajo
en las restantes. En otras Metodologías Ágiles la Lista Témpana no es otra cosa que
un gráfico de retraso. Los gráficos de quemado ilustran la velocidad del proceso,
analizando la diferencia entre las líneas proyectadas y efectivas de cada entrega.
h) Programación lado a lado. Mucha gente siente que la programación en pares de
XP involucra una presión excesiva; la versión de Crystal Clear establece
7
proximidad, pero cada quien se enfoca a su trabajo asignado, prestando un ojo a lo
que hace su compañero, quien tiene su propia máquina. Esta es una ampliación de
la Comunicación Osmótica al contexto de la programación.
Hay ocho roles nominados en CC: Patrocinador, Usuario Experto, Diseñador Principal,
Diseñador Programador, Experto en Negocios, Coordinador, Verificador, Escritor. En
Crystal Naranja se agregan aún más roles: Diseñador de IU (Interfaz de Usuario),
Diseñador de Base de Datos, Experto en Uso, Facilitador Técnico, Analista/Diseñador de
Negocios, Arquitecto, Mentor de Diseño, Punto de Reutilización. A continuación se
describen los artefactos de los que son responsables los roles de CC:
Patrocinador. Produce la Declaración de Misión con Prioridades de Compromiso
(Tradeoff). Consigue los recursos y define la totalidad del proyecto.
Usuario Experto. Junto con el Experto en Negocios produce la Lista de
Actores-Objetivos y el Archivo de Casos de Uso y Requerimientos. Debe
familiarizarse con el uso del sistema, sugerir atajos de teclado, modos de
operación, información a visualizar simultáneamente, navegación.
Diseñador Principal. Produce la Descripción Arquitectónica. Se supone que debe
ser al menos un profesional de Nivel 3. En Metodologías Ágiles se definen tres
niveles de experiencia:
Nivel 1 es capaz de “seguir los procedimientos”.
Nivel 2 es capaz de “apartarse de los procedimientos específicos” y encontrar otros
distintos.
Nivel 3 es capaz de manejar con fluidez, mezclar e inventar procedimientos. El
Diseñador Principal tiene roles de coordinador, arquitecto, mentor y programador
más experto.
8
Diseñador-Programador. Produce, junto con el Diseñador Principal, los
Borradores de Pantallas, el Modelo Común de Dominio, las Notas y Diagramas de
Diseño, el Código Fuente, el Código de Migración, las Pruebas y el Sistema
Empaquetado. Un programa en CC es “diseño y programa”; sus programadores
son diseñadores-programadores. En CC un diseñador que no programe no tiene
cabida.
Experto en Negocios. Junto con el Usuario Experto produce la Lista de
Actores-Objetivos y el Archivo de Casos de Uso y Requerimientos. Debe conocer
las reglas y políticas del negocio.
Coordinador. Con la ayuda del equipo, produce el Mapa de Proyecto, el Plan de
Entrega, el Estado del Proyecto, la Lista de Riesgos, el Plan y Estado de Iteración
y la Agenda de Visualización.
Verificador. Produce el Reporte de Bugs. Puede ser un programador en tiempo
parcial, o un equipo de varias personas.
Escritor. Produce el Manual de Usuario. El Equipo como Grupo es responsable de
producir la Estructura y Convenciones del Equipo y los Resultados del Taller de
Reflexión.
1.6.El Código Genético
Consiste en:
- Un “modelo de juegos cooperativos”
Este modelo ve al desarrollo de software como una serie de partidos que consisten en
inventar y comunicar. Cada partido es diferente y tiene como objetivo entregar software y
prepararse para el siguiente juego. Esto permite al equipo trabajar concentrado y en forma
efectiva con un objetivo claro cada vez.
9
1.6.1. Prioridades
Crystal Clear establece un conjunto de prioridades y principios que sirven de guía para la
toma de decisiones
Eficiencia en el desarrollo: para hacer que los proyectos sean económicamente
rentables.
Seguridad en lo que se entrega.
Habitabilidad: hacer que todos los miembros del equipo adopten y sigan las
convenciones de trabajo establecidas por el equipo mismo.
1.6.2. Propiedades
Frecuencia en las entregas: entregar al usuario funcionalidad "usable" con una
frecuencia de entre 2 semanas y no más de un mes.
Comunicación: Crystal Clear toma como uno de sus pilares a la comunicación.
Promueve prácticas como el uso de pizarrones, pizarras y espacios destinados a que
todos (miembros del equipo y visitas) puedan ver claramente el progreso del
trabajo.
Crecimiento reflexivo: es necesario que el equipo lleve a cabo reuniones periódicas
de reflexión que permitan crecer y hacernos más eficientes.
Estas tres propiedades son "obligatorias" para Crystal Clear, las siguientes pueden
agregarse en la medida de las necesidades de cada grupo y proyecto.
Seguridad personal: lograr que cada miembro del team pueda sentirse cómodo con
el trabajo y el entorno.
Concentración: las entregas frecuentes permiten que cada desarrollador puede
enfocar de a un problema evitando dispersiones.
10
Fácil acceso a usuarios clave: tratar de hacer que el usuario sea una parte más del
equipo es fundamental para ir depurando errores de manera temprana.
Entorno técnico con: i - Testing automatizado (incorporación, por ejemplo, de
UnitTest) - ii. Integración frecuente (uso de herramientas específicas como Cruise
Control).
1.6.3. Principios
El grado de detalle necesario en documentar requerimientos, diseño, planeamiento,
etc, varía según el proyecto.
Es imposible eliminar toda documentación pero puede ser reducida logrando un
modo de comunicación más accesible, informal y preciso que pueda ser accedido
por todos los miembros del equipo.
El equipo ajusta constantemente su forma de trabajo para lograr que cada
personalidad encaje con los otros miembros, con el entorno y las particularidades
de cada asignación.
1.6.4. Estrategias
Ni las estrategias ni las técnicas son mandatorias para Crystal Clear. Pero es bueno tener en
cuenta alguna de ellas al momento de empezar a trabajar.
Tres de las estrategias que están más relacionadas son las de apuntar a tener "Victorias
Tempranas", arrancar el desarrollo de lo que se denomina un "Esqueleto que Camine" y
pensar siempre en hacer "Rearquitectura Incremental" van de la mano.
El poder arrancar el proceso a partir de un esqueleto sobre el cual se irá agregando
funcionalidad en cada una de las entregas ayuda a que se vean los avances desde el
comienzo (aunque sea una simple pantalla de ABM que se conecta con la base de datos y
muestra un solo dato). A medida que se avanza en el proceso, la rearquitectura permitirá ir
agregando más "cuerpo" al esqueleto inicial.
11
Todas describen una forma de tomar ventaja del desarrollo incremental para establecer
valor desde el principio.
Figura 2. Estrategia de Crystal Clear.
1.6.5. Técnicas
Igual que con las estrategias, hay una lista de técnicas propuestas por Crystal Clear, de las
cuales se pueden ir tomando las más convenientes según el momento en que se encuentra
el proceso de desarrollo del proyecto.
Las reuniones diarias (introducidas por la metodología Scrum) acompañan el seguimiento
y mantienen el foco en el próximo paso a seguir, y también permiten la discusión
productiva de líneas a seguir.
Las reuniones de reflexión periódicas son fundamentales para que los miembros del equipo
se expresen abiertamente, para revisar el trabajo hecho y evaluar qué cosas dan resultado y
cuáles no o de empezar a trabajar.
Todo esto permite ir armando una metodología de trabajo que se adecue al equipo, el
proyecto y los tiempos que se manejen.
12
CONCLUSIÓN
La guía de trabajo que presenta Crystal Clear es altamente recomendable para equipos
pequeños. Da flexibilidad y prioriza la parte humana, apuntando a lograr eficiencia,
habitabilidad y confianza en los miembros del equipo.
Presta especial importancia a la ubicación física del grupo, donde la comunicación cumple
el principal rol.
La entrega frecuente de código confiable y "funcionando" mantiene el foco y evita
distracciones.
Todo esto permite ir armando una metodología de trabajo que se adecue al equipo, el
proyecto y los tiempos que se manejen.
El riesgo en el método ágil son los Cambios de arquitectura son como ejercicios de
trapecio.
13
BIBLIOGRAFIA
Cockburn, A. (2004). Crystal Clear: A Human-Powered Methodology for Small Teams,
Boston: Addison-Wesley.
Cockburn, A. (2001). Agile Software Development. Reading, Mass.: Addison-Wesley.
Leffingwell, D. (2007). Scaling Software Agility: Best Practices for Large Enterprises,
Boston:Addison-Wesley.