domingo, 25 de septiembre de 2016

Metodología Crystal

Las metodologías Crystal son una familia de metodologías ágiles, donde cada una de ellas está adecuada para un tipo de proyecto. Su creador es el popular Cockburn uno de los firmantes del manifiesto ágil.


El nombre de metodologías Crystal viene de que cada proyecto software puede caracterizarse según dos dimensiones, tamaño y criticidad, al igual que los minerales se caracterizan por dos dimensiones, color y dureza. Y esta es una de las bases de las metodologías Crystal: hay una metodología para cada proyecto, o la escala de Cockburn.
Las metodologías Crystal están caracterizadas por estar centradas en las personas que componen el equipo (de ellas depende el éxito del proyecto) y la reducción al máximo del número de artefactos producidos. 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.

Crystal Clear

Crystal Clear es para equipos de hasta 8 personas o menos y da vital importancia a las personas que componen el equipo de un proyecto, y por tanto sus puntos de estudio son:
  • Aspecto humano del equipo.
  • Tamaño de un equipo (número de componentes).
  • Comunicación entre los componentes.
  • Distintas políticas a seguir.
  • Espacio físico de trabajo.
Crystal Clear establece un conjunto de prioridades y principios que sirven de guía para la toma de decisiones así como técnicas.

Prioridades

  • 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.
  • 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.
Principios 
  • El grado de detalle necesario en documentar requerimientos, diseño, planeamiento, etc. y 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.
Técnicas
  • 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.
La guía de trabajo que presenta Crystal Clear es altamente recomendable para equipos pequeños. Da flexibilidad y prioriza la parte humana (como todas las Metodologías Agiles), 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. El equipo es el que elige qué técnicas aplicar según lo que consideren apropiado en cada proyecto.

Ventajas y Desventajas Crystal Clear

Ventajas
  • Es apropiada para entornos ligeros
  • Al estar diseñada para el cambio experimenta reducción de costo.
  • Presenta una planificación más transparente para los clientes.
  • Se definen en cada iteración cuales son los objetivos de la siguiente.
  • Permite tener una muy útil realimentación de los usuarios.
Desventajas
  • Delimita el alcance del proyecto con el cliente.

Roles


  1.  Patrocinador. Produce la Declaración de Misión con Prioridades de Compromiso 
  2. Usuario Experto. Junto con el Experto en Negocios produce la Lista de Actores Objetivos y el Archivo de Casos de Uso y Requerimientos. 
  3. Diseñador Principal. Produce la Descripción Arquitectónica. Se supone que debe ser al me nos un profesional de Nivel 3
  4. Diseñador Programador. Produce, junto con el Diseñador Principal, los Borradores de Pantallas 
  5. Experto en Negocios. Junto con el Usuario Experto produce la Lista de Actores Objetivos. 
  6. Coordinador. Con la ayuda del equipo, produce el Mapa de Proyecto, el Plan de Entr ega, el Estado del Proyecto.
  7. Verificador. Produce los reportes. 
  8. Escritor. Produce el Manual de Usuario.

Video Metodología Crystal


Existe un libro sobre esta metodología:

domingo, 11 de septiembre de 2016

Metodologías para el Desarrollo de Software


Resultado de imagen para metodología png


¿Qué es metodología para el Desarrollo de Software?

  • Son procedimientos, técnicas y ayudas a la documentación para el desarrollo de productos software.


Desde un punto de vista general puede considerarse que el ciclo de vida de un software tiene tres etapas claramente diferenciadas, las cuales se detallan a continuación:
  • Planificación: idearemos un planeamiento detallado que guíe la gestión del proyecto, temporal y económicamente.
  • Implementación: acordaremos el conjunto de actividades que componen la realización del producto.
  • Puesta en producción: nuestro proyecto entra en la etapa de definición, allí donde se lo presentamos al cliente o usuario final, sabiendo que funciona correctamente y responde a los requerimientos solicitados en su momento. Esta etapa es muy importante no sólo por representar la aceptación o no del proyecto por parte del cliente o usuario final sino por las múltiples dificultades que suele presentar en la práctica, alargándose excesivamente y provocando costos no previstos.

Finalidad de una metodología


Lo que buscamos guiándonos con una metodología es prolijidad, corrección y control en cada etapa del desarrollo de un programa. Lo que nos permitirá una forma sistemática para poder obtener un producto correcto y libre de errores.

Clasificación de las metodologías


Existen dos metodologías que tienen analogía en la práctica con los paradigmas de programación. Metodología estructurada y metodología orientada a objetos. 
  • Metodología estructurada: la orientación de esta metodología se dirige hacia los procesos que intervienen en el sistema a desarrollar, es decir, cada función a realizar por el sistema se descompone en pequeños módulos individuales. Es más fácil resolver problemas pequeños, y luego unir cada una de las soluciones, que abordar un problema grande. 
  • Metodología orientada a objetos: a diferencia de la metodología mencionada anteriormente, ésta no comprende los procesos como funciones sino que arma módulos basados en componentes, es decir, cada componente es independiente del otro. Esto nos permite que el código sea reutilizable. Es más fácil de mantener porque los cambios están localizados en cada uno de estos componentes.

Metodologías ágiles y tradicionales

Resultado de imagen para metodología tradicional y ágil png
Resultado de imagen para metodología agil pngLas metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas* que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y más satisfactoria tanto para los clientes como para los equipos de entrega. 

Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:
• XP (Extreme Programming)
• Scrum
• Crystal Clear
• DSDM (Dynamic Systems Developmemt Method)
• FDD (Feature Driven Development)
• ASD (Adaptive Software Development)
• XBreed
• Extreme Modeling


Aquellas con mayor importancia en la planificación y control del proyecto, en donde se especifican todos los requisitos y modelado, reciben el apelativo de Metodologías Tradicionales o Pesadas

Entre las metodologías tradicionales o pesadas podemos citar:
• RUP (Rational Unified Procces)
• MSF (Microsoft Solution Framework)
• Win-Win Spiral Model
• Iconix




En el video se pueden mostrar algunos ejempolos de metodología ya explicados más a fondo.

Referencias