Wiki Tendencia en el desarrollo de software

 

Metodología de desarrollo Crystal



La Metodología de Desarrollo Crystal es una metodología ágil de gestión de proyectos de software que se enfoca en equipos pequeños y distribuidos geográficamente. Fue desarrollada por Alistair Cockburn en los años 90 y se basa en la idea de que cada proyecto tiene su propio conjunto de características únicas que deben ser consideradas al elegir una metodología de desarrollo.


Crystal se centra en la colaboración entre el equipo de desarrollo y los clientes, promoviendo una comunicación cercana y frecuente. Además, la metodología hace hincapié en la entrega temprana y frecuente de versiones del software, de manera que se puedan obtener comentarios y retroalimentación lo antes posible.


Crystal también reconoce que diferentes proyectos tienen diferentes niveles de complejidad y riesgo, y ofrece una variedad de "colores" o variantes de la metodología, que se adaptan a las necesidades específicas de cada proyecto.


Propiedades

  1. Frecuencia en las entregas: entregar al usuario funcionalidad “usable” con una frecuencia de entre 2 semanas y no más de un mes.

  2. 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.

  3. 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.

  4. Seguridad personal: lograr que cada miembro del team pueda sentirse cómodo con el trabajo y el entorno.

  5. Concentración: las entregas frecuentes permiten que cada desarrollador puede enfocar de a un problema evitando dispersiones.

  6. 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.

  7. Entorno técnico con testing automatizado (incorporación, por ejemplo, de UnitTest); e integración frecuente (uso de herramientas específicas como Cruise Control).


Fases de la metodología Crystal

  • Puesta en escena. Consiste en la planificación del siguiente incremento, el equipo selecciona los requerimientos que serán implementados en el incremento y planifican lo que harán.
  • Revisiones. Cada incremento tiene varias iteraciones y cada iteración incluye las actividades de construcción, demostración y resumen de objetivos del incremento.
  • Monitoreo. Los progresos son monitoreados a partir de las diferentes entregas. El proceso se mide con los hitos clave y la estabilidad de las fases.
  • Paralelismo y flujo. Cuando el monitoreo nos brinda un estado suficientemente estable es hora de pasar a la próxima etapa.
  • Estrategia de diversidad holística. Se utiliza para dividir grandes equipos funcionales en equipos multifuncionales.
  • Técnica de puesta a punto de la metodología. Se basa en entrevistas y talleres para elaborar una metodología específica para el proyecto. Sirve para modificar o fijar el proceso de desarrollo.
  • Puntos de vista de usuario. Dependiendo del color de la metodología Crystal que se elija se recomienda la opinión de dos usuarios por cada versión del producto (CC); también tres revisiones por parte del cliente en cada iteración (CO).

Las características principales de la metodología de desarrollo Crystal


  1. Enfoque en las personas: Crystal se enfoca en las personas y en su habilidad para colaborar y comunicarse eficazmente. La metodología reconoce que el éxito del proyecto depende en gran medida del equipo de desarrollo y su relación con los clientes.  
  1. Entrega temprana y frecuente: Crystal promueve la entrega temprana y frecuente de versiones del software, de manera que se puedan obtener comentarios y retroalimentación lo antes posible. Esto permite que el equipo de desarrollo responda rápidamente a los cambios y adaptar el proyecto a las necesidades del cliente.
  2. Adaptabilidad: Crystal ofrece diferentes variantes de la metodología, o "colores", que se adaptan a las necesidades específicas de cada proyecto. La metodología reconoce que cada proyecto es único y puede requerir diferentes enfoques.

  3. Simplicidad: Crystal se enfoca en la simplicidad y en la eliminación de elementos innecesarios en el proceso de desarrollo. Esto ayuda a reducir el riesgo y a mantener el enfoque en los aspectos más importantes del proyecto.

  4. Comunicación frecuente y cercana: Crystal promueve una comunicación cercana y frecuente entre el equipo de desarrollo y los clientes, de manera que se puedan resolver rápidamente cualquier problema o duda que surja en el proceso de desarrollo.

  5. Enfoque en la calidad: Crystal se enfoca en la calidad del software y en la satisfacción del cliente. La metodología promueve el uso de pruebas de calidad y la revisión constante del software para garantizar que cumpla con los estándares y requisitos del cliente.

En general, la metodología de desarrollo Crystal se enfoca en la simplicidad, la adaptabilidad y la colaboración entre las personas, lo que la hace adecuada para proyectos pequeños y medianos con equipos distribuidos geográficamente.

La metodología de desarrollo Crystal se enfoca en la simplicidad y en la adaptabilidad, por lo que no prescribe herramientas específicas que se deban utilizar. Sin embargo, existen varias herramientas que pueden ayudar a los equipos de desarrollo que utilizan la metodología Crystal a trabajar de manera más eficiente y colaborativa. A continuación, se presentan algunas herramientas que pueden ser útiles:


  • Herramientas de colaboración en línea; Existen diversas herramientas en línea que pueden ayudar a los equipos de desarrollo a colaborar y comunicarse de manera eficaz, incluso si están geográficamente distribuidos. Ejemplos de estas herramientas incluyen Trello, Asana, Slack y Microsoft Teams.






  • Sistemas de control de versiones:
    Los sistemas de control de versiones como Git, SVN o Mercurial son herramientas esenciales para cualquier equipo de desarrollo. Permiten a los desarrolladores trabajar en diferentes ramas del proyecto de manera simultánea y fusionar los cambios de manera ordenada.





  • Herramientas de gestión de proyectos: Las herramientas de gestión de proyectos pueden ayudar a los equipos de desarrollo a mantener un seguimiento de las tareas, plazos y presupuestos del proyecto. Algunas herramientas populares incluyen Jira, Microsoft Project, Trello y Asana.



  • Herramientas de pruebas y de calidad:
    Las herramientas de pruebas y de calidad son esenciales para garantizar que el software cumpla con los estándares de calidad y los requisitos del cliente. Ejemplos de estas herramientas incluyen Selenium, JMeter y SonarQube.








  • Herramientas de automatización de pruebas: Las herramientas de automatización de pruebas como Selenium, Cucumber, o Robot Framework pueden ser útiles para realizar pruebas de manera automatizada y repetible, lo que puede ahorrar tiempo y esfuerzo.






Es importante recordar que las herramientas son una ayuda para el equipo, pero la metodología de desarrollo Crystal se enfoca en las personas y la colaboración, por lo que la elección de las herramientas debe estar al servicio de estos principios.


En el siguiente video podremos observar una explicación detallada del funcionamiento de la metodología crystal 



Referencias bibliográficas


Metodología de desarrollo Crystal. (s/f). Tecnologias-informacion.com. Recuperado el 13 de abril de 2023, de https://www.tecnologias-informacion.com/metodologia-crystal.html

Juancarruthers, P. by. (2018, abril 9). Metodología Agil: Crystal. Ingenieria de Software I. https://isi2018.wordpress.com/2018/04/09/metodologia-agil-crystal/

Wikipedia contributors. (s/f). Metodología de desarrollo de software. Wikipedia, The Free Encyclopedia. https://es.wikipedia.org/w/index.php?title=Metodolog%C3%ADa_de_desarrollo_de_software&oldid=150454814

Las metodologías Crystal. Otras metodologías ágiles que, quizás, te puedan encajar más que Scrum. (2012, septiembre 25). Javier Garzas; Javier Garzás. http://www.javiergarzas.com/2012/09/metodologias-crystal.html




Comentarios

Entradas populares de este blog

Resumen Estrategia de prueba del software

Mapa de Telaraña Fundamentos de Pruebas