Mostrando entradas con la etiqueta agile. Mostrar todas las entradas
Mostrando entradas con la etiqueta agile. Mostrar todas las entradas

User stories, un punto de partida para los requisitos

Historias de usuario, user stories, requisitos, necesidadesLas historias de usuarios (User Stories) constituyen una de las técnicas de documentación de requisitos más ampliamente utilizada dentro del entorno Agile. Una descripción del requisito en una o dos frases escritas por el usuario.


En el contexto de las prácticas de CMMI se aplican, esencialmente,  para identificar las necesidades del cliente en la Definición de los requisitos (RD), ayudan fácilmente a la gestión de cambios en la Gestión de los requisitos (REQM) y ayudan a la estimación y planificación de tareas y compromisos para la Planificación del proyecto (PP).

Comparación de estimadores

En el último número de la revista Cross Talk se presenta, entre otros, un interesante artículo con comparativas sobre diferentes enfoques para la estimación de tamaño. Considera la estimación de puntos de función, casos de uso y de historias a través de la observación en un caso de estudio.

Cross Talk es una revista bimensual de la Defensa de EE.UU., dedicada a temas relacionados con la Ingeniería de software. Lo interesante de sus aportaciones es que sus contenidos son completamente prácticos y de gran utilidad. Cada número dedicado a un tema particular, en esta ocasión es sobre la aplicación del enfoque Agile en grandes proyectos. 

Siete hábitos Ágil

"La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial" Manifiesto Ágil
El manifiesto Ágil establece valores sobre los que se sustentan principios, metodologías, técnicas y las formas de desarrollo del software bajo este enfoque. Básicamente destaca la interacción entre los individuos,  la funcionalidad del software, la colaboración constante con el cliente y la adaptación a las condiciones cuando surgen los cambios.

El modelo CMMI integra elementos y material informativo que permite entender y aplicar sus prácticas al contexto Ágil. Pero es importante no perder de vista los elementos esenciales que constituyen la base de este enfoque.

SCRUM, ¿es fácil?

Es curioso que la existencia de un proceso se asocia con disciplina y esto conlleva a pensar en burocracia o cuellos de botella. La agilidad no está desligada de la disciplina, se requiere mucha disciplina y comunicación para lograr un resultado efectivo. Tal vez para los que definen e implementan los procesos hay mucho por aprender para hacer procesos sencillos y fáciles de utilizar, pero al pensar que las técnicas Agile se pueden aplicar fácilmente por el simple hecho de su agilidad caemos en el mismo error.
Bajo el título Scrum es lo fácil... ¿o no? Juan Palacio pública en su blog Navegapolis.net una breve pero interesante reflexión sobre el tema. 

Agile for Dummies

Speedyleedy
Agile for Dummies es una edición de CA Technologies en ebook escrita por Mario E. Moreira, Michael Lester y Steve Holzner que puede obtener de manera gratuita. 
En 75 páginas de forma condensada puede tener una visión, en siete capítulos, de lo que es Agile, entender lo que es SCRUM y las implicaciones en la gestión, los roles que intervienen y el manejo de las iteraciones, cuándo se puede o debe aplicar un enfoque Agile y los beneficios que se pueden obtener. 


Para obtener la copia del documento se puede registrar en http://www.ca.com/us/content/page/get-agile-development.aspx

Video demostrativo de JIRA



Una demostración muy completa de la aplicación JIRA en video, presentado en YouTube por la empresa Atlassian. Puede parecer extenso pero refleja completamente la funcionalidad de la herramienta. Inicia con la presentación de la estructura general y luego presenta en la primera parte las bases y seguimiento de defectos con JIRA y en la segunda parte el manejo de la herramienta en un ambiente de desarrollo integrado con otras aplicaciones.

Webinar del SEI sobre Agile

Jochen Gros
El SEI presentó el webinar "Making Agile work for you" presentada por Timothy A. Chick. Una interesante revisión de los fundamentos de Agile y cómo puede ser aplicado en la organización, en conjunción con el enfoque de TSP.
La liga para descargar la presentación se puede encontrar en http://www.sei.cmu.edu/go/making-agile-work-for-you/ 

SCRUM Master en menos de 10 minutos


Un interesante y divertido video de Hamid Shojaee en el que, en menos de 10 minutos, repasa las bases de SCRUM así como las técnicas y herramientas que se emplean como parte de las prácticas Agile para gestión del proyecto. 

Agile, cuestión de principios más que técnica

"Agile Adoption Equals Mental Shift", un artículo de Peter DeYoe en su blog, plantea la necesidad de cambio de modelos mentales para la ejecución de los proyectos y el entendimiento del valor real para el negocio cuando se intenta adoptar los principios Agile para el desarrollo de software. Más que enfocarse en las técnicas o métodos, lo importante es entender y aplicar los principios que guían el desarrollo de software bajo este paradigma.
La adopción de las prácticas y el cambio de cultura requiere que el negocio sea capaz de entender la dinámica de este tipo de proyectos y adaptarse a ella. No basta con crear equipos motivados, integrados y autodirigidos, bajo el enfoque de SCRUM si la organización sigue esperando un presupuesto global del proyecto que integre todas las necesidades iniciales, agreguen o no valor al producto. 

SCRUM y CMMI

Kadellar
Buscando información en la red sobre la implementación de métodos Agile en combinación con CMMI, encontré un artículo muy interesante de Neil Potter que habla precisamente sobre el tema. "Implementing SCRUM (Agile) and CMMI together"
Potter presenta de manera sencilla las características de cada enfoque pero adicionalmente ejemplifica, para las áreas de proceso de REQM, PP y PMC, como muchas de las prácticas específicas se pueden cumplir con elementos y técnicas de SCRUM. En otros casos presenta sugerencias, características o incluso sugiere otros artículos de como SCRUM puede considerar un enfoque que ayuda a cumplir con prácticas de CMMI. Finalmente existen áreas de proceso como: OPD, OPF y OT que, aunque no son cubiertas por SCRUM, se pueden implementar en combinación adecuadamente sin generar conflictos.

Agile y PMO, dos historias y un mismo final

Lehmann, Thomas
El uso de los enfoques Agile y PMO (Project Management Office) consideran diferentes perspectivas para la gestión y conducción de un proyecto. Hablan diferentes lenguajes pero al final deben llegar al mismo resultado. En ambos casos deben garantizar el cumplimiento de los objetivos del proyecto, desde enfoques diferentes. ¿Cómo manejar e integrar ambas perspectivas?

Agile en CMMI v1.3

Abrahamsson, P., Salo, O.,
Ronkainen, J., & Warsta, J.
Aunque el modelo CMMI es independiente del enfoque que se utiliza para aplicar las prácticas definidas, en la versión 1.3 se agregan anotaciones específicas para los que utilizan los métodos y técnicas Agile como forma de aplicación e interpretación de las prácticas descritas en el modelo.

En particular las áreas de proceso que tienen notas y referencias específicas a Agile son CM, PI, PMC, PP, PPQA, RD, REQM, RSKM, TS y VER. Estas anotaciones deben considerarse como ejemplos para ayudar a entender el contexto en que se aplican las prácticas, pero no la forma en que deben implementarse. Al final, cada organización decide el mejor enfoque para la aplicación de las prácticas en el modelo.

Estimación de poker

GoAnimate.com: Técnica de estimación del poker by cjperez7

Like it? Create your own at GoAnimate.com. It's free and fun!

La técnica de estimación de poker se basa en los juicios de expertos utilizada en las reuniones donde el equipo determina el esfuerzo requerido en sus tareas. Es una técnica ágil y sencilla, que permite reducir el tiempo de discusión de una manera amena y divertida. La técnica fue introducida por James Grenning como un juego para facilitar la planificación con Extreme Programming.

Es ampliamente utilizada en equipos de desarrollo, con métodos Ágiles, para determinar la planificación general de la versión y las funcionalidades a considerar en cada iteración. Facilita la colaboración y consenso entre los miembros del equipo, además que permite identificar información faltante desde un inicio.

JIRA: Una herramienta para gestión de issues

JIRA, desarrollado por Atlassian, es una herramienta de software para la gestión de issues y seguimiento de proyectos. La interfaz sencilla y el manejo de los indicadores a través de sus múltiples vistas en un tablero de control, le proporciona herramientas a líderes, gerentes y personal del proyecto para mantenerse al día de lo que sucede en el proyecto.

Para CMMI es un excelente apoyo para cubrir diversas prácticas en diferentes áreas de proceso. En un artículo anterior, de modelado con BPMN, revisaba el flujo general de un proceso similar y las diferentes prácticas que cubría al utilizarlo adecuadamente. Con el apoyo de una herramienta, como JIRA, se simplifica el control y seguimiento de estas actividades.

Método acelerado de mejora (AIM)

El SEI anunció, en su boletín del mes de marzo, la publicación del Método Acelerado de Mejora (AIM – Accelerated Improvement Method) mediante dos reportes técnicos publicados en su Web. El método permite implementar las prácticas de CMMI de manera rápida, confiable y con alto rendimiento basado principalmente en la aplicación de Team Software Process (TSP). 


AIM combina diversos métodos y técnicas para incrementar la productividad, reducir los defectos y cubrir los elementos requeridos por el modelo a nivel 3 de madurez. Las prácticas de CMMI se mezclan con elementos de TSP, Six Sigma y Goal Driven Measurement (GDM) para cumplir los objetivos de un SCAMPI. Logra transformar las prácticas a nivel de proyectos y escalarlas a la Organización al tiempo que introduce prácticas Agile


La guía constituye un punto de partida para la aplicación de CMMI y las tecnologías asociadas que permitan a las organizaciones alcanzar los objetivos como empresa mediante la aplicación de técnicas de gestión de procesos de clase mundial. Por su parte, en el caso de una evaluación SCAMPI se simplifica el tiempo de preparación y ejecución al considerar elementos y artefactos comunes al proceso, resultantes de la aplicación de estas tecnologías.


Los reportes técnicos son: 
  • Implementation Guidance for the Accelerated Improvement Method (CMU/SEI-2010-SR-032) que ofrece guía y apoyo en la implementación del método AIM para ejecutivos, gerentes e interesados. 
  • SCAMPI Appraisal Guide: Accelerated Improvement Method (CMU/SEI-2010-SR-021) que proporciona sugerencias a nivel de prácticas que se esperan en la implementación de AIM desde el punto de vista de la evaluación. Sobre todo se enfoca en explicar el uso de TSP como parte del proceso de desarrollo.
AIM se ha creado a partir de lecciones aprendidas en la industria por la aplicación de diferentes métodos y tecnologías relacionadas con CMMI y TSP. Un elemento clave en el método es trabajar la mejora de procesos como proyecto y considerar la formación y administración de los equipos de procesos como equipos de proyecto con mecanismos de dirección y puesta en marcha con el mismo trato de los equipos de desarrollo. 


El SEI está programando cursos de formación y difusión de AIM como parte del SEPG 2011 en Portland, Oregon en el mes de marzo.
Safe Creative #1102028403944

Comparación de CMMI y Agile

La siguiente tabla fue tomada de la nota técnica publicada por el SEI “CMMI or Agile: Why Not Embrace Both!” CMU/SEI-2008-TN-2003 y permite entender de manera resumida los dos enfoques, tanto de CMMI como de Agile, desde diferentes puntos de vista. Foco de atención organizacional

  • CMMI - Enfocado a la Organización. Los mayores beneficios se obtienen cuando se implementa a nivel organizacional de manera que todos los elementos que contribuyen al desarrollo de los productos y servicios están considerados en el proceso de mejora.
  • Agile - Enfocado en el proyecto y equipo de trabajo. Los métodos Agile pueden aislar al proyecto/equipo de la Organización y aún ser efectivos.
Gestión
  • CMMI - Juega un papel fundamental en el logro del éxito del proyecto. Mayor atención a la gestión del proyecto, asegurar que los planes que afectan al proyecto están integrados, las dependencias están gestionadas y los problemas de coordinación son solucionados, con una visión compartida sobre el trabajo y los riesgos controlados.
  • Agile - Es una función de apoyo que ayuda a eliminar barreras en el avance, en oposición a la tradicional función de mandato y control. Esta forma de gestión se puede extender en la medida que se amplia el alcance de aplicación del enfoque Agile.
Confianza
  • CMMI - Algunas prácticas asumen la necesidad de compensar un ambiente de baja confianza caracterizado por objetivos de seguridad y misión crítica, alto riesgo de falla o gran cantidad de involucrados que no pueden expresar libremente sus intensiones y compromisos.
  • Agile - Fomenta un ambiente de alta confianza. Reconoce que los equipos de trabajo se desempeñan mejor cuando están compuestos de tareas e individuos maduros operando en grupos con gran confianza.
Planificación
  • CMMI - Promueve la planificación con base al establecimiento de un proceso definido que permita alcanzar los objetivos del proyecto. Considera un horizonte a largo plazo. No se requieren planes detallados, aunque muchas implementaciones de CMMI trabajan en detallar la siguiente fase del proyecto. Hace énfasis en la re-planificación y cambios necesarios.
  • Agile - Existen múltiples niveles de planificación, incluye planes a alto nivel del producto y al inicio de cada iteración, hasta más detallados respecto a las funcionalidades en cada iteración. Fuerte énfasis en la flexibilidad y re-planificación como condición de cambio. No supone el uso de diagramas de tareas debido a que los requerimientos para las tareas cambian constantemente.
Supuestos del mercado/usuarios
  • CMMI - Ampliamente beneficioso cuando el mercado objetivo es maduro y la innovación en los procesos se convierte en un diferenciador para el éxito de la Organización.
  • Agile - Mayor beneficio en mercados emergentes y poco definidos.
Consideraciones del diseño
  • CMMI - Asume que la arquitectura del producto es seleccionada o creada en las etapas iniciales de un proyecto y es actualizada cuando no es válida o utiliza un ciclo iterativo.
  • Agile - Proyectos exitosos cuando los estándares de arquitectura se aplican con flexibilidad en la medida que el proyecto avanza. En algunos casos minimizan la importancia de la arquitectura sobre los principios generales que es especificada de manera prematura.
Aprendizaje
  • CMMI - Formación con base en el análisis de procesos y habilidades necesarias, así como el diseño de los mecanismos para formación. Durante la ejecución de las actividades del proyecto. Mediante la planificación y uso del proceso en los proyectos, las mediciones y lecciones aprendidas que son compartidas en la Organización. Como parte del análisis de causa de los procesos y del cumplimiento de los objetivos de calidad y desempeño del proceso.
  • Agile - Ocurre a nivel de proyecto durante las iteraciones, con un enfoque a nivel operativo y justo en el momento.
Perspectiva
  • CMMI - Considera una visión a largo plazo.
  • Agile - Considera una visión de corto a mediano plazo.
Evaluación
  • CMMI - SCAMPI compara los procesos en la organización contra las prácticas en el modelo para evaluar si la Organización cuenta con los procesos para cumplir las metas de CMMI.
  • Agile - El deseo de los que utilizan métodos Agile es que se revisen únicamente sobre los resultados (satisfacción del cliente o resultados del proyecto)
Desarrollo humano
  • CMMI - Enfoque limitado en la gente a nivel de proyecto. A nivel de la Organización no promueve heroísmos pero busca la creación de un ambiente que promueve la excelencia de la gente sin actos heroicos.
  • Agile - Enfoque en los equipos de trabajo y en las personas. Existe la tendencia a contratar buenos recursos hacía la formación de “héroes” en una cultura que balancea la vida personal con el trabajo.
Énfasis en el ciclo de vida
  • CMMI - Fuerte énfasis en la revisión en la medida que se avanza. Es consistente con ambientes donde existe un alto costo por falla y el objetivo es evitar proactivamente esos costos. Promueve la documentación, análisis y revisión antes de que el producto sea integrado, así como frecuentes validación para asegurar que se construye el producto correcto. Cada proyecto determina los tiempos para las actividades de revisión y pruebas.
  • Agile - Utiliza de manera concurrente el desarrollo, pruebas de iteración, revisiones entre pares según sea necesario. La tendencia es validar frecuentemente, sobre el uso, y verificar después. El desarrollo incremental asume un bajo costo de retraso y de falla. Tomar precauciones con los ciclos de tiempo controlados.
Predecible
  • CMMI - A nivel de proyecto en los subprocesos críticos mediante la gestión estadística y el monitoreo de su desempeño con los modelos de predicción para determinar si el proyecto alcanzará sus objetivos. A nivel de la Organización el conocimiento de la capacidad de los procesos con base en el desempeño de los proyectos y cuáles son candidatos de innovación.
  • Agile - Utilizando las iteraciones limitadas en tiempo, la evolución de las soluciones, identificar de defectos de manera temprana y corrección rápida se logra una velocidad de desarrollo predecible. Existen expectativas sobre el alcance y las entregas de las iteraciones para que sean predecibles.
Costo de falla
  • CMMI - Desarrollado para ambientes con alto costo por falla.
  • Agile - Prosperó en ambientes de bajo costo por falla o con incremento lineal.

Agile y CMMI, ¿enemigos o aliados?

Las metodologías de desarrollo Agile y las mejores prácticas de los modelos CMMI son frecuentemente percibidas como opuestos. 

El origen de esta situación se presenta en principio por los resultados que se han presentado de casos exitosos, en el caso de Agile asociado a proyectos pequeños, con equipos de trabajo integrados, alta volatilidad de los requerimientos, dentro de un único ambiente de desarrollo; mientras que los proyectos de CMMI se han asociado con proyectos grandes, críticos, con alta exposición a riesgos y una gran estructura de gestión. Por otra parte la imprecisión de la información que manejan los defensores y detractores de una u otra, ya sea por mal uso, carencia de información, dificultades con la terminología o enfoques para su aplicación. En la realidad ambos enfoques se pueden usar en conjunto y pueden ser de beneficio para las organizaciones. 

El Software Engineering Institute (SEI) está interesado en el desarrollo de métodos Agile y en ampliar la aplicación y experiencias de uso de Agile y CMMI en conjunto. La base de las metodologías Agile parte del Método de Diseño y Desarrollo Incremental e Iterativo (IIDD por sus siglas en inglés) utilizado desde mediados del siglo XX. A principios del año 2001 se establece el Manifiesto para el Desarrollo de Software Agile (Manifesto for Agile Software Development) con la filosofía y principios que guían el conjunto de metodologías existentes. Posteriormente en el 2005 se crea la Declaración de Interdependencia para la Gestión de Proyecto (PM Declaration of Interdependence) con los seis principios de gestión asociados con la gestión de proyectos. 

CMMI tiene sus bases en el modelo CMM que es parte de los proyectos que desarrolla el SEI a petición del Departamento de Defensa (DoD) para trabajar en atender los problemas en la entrega y calidad del software a finales de los noventa. Después de 10 años se inicia el proyecto de creación de CMMI como un modelo que integrara todos los modelos existentes. 

Las ideas y prácticas de los modelos iniciales han sido reformadas e incorporadas en la estructura actual del modelo. Agile ofrece un enfoque particular para las actividades de desarrollo que contrasta con otros enfoques para el desarrollo. Muchas veces el Manifiesto es usado como justificación para no tener procesos, para no documentar el trabajo y para no tener planes lo cual es una interpretación incompleta y equivocada. 

Por su parte CMMI es un modelo, no un estándar, es un ideal del cual se puede aprender y utilizar de acuerdo con la situación existente o necesidad. Las metas son el único componente requerido del modelo, las prácticas son sugeridas, y el uso del modelo considerando todo lo que aparece en él como obligatorio es un error. Ambos enfoques son útiles, pueden co-existir, siempre y cuando se utilicen adecuadamente. 

CMMI se enfoca, a un alto nivel, en qué es lo que hace un proyecto no en qué metodología utiliza, mientras que los métodos Agile se enfocan en cómo el proyecto desarrolla los productos. De esta forma los métodos Agile proporcionan el conocimiento en el desarrollo del software, especialmente para proyectos pequeños, que CMMI no considera en sus mejores prácticas. Mientras que CMMI proporciona las prácticas de ingeniería de sistemas que facilitan el uso de los métodos Agile en proyectos grandes, así como las prácticas de gestión de procesos y soporte que ayudan a establecer y mantener la mejora continua con el enfoque Agile en una organización. 

Utilizar los principios de Agile en el diseño y selección de las prácticas de CMMI permite que las actividades de definición de procesos sean más apropiadas y con mejor aceptación. 

Referencia: CMMI or Agile: Why not Embrace Both. CMM/SEI-2008-TN-003


CMMI v2, cinco puntos para entender la nueva versión del modelo

El mes de marzo del 2018 fue el lanzamiento de la versión 2.0 del modelo CMMI (Capability Maturity Model for Integration) por el CMMI Ins...