domingo, 16 de enero de 2011

Adaptación de la Metodología de desarrollo Scrum

------------------------------------------------
METODOLOGÍA DE DESARROLLO SCRUM
------------------------------------------------
Scrum es una metodología de desarrollo ágil de proyectos, se basa en la adaptación contínua de las circunstancias de la evolución de un proyecto. Es orientada a las personas, a las iteraciones y revisiones. Por lo general se emplea en ambientes que poseen requisitos inestables y muy cambiantes, y que requieren rapidez y flexibilidad. Es un proceso bastante sencillo que puede contribuir al desarrollo de software de calidad. [4].


El proceso de Scrum inicia con una visión general del producto, especi cando las funcionalidades principales que conforman una Pila de Producto, partiendo de allí se genera una Pila de Sprint que representa un subconjunto de funcionalidades de la Pila de Producto, que fueron escogidas por tener mayor prioridad en el proyecto. El Sprint es una iteración que puede tener un lapso de 15 a 30 días en el cual se debe desarrollar la  Pila de Sprint, mientras transcurre los días de cada Sprint se realizan reuniones diarias que permiten realizar una revisión de lo que se realizó el día anterior, de lo que se debe realizar ese día, y cuáles podrían ser los inconvenientes para cumplir los objetivos planteados. Al culminar el Sprint se debe obtener el resultado el cual se denomina Incremento, y puede ser mejorado en siguientes iteraciones, de esta forma incremental se va construyendo el producto final, tal como lo muestra la siguiente figura.



La Metodología especifica un conjunto de roles, los cuales representan a los actores principales en el proceso de desarrollo del software, estos roles están definidos de la siguiente manera:
  • Product Owner: es el dueño del producto y el que hace el papel de intermediario entre el cliente y el equipo.
  • Scrum Manager: es el que gestiona el proyecto y es encargado que el proceso Scrum se cumpla.
  • Scrum Team: es el equipo de desarrollo del proyecto.
  • Stakeholders: representa a los clientes o usuarios del producto final. 
También se presentan documentos importantes dentro de la metodología como lo son:
  • Product Backlog: posee la descripción genérica de todos los requerimientos que debe tener el producto a desarrollar.
  • Sprint Backlog: tiene los requisitos que deben ser desarrollados durante un Sprint.
  • Burn Down: es una grá ca que presenta el progreso diario que posee el equipo de desarrollo, con la finalidad de conocer el nivel de productividad.

------------------------------
ADAPTACIÓN DE SCRUM
------------------------------
Luego de analizar el desarrollo en proyectos, pude detectar ciertas necesidades que pueden cubrirse incorporando lo siguiente a la metodología.


  • Incorporar un grupo multidisciplinario que permita definir de forma mas acertiva los requerimientos que deben ser implementados.
  • Al momento de definir la Pila de Sprint debe realizarse un análisis de riesgos para mejorar la toma de decisiones con la finalidad de que cada funcionalidad este acorde con el core del negocio de la institución.
  • Para los casos en que se vaya a desarrollar un modulo muy complejo usar la programación en pareja,con la finalidad de tener un respaldo al momento de tener que realizar mejoras o mantenimiento a este modulo. De esta forma ir eliminando el concepto de dependencia de un grupo de desarrolladores.
  • Realizar la documentación básica del proyecto, incluyendo algunos diagramas UML que muestren la operatividad del sistema y los cambios que se van realizando en el transcurso del desarrollo y luego de la implementación.
  • Es necesario utilizar en cada Sprint una herramienta que permita el control de las actividades diarias que se están llevando a cabo, de esta forma apreciar la productividad del equipo de desarrollo y mejorar los aspectos que sean necesarios con la finalidad de cumplir el objetivo planteado. Ejemplo de estas herramientas pueden ser: Jtrac, Trac, Request Tracker, etc
  • También debe establecerse una herramienta que permita manejar el control de versiones tanto del código como de la documentación que se ha generado diariamente en cada sprint. De esta forma se reducen los riesgos de perder información importante dentro del desarrollo de un sistema. Ejemplo de estas herramientas pueden ser: Subversion y Git-svn.
  • Finalmente, se debe incluir un repositorio que contenga los módulos desarrollados, el cual permita gestionar la reutilización de código, y mejorar los tiempos de respuestas al desarrollar una  funcionalidad. Este repositorio debe proveer ayuda a cada miembro de la coordinación sin importar en el proyecto que se encuentre, la idea es fomentar la efectividad de cada individuo.
    De esta forma la metodología final quedaría así:




Referencias


[1] Object Mentor (2004). Best Practices in Scrum Project Management and XP Agile Software Development.
Enlace: http://www.objectmentor.com/resources/articles/Primavera.pdf
[2] Kane, D. y Ornburn, S., Agile Development: Weed or Wild ower? Enlace:
http://www.stsc.hill.af.mil/crosstalk/2002/10/kane.html
[3] Palacio Juan. (2008) ScrumManager: Gestión de Proyectos.
[4] Schwaber Ken. Agile Project Management with Scrum. Washintong. Microsoft Press 2004.
[5] Kniberg Henrik. Scrum y XP desde las trincheras. C4Media Inc 200

No hay comentarios:

Publicar un comentario