Metodo agil scrum

33,394 views
33,072 views

Published on

Metodo agil scrum

  1. 1. UNIVERSIDAD DE MENDOZA Facultad de Ingeniería Ingeniería en Informática “MÉTODO ÁGIL SCRUM APLICADO AL DESARROLLO DE UN SOFTWARE DE TRAZABILIDAD” María Laura Citón 2006 Asesora: Ing. Graciela Sevilla Coasesor: Ing. Fabián Contigliani
  2. 2. AGRADECIMIENTOS En primer lugar, deseo agradecer al Dr. Ing. Salvador Navarria, Decano de la Facultad de Ingeniería de la Universidad de Mendoza, y por su intermedio al cuerpo docente y no docente de dicha prestigiosa institución, que me acompañaron durante toda la carrera. Deseo brindar un especial agradecimiento a la Ing. Graciela Sevilla y al Ing. Fabián Contigliani, por su ayuda y dedicación durante la realización del presente Trabajo Final. Al Cdor. Mario Gobbi por la información brindada, asesoramiento y buena predisposición a las consultas realizadas. A mi familia, a mi novio David y a mis amigos, por sus opiniones y consejos, que fueron una guía y optimismo estos últimos años. Y principalmente quiero dedicar este trabajo a mis padres, Dora y Luis, y a mi hermano Alejandro; gracias a ellos y al gran amor que me brindan, yo pude realizar y finalizar mi carrera.
  3. 3. RESUMEN El presente Trabajo Final consiste en aplicar el método ágil Scrum al desarrollo de un Software de Trazabilidad. La idea del mismo surge a raíz de la percepción de lo complejo de gestionar eficientemente un proyecto, con los métodos tradicionales de desarrollo de software, en un ambiente tan cambiante y turbulento como el de la actualidad. Como alternativa a las metodologías tradicionales nacen las ágiles, y dentro de éstas escogimos a Scrum como método ágil para gestionar nuestro proyecto. Scrum se basa en la adaptabilidad a los cambios como medio para aumentar las posibilidades de éxito de los proyectos. Su mayor objetivo es simplificar y minimizar el proceso de desarrollo y apuntar a lo que realmente importa, la verdadera necesidad del cliente realizando entregas frecuentes y continuas de software funcional. Tal es su enfoque hacia la gestión, que deja un vacío metodológico en el área del proceso. Para poder implementarlo, entonces, elaboramos un proceso de desarrollo propio que si bien contiene las cinco etapas habituales del desarrollo de software, no deja de cumplir con los principios y valores de las metodologías ágiles. Las etapas del proceso son: planificación, análisis, diseño, construcción y prueba, e implementación; que para llevarlas a cabo utilizamos una combinación de diferentes herramientas de la ingeniería del software.
  4. 4. Haber transitado con Scrum el desarrollo de un proyecto real ha resultado una experiencia enriquecedora. A través de él se ha logrado controlar la velocidad de avance del proyecto eficientemente. El cual se terminó entregando con un retraso admisible de una semana posterior a la fecha pactada con el cliente. El hecho de haber terminado el trabajo obteniendo como resultado un producto funcionando muestra que los objetivos planteados en un principio se cumplieron. Pero lo más importante, es que se incrementaron los conocimientos por lo que el trabajo implicó una gran satisfacción personal.
  5. 5. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad ÍNDICE INTRODUCCIÓN ------------------------------------------------------------------------3 PRIMERA PARTE: MARCO TEÓRICO 1. MÉTODOS ÁGILES-------------------------------------------------------------- 9 1.1. INTRODUCCIÓN ---------------------------------------------------------------------- 9 1.1.1. El dilema del software -------------------------------------------------------------------- 9 1.1.2. El surgimiento de la agilidad -----------------------------------------------------------10 1.2. ¿QUÉ ES UNA METODOLOGÍA ÁGIL? --------------------------------------10 1.2.1. La Alianza Ágil-----------------------------------------------------------------------------11 1.2.2. El Manifiesto Ágil -------------------------------------------------------------------------12 1.2.3. Metodologías ágiles vs. tradicionales------------------------------------------------16 2. SCRUM-----------------------------------------------------------------------------19 2.1. INTRODUCCIÓN ---------------------------------------------------------------------19 2.2. LA ESENCIA DE SCRUM ---------------------------------------------------------20 2.3. ELEMENTOS DE SCRUM---------------------------------------------------------21 2.3.1. Roles-----------------------------------------------------------------------------------------22 2.3.2. Poda de requerimientos-----------------------------------------------------------------25 2.3.3. Product Backlog---------------------------------------------------------------------------25 2.3.4. Sprint-----------------------------------------------------------------------------------------26 2.3.5. Valores --------------------------------------------------------------------------------------35 SEGUNDA PARTE: METODOLOGÍA 3. PROCESO DE DESARROLLO ----------------------------------------------38 3.1. INTRODUCCIÓN ---------------------------------------------------------------------38 3.2. PROCESO ITERATIVO E INCREMENTAL ----------------------------------38 3.3. ETAPAS DEL PROCESO DE DESARROLLO ------------------------------40 3.3.1. Planificación--------------------------------------------------------------------------------40 3.3.2. Análisis --------------------------------------------------------------------------------------40 3.3.3. Diseño ---------------------------------------------------------------------------------------41 3.3.4. Construcción y Prueba ------------------------------------------------------------------41 3.3.5. Implementación ---------------------------------------------------------------------------42 3.4. EDT DEL PROCESO DE DESARROLLO ------------------------------------43 3.5. HERRAMIENTAS --------------------------------------------------------------------44 3.5.1. Técnicas de relevamiento --------------------------------------------------------------44 3.5.2. Work Breakdown Structure (WBS) ---------------------------------------------------44 3.5.3. Casos de uso ------------------------------------------------------------------------------44 3.5.4. Diagrama de actividades----------------------------------------------------------------45 3.5.5. Diagrama de Entidad Relación (DER)-----------------------------------------------45 3.5.6. ScrumWorks -------------------------------------------------------------------------------46 3.5.7. Burndown chart ---------------------------------------------------------------------------47 3.5.8. Clarion 5.5 ----------------------------------------------------------------------------------47 María Laura Citón 1 Universidad de Mendoza
  6. 6. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad TERCERA PARTE: DESARROLLO DE INGENIERÍA 4. PROYECTO TRAZABILIDAD ------------------------------------------------50 4.1. PLANIFICACION INICIAL ---------------------------------------------------------50 4.1.1. Solicitud del proyecto --------------------------------------------------------------------50 4.1.2. El porqué de la solicitud del proyecto------------------------------------------------50 4.1.3. Evaluación de la información deseada ----------------------------------------------52 4.1.4. Situación actual ---------------------------------------------------------------------------55 4.1.5. Estructura de División del Trabajo (EDT)-------------------------------------------56 4.1.6. Conformación del equipo humano----------------------------------------------------57 4.1.7. Estimación del plazo de entrega y precio-------------------------------------------57 4.1.8. Gestión de riesgo -------------------------------------------------------------------------60 4.1.9. Propuesta comercial ---------------------------------------------------------------------61 4.2. HERRAMIENTAS EXISTENTES EN EL MERCADO----------------------62 4.3. COMENZANDO CON SCRUM---------------------------------------------------65 4.3.1. Primer Sprint -------------------------------------------------------------------------------67 4.3.2. Segundo Sprint----------------------------------------------------------------------------71 4.3.3. Tercer Sprint -------------------------------------------------------------------------------74 4.3.4. Cuarto Sprint-------------------------------------------------------------------------------76 4.3.5. Quinto Sprint -------------------------------------------------------------------------------78 4.3.6. Sexto Sprint --------------------------------------------------------------------------------81 ANEXOS ANEXO A--------------------------------------------------------------------------------84 PROPUESTA COMERCIAL ----------------------------------------------------------------84 ANEXO B--------------------------------------------------------------------------------87 INVESTIGACIÓN-------------------------------------------------------------------------------87 ANEXO C------------------------------------------------------------------------------ 116 ANÁLISIS DEL SISTEMA ----------------------------------------------------------------- 116 ANEXO D------------------------------------------------------------------------------ 141 DISEÑO DEL SISTEMA-------------------------------------------------------------------- 141 CONCLUSIONES ------------------------------------------------------------------- 149 BIBLIOGRAFÍA ---------------------------------------------------------------------- 151 María Laura Citón 2 Universidad de Mendoza
  7. 7. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad INTRODUCCIÓN En el actual contexto económico, los profesionales en el área de las tecnologías de la información se encuentran con la responsabilidad de conducir eficientemente proyectos de gran envergadura, simples o complejos, cortos o de larga duración, en ambientes cambiantes y turbulentos. Todo proyecto tiene una meta: la combinación de recursos de todo tipo, reunidos en una estructura temporal para cumplir con un objetivo predeterminado, adaptándose a los cambios que surgen, dentro de los costos preestablecidos y respetando las especificaciones técnicas que aseguran la calidad de los resultados. Este nuevo concepto de lo que se considera hoy en día un proyecto exitoso, nos lleva a reflexionar acerca de que el esquema “tradicional” para abordar el desarrollo de software ha demostrado ser efectivo y necesario en proyectos de gran tamaño (respecto a tiempos y recursos), donde por lo general se exige un alto grado de formalidad en el proceso. Sin embargo, este enfoque no resulta ser el más adecuado para muchos de los proyectos actuales donde el entorno del sistema es muy cambiante, y se exige reducir drásticamente los tiempos de desarrollo manteniendo una alta calidad. A raíz de este planteo surge la inquietud de ahondar en las metodologías ágiles que nacieron, precisamente, como una alternativa a las tradicionales. Por estar las metodologías ágiles especialmente orientadas María Laura Citón 3 Universidad de Mendoza
  8. 8. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad a proyectos pequeños, constituyen una solución a medida para ese entorno, aportando una elevada simplificación que, a pesar de ello, no renuncia a las prácticas esenciales para asegurar la calidad del producto. Se basan en la adaptabilidad de cualquier cambio como medio para aumentar las posibilidades de éxito de los proyectos. Las metodologías más características de esta familia son XP (Extreme Programming), Scrum y Cristal; siendo Scrum la que hemos elegido para desarrollar en detalle en este trabajo. Scrum está basado en un proceso constructivo iterativo e incremental donde las iteraciones tienen duración fija pero corta y el resultado final de cada una de ellas es un producto funcional que contiene un subconjunto de los requerimientos del proyecto. Constituyen el núcleo de Scrum, que divide de esta forma el desarrollo de un proyecto en un conjunto de pequeñas “carreras” llamadas Sprints. Cada Sprint es guiado por una lista de funcionalidades priorizadas, que son planificadas con anterioridad. Dentro de cada Sprint nunca se efectúa nada que no sea necesario para cumplir los requerimientos del mismo. Los principales motivos que nos han llevado a la elección de Scrum son: Es uno de los métodos de gestión de proyectos más innovadores de los denominados ágiles, ya que se destaca por una gran descentralización como medio para alcanzar la mayor productividad posible. María Laura Citón 4 Universidad de Mendoza
  9. 9. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Es mucho menos conocido que otros métodos ágiles. Posiblemente una de las causas es la escasa documentación existente, lo que lleva a pensar que este trabajo puede resultar en un aporte significativo. No está concebido como un método independiente, sino que se promueve como complemento de otras metodologías. Enfatiza valores y prácticas de gestión, sin pronunciarse sobre requerimientos, implementación y demás cuestiones técnicas; de allí su deliberada insuficiencia y complementariedad. Por lo tanto, para el caso del desarrollo de software Scrum necesita ser completado con algún otro método o procedimiento. A tal fin, se elabora un proceso de desarrollo propio para llenar ese vacío metodológico. El proceso es iterativo e incremental para que permita hacer entregas parciales que se van complementando según avanza el proyecto. Nuestro proceso respeta las cinco etapas tradicionales de un proyecto pero no deja de cumplir con los principios y valores de las metodologías ágiles. Las etapas son: planificación, análisis, diseño, construcción y prueba, e implementación. Para llevar a cabo las etapas mencionadas en el párrafo anterior se utiliza una combinación de diferentes herramientas de la ingeniería del software, entre las que podemos mencionar: las Estructuras de División del Trabajo (EDT), los Casos de uso, los Diagramas de Actividades, los Diagramas de Entidad Relación (DER), ScrumWorks para llevar adelante el seguimiento del proyecto y Clarion 5.5 que es el lenguaje de programación. María Laura Citón 5 Universidad de Mendoza
  10. 10. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad A continuación presentamos los objetivos generales que se han planteado para el desarrollo del presente Trabajo Final. Ø Conocer el método ágil Scrum para su posterior aplicación a un proyecto real. Ø Elaborar un proceso de desarrollo que lo complemente. Ø Aplicar Scrum al desarrollo de un Software de Trazabilidad. El porqué de la elección de desarrollar un Software de Trazabilidad y no de cualquier otra temática se explica a continuación. A raíz de que comienza a regir a partir del 1º de Mayo de 2005 una normativa para la comercialización de productos con la Unión Europea - Reglamento (CE) N° 178/2002; surge la posibilidad de desarrollar un Software de Trazabilidad para un productor de uva de la zona de Lavalle. La oportunidad de abordar esta temática de tanto auge en la actualidad ha resultado de mucho interés, ya que se considera que el marco social, económico y político de nuestro país hace muy importante a esta práctica puesto que pretendemos exportar nuestra agroproducción desde un contexto político observado y hasta a veces cuestionado por el mundo. Este problema viene a ser asistido por las normas de calidad en general y por la trazabilidad en particular. Se puede producir alimentos bajo normas de calidad custodiadas internacionalmente que certifican que los productos son elaborados bajo un estándar que no depende de la situación país. María Laura Citón 6 Universidad de Mendoza
  11. 11. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Los productores agrarios deberían comenzar a responder a este requisito de la UE. Es por ello que se desarrollará un Proyecto Trazabilidad que comprenderá desde la solicitud del cliente hasta la entrega al mismo del producto terminado. Se explica a continuación la manera en la que se ha organizado el Trabajo Final. Primera Parte: Marco Teórico Se presenta el contexto en el que surgen las metodologías ágiles, sus valores, principios, comparaciones con las metodologías tradicionales y se describe con detalle Scrum. Segunda Parte: Metodología Se explica el proceso de desarrollo elaborado para complementar Scrum; etapas definidas y herramientas utilizadas. Tercera Parte: Desarrollo de Ingeniería Se despliega el desarrollo del proyecto, aplicando la metodología y el proceso de desarrollo explicados en los capítulos anteriores, para alcanzar el producto final, el Software de Trazabilidad. Luego, se presentan 4 Anexos que forman parte del desarrollo del proyecto y que se invita a consultarlos para conocer en detalle el mismo. María Laura Citón 7 Universidad de Mendoza
  12. 12. PRIMERA PARTE MARCO TEÓRICO
  13. 13. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 1. MÉTODOS ÁGILES 1.1. INTRODUCCIÓN 1.1.1. El dilema del software Cualquiera que alguna vez haya sido responsable de conducir un proyecto de desarrollo de software sabe que no es para nada fácil. Coordinar y negociar exitosamente con las partes implicadas en el proyecto desafía al más experimentado líder. Y si bien, hoy en día, el software es una parte crítica de todo negocio, aún los proyectos de desarrollo de software sufren de problemas en su gestión que los pueden llevar directo al fracaso. Los problemas más frecuentes son: § No se adaptan a los cambios. § Calidad insuficiente y muy variable. § Proyectos que exceden sus tiempos y costos. Con base en lo anterior se ha llegado a un acuerdo de lo que significa un proyecto de software exitoso, en tres dimensiones: ü A tiempo. ü En presupuesto. ü Cumpliendo el alcance definido (incluye adaptabilidad a los cambios y calidad). María Laura Citón 9 Universidad de Mendoza
  14. 14. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad No es novedad que una forma de resolver los problemas de calidad, y otros, de un producto es mejorando la forma de construir tales productos. O sea.... mejorando los procesos. En una actividad humana como es el desarrollo de software, esto es casi equivalente a mejorar la metodología que se sigue para construir los productos. 1.1.2. El surgimiento de la agilidad Durante el transcurso de los años 90 el ambiente cambiante y turbulento era cada vez más la regla que la excepción. Por lo tanto surgió la necesidad de desarrollar metodologías livianas y maniobrables que pudieran operar en ese ambiente turbulento. Estas metodologías son conocidas colectivamente hoy en día como “metodologías ágiles”. 1.2. ¿QUÉ ES UNA METODOLOGÍA ÁGIL? Lo ágil se define (por los mismos agilistas) como la habilidad de responder de forma versátil al cambio para maximizar los beneficios. Las metodologías ágiles varían en su forma de responder al cambio, pero en general comparten las siguientes características: ü Los individuos y sus interacciones son más importantes que los procesos y las herramientas. ü El software que funciona es más importante que la documentación exhaustiva. María Laura Citón 10 Universidad de Mendoza
  15. 15. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad ü La colaboración con el cliente en lugar de la negociación de contratos. ü La respuesta al cambio en lugar de aferrarse a un plan. Los valores y principios compartidos por toda la metodología ágil fueron enunciados en el “manifiesto ágil”, por la “alianza ágil”. 1.2.1. La Alianza Ágil En una reunión celebrada en febrero de 2001 en Utha (EEUU), nace el término “ágil” aplicado al desarrollo de software. En esta reunión participaron un grupo de 17 expertos de la industria del software. Su objetivo fue esbozar los valores y principios que debían permitir a los equipos desarrollar software rápidamente y respondiendo a los cambios que pueden surgir a lo largo del proyecto. Se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas. Tras esta reunión se creó The Alliance, una organización dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que los adopten. El punto de partida fue el Manifiesto Ágil, un documento que resume la filosofía ágil. María Laura Citón 11 Universidad de Mendoza
  16. 16. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 1.2.2. El Manifiesto Ágil El Manifiesto comienza enumerando los principales valores del desarrollo ágil. Se valora: Al individuo y a las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto de software. Si se sigue un buen proceso de desarrollo, pero el equipo falla, el éxito no está asegurado; sin embargo, si el equipo funciona, es más fácil conseguir el objetivo final, aunque no se tenga un proceso bien definido. Así mismo, las herramientas (compiladores, depuradores, control de versiones) son importantes para mejorar el rendimiento del equipo, pero el disponer de más recursos de los estrictamente necesarios también puede afectar negativamente. Desarrollar software que funciona más que conseguir una buena documentación. Aunque se parte de la base de que el software sin documentación es un desastre, la regla a seguir es “no producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante”. Estos documentos deben ser cortos y centrarse en lo fundamental. Si una vez iniciado el proyecto, un nuevo miembro se incorpora al equipo de desarrollo, se considera que los dos elementos que más le van a servir para ponerse al día son: el propio código y la interacción con el equipo. La colaboración con el cliente más que la negociación de un contrato. Las características particulares del desarrollo de software hacen que muchos proyectos hayan fracasado por intentar cumplir plazos María Laura Citón 12 Universidad de Mendoza
  17. 17. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad y costes preestablecidos al inicio del mismo, según los requisitos que el cliente manifestaba en ese momento. Por ello, se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a lo largo del proyecto (en los requisitos, la tecnología, el equipo) determina también el éxito o fracaso del mismo. Por lo tanto, la planificación debe ser flexible para poder adaptarse a los cambios que puedan surgir. Una buena estrategia es hacer planificaciones detalladas para unas pocas semanas y planificaciones mucho más abiertas para unos pocos meses. Los valores anteriores inspiran los doce principios del manifiesto. Éstas son las características que diferencian un proceso ágil de uno tradicional. Los dos primeros son generales y resumen gran parte del espíritu ágil. I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporten un valor. Un proceso es ágil si a las pocas semanas de empezar ya entrega software que funcione aunque sea rudimentario. El cliente decide si pone en marcha dicho software con la funcionalidad que ahora le proporciona o simplemente lo revisa e informa de posibles cambios a realizar. II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva. Los cambios en los registros deben verse como algo positivo. Les va a permitir aprender más, a la vez que logran una mayor satisfacción del cliente. Este principio María Laura Citón 13 Universidad de Mendoza
  18. 18. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad implica además que la estructura del software debe ser flexible para poder incorporar los cambios sin demasiado coste agregado. Luego existen una serie de principios que tienen que ver directamente con el proceso de desarrollo de software a seguir. III. Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas. Las entregas al cliente se insiste en que sean software, no planificaciones, ni documentación de análisis o de diseño. IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto. El proceso de desarrollo necesita ser guiado por el cliente, por lo que la interacción con el equipo es muy frecuente. V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo. La gente es el principal factor de éxito, todos los demás (proceso, entorno, gestión) queda en segundo plano. Si cualquiera de ellos tiene un efecto negativo sobre los individuos debe ser cambiado. VI. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo. Los miembros de equipo deben hablar entre ellos, éste es el principal modo de comunicación. Se pueden crear documentos pero no todo estará en ellos. María Laura Citón 14 Universidad de Mendoza
  19. 19. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad VII. El software que funciona es la medida principal de progreso. El estado de un proyecto no viene dado por la documentación generada o la fase en la que se encuentre, sino por el código generado y el funcionamiento. Por ejemplo, un proyecto se encuentra al 50% si el 50% de los requisitos ya están en funcionamiento. VIII. Los procesos ágiles promueven un desarrollo sostenible. Los desarrolladores y usuarios deberían ser capaces de mantener el ritmo de desarrollo durante toda la ejecución del proyecto, asegurando en todo momento que la calidad es máxima. Finalmente los últimos principios están más directamente relacionados con el equipo de desarrollo, en cuanto metas a seguir y organización del mismo. IX. La atención continua a la calidad técnica y al buen diseño mejora la agilidad. Producir código claro y robusto es la clave para avanzar más rápidamente en el proyecto. X. La simplicidad es esencial. Tomar los caminos más simples que sean consistentes con los objetivos perseguidos. Si el código producido es simple y de alta calidad será más sencillo adaptarlo a los cambios que puedan surgir. XI. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por si mismos. Todo el equipo es informado de las responsabilidades y éstas recaen sobre todos sus miembros. Es el propio equipo el que decide la mejor forma de organizarse, de acuerdo a los objetivos que se persigan. María Laura Citón 15 Universidad de Mendoza
  20. 20. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad XII. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento. Puesto que el entorno está cambiando continuamente, el equipo también debe ajustarse al nuevo escenario de forma continua. Puede cambiar su organización, sus reglas, sus convenciones, sus relaciones, etc., para seguir siendo ágil. Los conceptos subyacentes no son nuevos, aunque toman nueva importancia a partir del momento que se usan combinados. 1.2.3. Metodologías ágiles vs. tradicionales A continuación vamos a enumerar las principales diferencias respecto de las metodologías tradicionales (no ágiles). El siguiente cuadro recoge esquemáticamente estas diferencias que no se refieren sólo al proceso en sí, sino también al contexto de equipo y organización que es más favorable a cada una de estas filosofías de desarrollo de software. María Laura Citón 16 Universidad de Mendoza
  21. 21. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Metodologías Ágiles Metodologías Tradicionales La planificación del trabajo sólo Trabajo y gestión guiada por un plan comprende el ciclo en el que se está general del proyecto que comprende trabajando (normalmente 30 días). todo su ciclo de desarrollo. Descubrimiento progresivo de Conocimiento detallado de los requisitos, e incorporación de cambios requisitos antes de comenzar el en cualquier iteración del desarrollo. diseño del proyecto. “Refactorización” de código como “Hacerlo bien a la primera”. Evitar la modelo de trabajo compatible con el re-codificación y el re-trabajo que punto anterior. supone una pérdida de eficiencia. Comunicación directa entre los Comunicación formal según el plan integrantes del equipo (incluidos cliente de comunicación del proyecto. y usuarios) prefiriendo la verbal directa. Equipos auto-gestionados. Gestión de equipos y personas centralizada en el gestor del proyecto. No existe contrato tradicional o al Existe un contrato prefijado. menos es bastante flexible. El cliente es parte del equipo de El cliente interactúa con el equipo de desarrollo. desarrollo mediante reuniones. Grupos pequeños (hasta 20 integrantes) Grupos grandes y posiblemente y trabajando en el mismo sitio. distribuidos. Pocos artefactos. Más artefactos. Pocos roles. Más roles. Menos énfasis en la arquitectura del La arquitectura del software es software. esencial y se expresa mediante modelos. Diferencias entre metodologías ágiles y no ágiles. Las metodologías ágiles están revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus adeptos y quienes por prejuicio no las ven como alternativa a las metodologías tradicionales. Aunque los creadores de las metodologías ágiles han suscrito el manifiesto ágil, y todas ellas coinciden con los principios enunciados anteriormente, cada una tiene características propias y hace hincapié en algunos aspectos más específicos. María Laura Citón 17 Universidad de Mendoza
  22. 22. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Las metodologías ágiles más populares son: XP (Extreme Programming – Programación Extrema), Cristal y Scrum. Por ser esta última la elegida para desarrollar el presente trabajo mencionamos los tres principales motivos que nos llevaron a su elección. § Sirve para gestionar proyectos de cualquier tipo, no solamente tecnológicos. § Deja un vacío en la parte de definiciones del área de ingeniería lo que permite una elaboración propia para completarla. § Tiene escasa documentación por lo que se piensa que este trabajo puede resultar en un aporte significativo. A continuación, en el próximo capítulo, de desarrolla en detalle Scrum. María Laura Citón 18 Universidad de Mendoza
  23. 23. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 2. SCRUM 2.1. INTRODUCCIÓN Scrum es una metodología ágil de gestión de proyectos cuyo objetivo primordial es elevar al máximo la productividad de un equipo. Reduce al máximo la burocracia y actividades no orientadas a producir software que funcione y produce resultados en periodos muy breves de tiempo. Como método, Scrum enfatiza valores y prácticas de gestión, sin pronunciarse sobre requerimientos, prácticas de desarrollo, implementación y demás cuestiones técnicas. Más bien delega completamente en el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo más productivos posibles. La palabra Scrum procede de la terminología del juego de rugby, donde designa al acto de preparar el avance del equipo en unidad pasando la pelota a uno y otro jugador. Igual que el juego, Scrum es adaptable, ágil, auto-organizante y con pocos tiempos muertos. Scrum fue desarrollado por Jeff Sutherland y elaborado más formalmente por Ken Schwaber. Poco después Sutherland y Schwaber se unieron para refinar y extender Scrum. Se la ha llegado a conocer como una herramienta de hiperproductividad. Schwaber se dio cuenta entonces de que un proceso necesita aceptar el cambio, en lugar de esperar predictibilidad. Se enfoca en el hecho de que procesos definidos y repetibles sólo funcionan para atacar problemas definidos y repetibles con gente definida y repetible en ambientes definidos y repetibles. Toma el cambio como una forma de entregar al final del desarrollo algo más María Laura Citón 19 Universidad de Mendoza
  24. 24. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad cercano a la verdadera necesidad del Cliente. Puede ser aplicado teóricamente a cualquier contexto en donde un grupo de gente necesita trabajar junta para lograr una meta común. Se basa en los principios ágiles: ü Privilegiar el valor de la gente sobre el valor de los procesos. ü Entregar software funcional lo más pronto posible. ü Predisposición y respuesta al cambio. ü Fortalecer la comunicación y la colaboración. ü Comunicación verbal directa entre los implicados en el proyecto. ü Simplicidad; supresión de artefactos innecesarios en la gestión del proyecto. 2.2. LA ESENCIA DE SCRUM § Más que una metodología de desarrollo es para gestionar proyectos, no contiene definiciones en áreas de ingeniería. § Con visión de que el trabajo es efectuado por equipos auto- organizados y auto-dirigidos, logrando motivación, responsabilidad y compromiso. María Laura Citón 20 Universidad de Mendoza
  25. 25. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad § Está basada en un proceso constructivo iterativo e incremental donde las iteraciones tienen duración fija. § Contiene definición de roles, prácticas y productos de trabajo escritas de forma simple. § Está soportada en un conjunto de valores y principios. Nueva Sprint Backlog funcionalidad Product Backlog seleccionado Product Backlog Requisitos priorizados Visión: ROI – versiones hitos El flujo de Scrum 2.3. ELEMENTOS DE SCRUM § Roles Ø Product Owner Ø Scrum Master Ø Team (Equipo) María Laura Citón 21 Universidad de Mendoza
  26. 26. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad § Poda de requerimientos § Product Backlog § Sprint Ø Planificación Ø Sprint Backlog Ø Scrum Ø Estimaciones Ø Builds continuos Ø Revisión del Sprint Ø Reunión retrospectiva § Valores Ø Foco, comunicación, respeto y coraje. 2.3.1. Roles La dimensión del equipo total de Scrum no debería ser superior a veinte personas. Si hay más, lo más recomendable es formar varios equipos. No hay una técnica oficial para coordinar equipos múltiples, pero se han documentado experiencias de hasta 800 miembros, divididos en Scrums de Scrum, definiendo un equipo central que se encarga de la coordinación, las pruebas cruzadas y la rotación de los miembros. Scrum tiene una estructura muy simple. Todas las responsabilidades del proyecto se reparten en 3 roles: María Laura Citón 22 Universidad de Mendoza
  27. 27. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Ø Product owner (Dueño del producto) Representa a todos los interesados en el producto final. Sus áreas de responsabilidad son: • Financiación del proyecto • Requisitos del sistema • Retorno de la inversión del proyecto • Lanzamiento del proyecto Es el responsable oficial del proyecto, gestión, control y visibilidad de la lista de acumulación o lista de retraso del producto (Product Backlog). Toma las decisiones finales de las tareas asignadas al registro y convierte sus elementos en rasgos a desarrollar. Ø Scrum Master (Líder del proyecto) Responsable del proceso Scrum, de cumplir la meta y resolver los problemas. Así como también, de asegurarse que el proyecto se lleve a cabo de acuerdo con las prácticas, valores y reglas de Scrum y que progrese según lo previsto. Interactúa con el cliente y el equipo. Coordina los encuentros diarios, y se encarga de eliminar eventuales obstáculos. Debe ser miembro del equipo y trabajar a la par. María Laura Citón 23 Universidad de Mendoza
  28. 28. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Ø Team (Equipo) Responsable de transformar el Backlog de la iteración en un incremento de la funcionalidad del software. Tiene autoridad para reorganizarse y definir las acciones necesarias o sugerir remoción de impedimentos. • Auto-gestionado • Auto-organizado • Multi-funcional La dimensión del equipo total de Scrum no debería ser superior a veinte. El número ideal es diez, más o menos dos. Si hay más, lo más recomendable es formar varios equipos. No hay una técnica oficial para coordinar equipos múltiples, pero se han documentado experiencias de hasta 800 miembros, divididos en Scrums de Scrums, definiendo un equipo central que se encarga de la coordinación, las pruebas cruzadas y la rotación de los miembros. Roles: gallinas y cerdos El nombre de los miembros del equipo y los externos se deriva de una típica fábula agilista: un cerdo y una gallina discutían qué nombre ponerle a un nuevo restaurante; la gallina propuso “Jamón y Huevos”. “No, gracias”, respondió el cerdo, “Yo estaré comprometido, mientras tú sólo implicada”. Scrum diferencia claramente entre estos dos grupos para garantizar que quienes tienen la responsabilidad tienen también la autoridad necesaria María Laura Citón 24 Universidad de Mendoza
  29. 29. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad para poder lograr el éxito, y que quienes no tienen la responsabilidad, los observadores externos, no produzcan interferencias innecesarias. Comprometido en el proyecto Implicados en el proyecto § Dueño del producto § Marketing § Equipo § Comercial § Scrum Master § Etc. 2.3.2. Poda de requerimientos La primera actividad es armar una lista exhaustiva de los requerimientos originales del sistema. Luego se procede a ver qué requerimientos son realmente necesarios, cuáles pueden posponerse y cuáles eliminarse. Para ello debe identificarse un representante con capacidad de decisión, priorizar los requerimientos en base a su importancia y acordar cuáles son los prioritarios para la fecha de entrega. La poda de requerimientos es una buena práctica implícita en modelos ágiles, se hace lo que el cliente realmente desea, no más. 2.3.3. Product Backlog Con los requerimientos priorizados y podados armamos el Backlog de Producto. Este es una forma de registrar y organizar el trabajo pendiente para el producto (actividades y requerimientos). Es un documento dinámico que incorpora constantemente las necesidades del sistema. Por lo tanto, nunca llega a ser una lista María Laura Citón 25 Universidad de Mendoza
  30. 30. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad completa y definitiva. Se mantiene durante todo el ciclo de vida (hasta la retirada del sistema) y es responsabilidad del Product Owner. 2.3.4. Sprint Scrum está basado en el control empírico de procesos. Se utiliza cuando la capacidad de predicción es vaga, la incertidumbre alta o el proceso es demasiado complejo para ser modelado y definido. En el enfoque empírico de control de procesos se establecen reglas simples y se crea una disciplina de inspección frecuente para adaptarse rápidamente a situaciones imprevistas o problemas. Control: C Inspección diaria y resolución de problemas E PROCESO S Entrada: Salida: Backlog de producto Nuevo incremento seleccionado Proceso: del producto Sprint con sus prácticas y reglas Un Sprint es el periodo de tiempo durante el que se desarrolla un incremento de funcionalidad. Constituye el núcleo de Scrum, que divide de esta forma el desarrollo de un proyecto en un conjunto de pequeñas “carreras”. María Laura Citón 26 Universidad de Mendoza
  31. 31. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad • Duración máxima del Sprint : 30 días. • Durante el Sprint no se puede modificar el trabajo que se ha acordado en el Backlog. • Sólo es posible cambiar el curso de un Sprint, abortándolo, y sólo lo puede hacer el Scrum Master si decide que no es viable por alguna de las razones siguientes: - La tecnología acordada no funciona. - Las circunstancias del negocio han cambiado. - El equipo ha tenido interferencias. María Laura Citón 27 Universidad de Mendoza
  32. 32. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Ø Planificación Se planifica en detalle el trabajo al inicio de cada Sprint asumiendo que los objetivos no van a cambiar durante el mismo. De esta manera se atenúa el riesgo. Aspectos a tener en cuenta sobre la planificación de un Sprint: • Una determinación general de alcance, frecuentemente basada en una EDT (Estructura de División del Trabajo). • Estimaciones de esfuerzo de alto nivel realizadas durante la etapa de concepción del proyecto. • Esfuerzo dedicado a labores de soporte o de preparación de los ambientes requeridos por el proyecto. • Esfuerzo asociados a las reuniones diarias, de planificación y de revisión. • Requerimientos de recursos de infraestructura o logísticos (máquinas, redes, licencias, papel, pizarras, etc.). • Habilidades presentes y necesarias en el equipo. • Restricciones asociadas al conocimiento del negocio, la tecnología o externas (legales, reglamentarias, estándares, etc.). María Laura Citón 28 Universidad de Mendoza
  33. 33. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Rol del Scrum Master durante la planificación: ü Dirige la planificación. ü Es vínculo entre el equipo y el Product Owner del proyecto. ü Registra problemas y riesgos detectados durante la planificación. ü Registra las tareas, asignaciones y estimaciones. ü Inicia el Backlog del Sprint. Ø Sprint Backlog Trabajo o tareas determinadas por el equipo para realizar en un Sprint. • Tareas a convertir en producto funcional. • Las tareas se estiman en una duración entre 1 a 20 horas de trabajo. Las de mayor duración deben intentar descomponerse en sub-tareas de ese rango de tiempo. • La estimación se actualiza día a día. Ø Scrum diario Scrum asume que el proceso es complejo y que es necesario inspeccionarlo frecuentemente, por eso se realiza una reunión diaria de seguimiento. El encuentro diario impide caer en el dilema señalado por Fred Brooks: “¿Cómo es que un proyecto puede atrasarse un año? Un día a la vez”. María Laura Citón 29 Universidad de Mendoza
  34. 34. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad El foco de la reunión es determinar el avance en las tareas y detectar problemas o “bloqueos” que estén haciendo lento el progreso del equipo o que eventualmente impidan a un equipo cumplir con la meta del Sprint. La idea es que ningún problema quede sin resolver o, por lo menos, sin iniciar alguna acción de respuesta dentro de las 24 horas después de su detección. La reunión es además un espacio definido para que cada miembro del equipo comunique a los demás el estado de su trabajo y por lo tanto reafirme el compromiso. Tips para un buen Scrum diario: • Todos los días en el mismo sitio y a la misma hora. Con una duración máxima de 15 minutos. • Se recomienda que sea la primera actividad del día. • Deben acudir todos los miembros del equipo. • Hacer un círculo, permitir que todos vean a todos. • Mantener el foco. • Solo habla una persona a la vez y los demás escuchan. No se permiten interrupciones, entrar y salir, hablar por teléfono, etc. • Sólo se habla de: ¿En que trabajé ayer? ¿En que voy a trabajar hoy? ¿Que problemas impiden mi progreso? María Laura Citón 30 Universidad de Mendoza
  35. 35. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad • No iniciar discusiones muy largas sobre temas técnicos o sobre los problemas, esto hay que registrarlo y manejarlo después de la reunión. • Si están permitidas las preguntas para aclarar el alcance de un trabajo o de un problema. • Cuando un miembro informa de algo de interés para otros, o necesita ayuda de otros, estos se reúnen al terminar la revisión diaria. • Las gallinas no pueden intervenir ni distraer, y el Scrum Master puede limitar el número de gallinas asistentes si lo considera oportuno. Rol del Scrum Master durante el Scrum: ü Dirige la reunión y mantiene el foco. ü Hace preguntas para aclarar dudas. ü Registra (escribe o documenta) los problemas para su resolución después de la reunión. ü Se asegura que los miembros cuenten con el ambiente adecuado para la reunión. Ø Estimaciones Las estimaciones se realizan por primera vez en la reunión de planificación al inicio del Sprint. Luego las tareas se re-estiman todos los días y se registran sus cambios en el Backlog del Sprint; esta actividad puede ser realizada inmediatamente antes o después del Scrum diario. María Laura Citón 31 Universidad de Mendoza
  36. 36. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Algunas claves para la estimación: • Siempre se realizan estimaciones de esfuerzo, no de duración. • Siempre se estima el esfuerzo total pendiente para terminar la tarea, no se estima el esfuerzo consumido. • Se buscan unidades manejables, lo usual es que estén en un mínimo de 2 horas y un máximo de 20. Si la tarea es muy corta se trata de juntarla con otras relacionadas. Si la tarea es muy grande se trata de descomponerla. Ø Builds continuos y pruebas básicas La estrategia que generalmente se utiliza es la de Builds continuos y “smoke test” (prueba básica para la funcionalidad del sistema). Se itera por estas fases El programador Pasa a integración lo Se prueba que no se libera código. más pronto posible rompa el build. (diario al menos). María Laura Citón 32 Universidad de Mendoza
  37. 37. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Procedimiento de Builds continuos • Los programadores desarrollan según el Backlog del Sprint, y al finalizar, notifican al integrador. • El integrador toma el código y lo integra con el resto del producto. • Se compila el software y se prueba “por arriba” el producto, para verificar que no se haya roto. • Si se encuentran problemas se devuelve al desarrollador. • Se notifica al equipo que hay una nueva versión “estable” del código para usar como base. Ø Revisión del Sprint El objetivo de la reunión de revisión es presentar el producto o porción del producto desarrollada por el equipo a los usuarios. La reunión se utiliza para detectar inconformidades mayores que se vuelven elementos del Backlog de Producto y que eventualmente se resuelven en el siguiente Sprint. A la reunión asisten el equipo, el Scrum Master, el Product Owner y todas las personas implicadas en el proyecto (gallinas). Tips para una buena revisión: • Duración máxima de la reunión: 4 horas. María Laura Citón 33 Universidad de Mendoza
  38. 38. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad • Preparar la presentación, teniendo en cuenta que lo único que se presenta es el producto (no Power Point o similares). • Mantener el foco durante la reunión de revisión, el foco es el producto solamente. • Finalidad: presentar al propietario del producto y a las gallinas las nuevas funcionalidades implementadas. • Las funcionalidades no implementadas no se presentan. • Registrar todos los comentarios e inconformidades declaradas de los usuarios sobre el producto para determinar cuales de ellas formarán parte del Backlog. Ø Reunión retrospectiva Scrum involucra el concepto de mejora continua a través de las reuniones de retrospección. Las reuniones buscan detectar los puntos positivos y negativos del Sprint para generar propuestas de mejora para futuros Sprints. Las reuniones de retrospección son el concentrador del aprendizaje organizacional sobre el Scrum. Los puntos positivos y negativos se registran y se definen ítems de acción para cada uno. Los ítems de acción definidos se toman en cuenta en los siguientes Sprints. María Laura Citón 34 Universidad de Mendoza
  39. 39. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Acuden el equipo y el Scrum Master, y opcionalmente el Product Owner del Producto. Tips para una buena retrospección: • Todos los miembros del equipo responden a dos preguntas: - ¿Qué cosas fueron bien en el último Sprint? - ¿Qué cosas se podrían mejorar? • El Scrum Master anota todas las respuestas. • El equipo prioriza las mejoras posibles. • El Scrum Master no proporciona respuestas, sino que ayuda al equipo a encontrar la mejor forma de trabajar con Scrum. • Las acciones de mejora localizadas que se puedan implementar en el próximo Sprint deben introducirse en el Backlog como elementos no funcionales. 2.3.5. Valores Foco à Los individuos y sus interacciones son más importantes que el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto de software. María Laura Citón 35 Universidad de Mendoza
  40. 40. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Comunicación à Scrum pone en comunicación directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance día a día, y es posible ajustar la agenda y las funcionalidades de forma consecuente. Respeto à Scrum diferencia claramente entre dos grupos para garantizar que quienes tienen la responsabilidad tienen también la autoridad necesaria para poder lograr el éxito (cerdos), y que quienes no tienen la responsabilidad, los observadores externos (gallinas), no produzcan interferencias innecesarias. Coraje à El coraje implica saber tomar decisiones difíciles. Reparar un error cuando se detecta. Mejorar el código siempre que el feedback y las sucesivas iteraciones se manifiesten susceptibles de mejora. María Laura Citón 36 Universidad de Mendoza
  41. 41. SEGUNDA PARTE METODOLOGÍA
  42. 42. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 3. PROCESO DE DESARROLLO 3.1. INTRODUCCIÓN En este apartado se presenta el proceso de desarrollo elaborado para complementar la metodología Scrum ya que esta no contiene definiciones en cuestiones técnicas. Se utiliza un proceso ágil iterativo e incremental que respeta las cinco etapas tradicionales de un proyecto que facilitan su gestión y control; ellas son: planificación, análisis, diseño, construcción y prueba, e implementación. Cómo el objetivo final de la metodología es llegar al éxito del proyecto se definen, en forma clara, los entregables de cada etapa y el alcance global, reflejando estos puntos en la planificación de todas las tareas involucradas. Se considera que: etapas delimitadas, entregables definidos y tareas acotadas son claves para el cumplimiento del plan. 3.2. PROCESO ITERATIVO E INCREMENTAL Este tipo de proceso de desarrollo permite hacer entregas parciales que se van complementando según avanza el proyecto. De esta manera se reducen los riesgos y a la vez el cliente va experimentando los resultados de su proyecto. María Laura Citón 38 Universidad de Mendoza
  43. 43. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Dado que los proyectos de software son largos es común dividir el trabajo en mini proyectos. Cada mini proyecto es una iteración que resulta en un incremento. Para ser más efectivas las iteraciones deben ser controladas, es decir deben ser seleccionadas y llevadas a cabo de una forma planeada. Se ha propuesto un proceso iterativo para garantizar la realimentación de información y de requisitos una vez iniciado el desarrollo, así como la validación continua del sistema. Esto permite que cada iteración contemple ciclos de desarrollos completos y cortos, y obtener así rápidamente, una nueva versión con mejoras sobre las versiones anteriores. Se ha propuesto un proceso incremental en el sentido de añadir capacidades y funcionalidades al software de acuerdo con el crecimiento de las necesidades; con el propósito de obtener el sistema final tras la realización de diferentes ciclos. El final de cada ciclo proporciona además, una versión estable del software. Esto permite entregas al cliente de forma rápida y ágil. Al entregar partes de la aplicación a tiempo y regularmente, el equipo de desarrollo también gana y establece credibilidad en su entorno y aumenta su auto-estima. A la vez que este tipo de estrategia se enfoca más en las necesidades de los usuarios, instándolos a identificar sus prioridades en cada etapa del proyecto. María Laura Citón 39 Universidad de Mendoza
  44. 44. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad A continuación detallamos las etapas por las cuales transita nuestro proceso de desarrollo y la combinación de herramientas utilizadas en él. 3.3. ETAPAS DEL PROCESO DE DESARROLLO 3.3.1. Planificación Objetivo: Es la etapa más importante de todas, ya que se define el proyecto propiamente dicho. Tareas: Relevamiento preliminar de los procesos del negocio, definición y secuenciamiento de actividades, definición del alcance, estimación de tiempos, definición de recursos, análisis de riesgos, estimación de costos. Entregables: Documento de definición del proyecto o del Sprint. En esta etapa es importante aclarar que, al comienzo, la planificación se realiza en forma general para determinar el alcance, la duración y el precio del proyecto, una vez que el cliente decide llevarlo a cabo, las siguientes planificaciones son a nivel de iteración, se planifica el Sprint. 3.3.2. Análisis Objetivo: Obtener todas las definiciones y especificaciones funcionales para poder llevar adelante las fases de Diseño y Construcción. Es una etapa clave ya que el alcance y las características de la solución quedan acordados, lo cual permite mitigar los principales riesgos de un proyecto. María Laura Citón 40 Universidad de Mendoza
  45. 45. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Tareas: Afianzamiento de las definiciones funcionales, definición de los requisitos a través de casos de uso, planificación de las etapas posteriores y ajuste de los tiempos preestablecidos. Entregable: Documento de alcance, casos de uso y sus respectivas descripciones. 3.3.3. Diseño Objetivo: Generar el modelo de datos para que la solución cumpla con los requerimientos definidos. El diseño generado deberá contemplar las posibles modificaciones futuras, crecimiento de la solución, mayor carga e incorporación de nuevas funcionalidades. Tareas: Diagrama Entidad Relación (DER), diseño de las interfaces de usuario, diseño de las integraciones a realizar. Durante esta etapa también se realizan pruebas para puntos críticos del proyecto. Entregables: Entre los entregables típicos de esta etapa se encuentran: DER, esqueleto del software armado, guía de diseño, diseño de la infraestructura, y la planificación ajustada con la evolución y avances obtenidos. 3.3.4. Construcción y Prueba Objetivo: Construir la solución del Release (Sprint), cumpliendo con las definiciones y especificaciones de los documentos de alcance. María Laura Citón 41 Universidad de Mendoza
  46. 46. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Generalmente es la etapa de mayor duración y con mayor dinámica de trabajo. Tareas: Programación y desarrollo de todos los componentes y funcionalidades. Implementación de las estructuras de datos, y sus procedimientos, elaboración de documentación técnica y ajustes funcionales, implementación de las integraciones y todas las actividades necesarias para poner en marcha la solución. En esta etapa se realizarán las pruebas de usabilidad, funcionalidad y carga de datos. Entregables: El entregable principal es el incremento de software funcionando. 3.3.5. Implementación Objetivo: Disponer del sistema productivo con sus ambientes de producción, metodología de trabajo y manuales operativos. Se incluye, de ser necesario, el personal operativo capacitado. Obtención de nuevas funciones a agregar o posibles errores a reparar. Tareas: Puesta en marcha de la aplicación en el ambiente de producción, elaboración de manuales operativos, y todas las actividades relacionadas al éxito del lanzamiento como la integración del ambiente de producción con terceras partes, etcétera. María Laura Citón 42 Universidad de Mendoza
  47. 47. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Entregables: El sistema productivo con sus manuales operativos, de mantenimiento y de procedimientos. Esquemas de auditoria y seguridad. Integraciones con terceras partes operativas. Sistema totalmente probado. 3.4. EDT DEL PROCESO DE DESARROLLO Presentamos nuestro proceso de desarrollo a través de una Estructura de División del Trabajo para verlo gráficamente. Objetivos Modelo de negocio Procesos Actividades Planificación Estimación Alcance Estimación Tiempo Especificaciones funcionales Análisis Requerimientos Ajuste de tiempos Proceso de desarrollo Modelo de datos Diseño Interfases Releases Programar Construcción Integración y pruebas y Pruebas Revisión y Retrospección Puesta en marcha Implementación Carga de datos María Laura Citón 43 Universidad de Mendoza
  48. 48. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 3.5. HERRAMIENTAS 3.5.1. Técnicas de relevamiento Entrevistas con el cliente y los usuarios; revisión de registros, y observación. 3.5.2. Work Breakdown Structure (WBS) Conocida como Estructura de Descomposición de Trabajos (EDT). Es un organigrama que despliega la estructura de un proyecto y muestra su organización por fases y niveles de detalle. Cada nivel de descenso representa un aumento en el nivel de detalle de las descripciones de las actividades, sirve de lista de comprobación, y determina el alcance general. Así como también, define los entregables del proyecto. Los entregables pueden ser etapas o procesos del proyecto (plan del proyecto, documentación de diseño, etc.) o partes del producto final (pantallas, ventanas, documentación). Se irá comentando a lo largo de este punto en cuales de las etapas de desarrollo se aplican las herramientas explicadas. Entonces, tanto el WBS como las técnicas de relevamiento mencionadas anteriormente se utilizan en las dos primeras etapas, o sea para la Planificación y el Análisis. 3.5.3. Casos de uso Son un método práctico para explorar requerimientos. Ayudan a describir qué es lo que el sistema debe hacer desde el punto de vista del usuario. Por lo tanto, consideramos que los casos de uso proporcionan un modo claro y preciso de comunicación con el cliente. María Laura Citón 44 Universidad de Mendoza
  49. 49. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Descripciones de casos de uso: detallan los casos de uso, en ellas se explica la forma de interactuar entre el sistema y el usuario. Tanto los casos de uso como las descripciones de los mismos se utilizan en la etapa del análisis para definir los requisitos. 3.5.4. Diagrama de actividades Sirven fundamentalmente para modelar el flujo de control entre actividades. La idea es generar una especie de diagrama en el que se puede ver el flujo de actividades que tienen lugar a lo largo del tiempo, así como las tareas concurrentes que pueden realizarse a la vez. El diagrama de actividades sirve para representar el sistema desde otra perspectiva. Desde un punto de vista conceptual, la actividad es alguna tarea que debe ser realizada. Por este motivo, en un diagrama de actividades aparecerán acciones y actividades correspondientes a distintas clases; colaborando todas ellas para conseguir un mismo fin. Los diagramas de actividad son similares a los diagramas de flujo procesales, con la diferencia de que todas las actividades están claramente asociadas a un caso de uso. También se utilizan en la etapa del análisis. 3.5.5. Diagrama de Entidad Relación (DER) Un modelo de datos describe de una forma abstracta cómo se representan los datos, sea en una empresa, en un sistema de información o en un sistema de base de datos. María Laura Citón 45 Universidad de Mendoza
  50. 50. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Los DER son una herramienta para el modelado de datos de un sistema de información. Estos diagramas expresan entidades relevantes y sus inter-relaciones. Formalmente, son un lenguaje gráfico para describir conceptos. Informalmente, son simples dibujos o gráficos que (si se saben interpretar) describen la información que trata un sistema de información y el software que lo automatiza. Los DER se aplican en la etapa de Diseño. 3.5.6. ScrumWorks Permite llevar a cabo el seguimiento del proyecto. Es una herramienta de automatización de procesos ágiles que admite a los equipos auto- organizarse y aumentar la productividad. Esta herramienta, de acceso libre y fácil de utilizar, es una aplicación Web que permite compartir la información entre todo el equipo. Esta herramienta para la administración del proyecto permite: § Manejar dinámicamente el Backlog de Producto haciendo una estimación inicial del esfuerzo de cada requerimiento identificado hasta el momento. § Definir las tareas y arrastrarlas al Sprint apropiado, donde se irán re- estimando diariamente. § Observar un gráfico por cada Sprint que nos indica la velocidad con la que avanza el proyecto. María Laura Citón 46 Universidad de Mendoza
  51. 51. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Estos gráficos llamados “burndown” no sólo permiten observar el estado de avance del proyecto, sino también analizar sus comportamientos e ir aprendiendo para mejorar los Sprints que restan. 3.5.7. Burndown chart En Scrum se planifica y se mide el esfuerzo restante necesario para desarrollar el producto. Esta gráfica suele utilizarse en lugar de un diagrama de PERT debido a que el camino crítico en un desarrollo ágil cambia diariamente. Esto haría obsoleto el diagrama de PERT cada día. Es por esto que no es útil una herramienta que modele el camino crítico a partir de actividades. La solución es utilizar una técnica que permita medir la velocidad de desarrollo, para ello se utiliza el criterio del equipo a partir del cual se calcula diariamente el camino crítico. Esto permite recalcular el plan y la velocidad en que se realiza el trabajo. En función de esto el equipo puede trabajar para acelerar o desacelerar el trabajo para cumplir con la fecha de entrega. 3.5.8. Clarion 5.5 Herramienta capaz de crear programas de 32 bits para Windows 9x, NT, 2000, y XP y para la Internet / Intranet / Extranet desde un único código y con un diseñador de diccionario de datos integrado. Incluye drivers nativos a distintos formatos de bases de datos (Oracle, MS SQL, Informix, Btrieve, Pervasive SQ, ASCII, DOS/Basic, xBase) y bases de datos multi- usuarios propietarias (Clarion y Topspeed). María Laura Citón 47 Universidad de Mendoza
  52. 52. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad El generador de aplicaciones junto con una serie de Templates (plantillas) predefinidos y personalizables y las Clases ABC (Application Builder Class), trabajan para producir código OOP (Programación Orientada a Objetos) pre-testeado. La base de la productividad es el Lenguaje 4GL, que está específicamente creado para construir aplicaciones de negocios con bases de datos propias o centralizadas. Se puede acceder virtualmente a cualquier tipo de datos a través de una combinación de ODBC/ADO y los drivers nativos de las bases. María Laura Citón 48 Universidad de Mendoza
  53. 53. TERCERA PARTE DESARROLLO DE INGENIERÍA
  54. 54. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 4. PROYECTO TRAZABILIDAD 4.1. PLANIFICACION INICIAL 4.1.1. Solicitud del proyecto El presente proyecto surge de una solicitud realizada por un productor de uva y propietario de tres fincas ubicadas en el departamento de Lavalle, quien ha pedido la construcción de un Software de Trazabilidad que le facilite la tarea de registración de todas las operaciones realizadas durante el proceso de producción de cada una de sus propiedades, que permita optimizar el manejo de información en el campo y demostrar que se cumple con la trazabilidad. Como todo cliente, y es lógico que así sea, de las dos primeras preguntas de las cuales espera obtener respuesta son: ¿Para cuándo va a estar listo? ¿Cuánto va a costar? Para dar respuesta a ellas se decidió tener tres entrevistas con el potencial cliente con el objetivo de comprender el porqué de la solicitud, determinar más en detalle sus necesidades, y conocer su situación actual, entonces, a partir de ello, elaborar la propuesta comercial. 4.1.2. El porqué de la solicitud del proyecto La solicitud del proyecto de desarrollar un Software de Trazabilidad para la producción de uva nace a partir de las amenazas que han surgido en el María Laura Citón 50 Universidad de Mendoza
  55. 55. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad mundo en materia de seguridad que han llevado a EE.UU. y a la Unión Europea (UE) a adoptar severas medidas en los procedimientos de importación de productos, especialmente los alimentos para uso humano y animal. La situación que se presenta en la actualidad parte de un principio general de prohibición que establece que no se comercializarán alimentos que no sean seguros, que por definición reglamentaria comprende tanto aquellos que sean nocivos para la salud, como los que no sean aptos para el consumo humano. En el sector agroalimentario la calidad debe constituir, ante todo, una garantía de protección de la salud humana y, en consecuencia, este aspecto representa hoy el núcleo alrededor del cual se establecen las exigencias para la producción y la comercialización de los alimentos. Este problema viene a ser asistido por las normas de calidad en general y por la trazabilidad en particular. El 1º de Mayo de 2005 entró en vigencia la normativa para la comercialización de productos con la Unión Europea, Reglamento (CE) N° 178/2002 que se refiere específicamente a la trazabilidad en la producción. La trazabilidad es un hecho, la UE la ha convertido en un requisito y contempla distintos procedimientos a seguir. Inclusive, podemos esperar que otros países le sigan en su requerimiento. La previsión es que la nueva norma afecta a las etapas de producción, transformación, elaboración, distribución y comercialización alimentaria. María Laura Citón 51 Universidad de Mendoza
  56. 56. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Poco antes de su aplicabilidad, surgen las dudas sobre si todos los operadores presentes a lo largo de la cadena alimentaria están preparados para asumir las obligaciones que provienen de la normativa comunitaria. La preocupación se ha instalado en algunos sectores, especialmente en la producción primaria, que en algunos supuestos concretos ya se han manifestado como incapaces de cumplimentarlos en este breve espacio de tiempo, conocedores de la responsabilidad que asumen cuando el resto de los eslabones ya han dispuesto medidas para adaptarse a estos nuevos requisitos normativos. La trazabilidad, sin embargo, no es la única causa de esta situación de seguridad, aunque sí es un elemento que contribuye decisivamente y una herramienta útil para los productores. Las empresas del sector frutihortícola tienen un importante reto ante los consumidores y ante sí mismos: pueden contemplar la nueva legislación como un problema o como una oportunidad para lograr que sus productos sean mejor valorados y compitan con ciertas ventajas con productos de otros países que no aplican los estrictos criterios de los que se ha dotado la UE. Si, además, la aplicación de la trazabilidad permite acceder a mercados tradicionalmente exigentes como EEUU, las empresas empezarán a obtener beneficios tangibles y más participación en el mercado. 4.1.3. Evaluación de la información deseada Una vez comprendido el porqué de la solicitud del proyecto, se determinan las necesidades del cliente. Es decir, se establecen los aspectos que debe abarcar el Software de Trazabilidad. María Laura Citón 52 Universidad de Mendoza
  57. 57. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad No obstante, previo al desarrollo del producto, se hará una pequeña investigación sobre la producción de uva y vino, sus exportaciones a países de la Unión Europea; así como también, las normativas vigentes referentes a la trazabilidad, la importancia de la misma y alternativas para aplicarla. Esta investigación será el primer entregable que se dará al cliente. Con respecto al Software de Trazabilidad debe permitir conocer la historia de la uva a través del ciclo de producción; identificar el cómo, quién, cuándo, dónde y por qué se hizo en cualquier etapa de la cadena agrícola. Debe poder identificar los productos, hasta el momento en que el operador realice su entrega al siguiente eslabón en la cadena. El software deberá mantener un registro de las propiedades rurales, identificando para cada una de ellas sus titulares y/o productores, y para cada viñedo la distribución de sus cuarteles, origen de los mismos, el tipo de conducción y las variedades de uva que contempla. Administrar datos de titulares y/o productores, trabajadores, proveedores y bodegas. Administrar las maquinarias y camiones, con sus revisiones técnicas y seguros de transportes correspondientes. María Laura Citón 53 Universidad de Mendoza
  58. 58. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Permitir predefinir las tareas y tratamientos agrícolas habituales a fin de simplificar su identificación en el momento de su aplicación e indicando, para cada labor realizada, los insumos, agroquímicos, dosis y métodos de aplicación utilizados. En todos los casos debe identificarse un responsable, que se encargue tanto de la operación como de su respectivo registro. Registrar en forma rápida y sencilla cada uno de los partes de las tareas agrícolas que se realizan en la finca, que contienen información como: tarea que se realizó, duración, trabajador, máquinas y agroquímicos utilizados. Registrar en forma rápida y sencilla cada uno de los remitos de cosecha que se efectúan durante la vendimia, que contienen información como: finca, cuartel, cosechador, kilos, camión, bodega destino, etc. Permitir la captura automática del peso de las cajas o bins proveniente de la báscula. El sistema debe dar la opción de que la captura sea automática o manual. Ver la trazabilidad de los productos en ambos sentidos. Realizar consultas sobre la cosecha de uva y las auditorias. Administrar usuarios. Permitir diferentes niveles de acceso al sistema. María Laura Citón 54 Universidad de Mendoza
  59. 59. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad A esta altura ya se cuenta con una noción general de lo que el software debe realizar, por lo tanto resta conocer realmente cual es la situación actual del cliente y de sus propiedades. 4.1.4. Situación actual A continuación se describe la situación actual ante la cual se encuentra el cliente, es decir, la forma en la que se manejan sus propiedades rurales hasta el momento. En dichas propiedades, nunca se ha contado con un sistema informático, todo queda asentado en papel. Se lleva un registro completo y detallado del personal. Pero, aparte de ello, son muy pocas la tareas de campo que se registran, quedando éstas prácticamente reducidas a la etapa de la vendimia, donde se deja asentada una información mínima de lo que se ha cosechado. Dicha registración, que se realiza manualmente, queda en planillas y también en lo que es denominado el Libro de Campo. Esta manera de operar imposibilita llevar un control de las actividades realizadas durante todo el proceso de producción y manifiesta la incapacidad de contar con información rápida y precisa en el momento que se solicite. Debido a la época del año en la que nos encontramos (Octubre de 2005), muy cercanos a la próxima cosecha; el cliente nos ha pedido que el software esté listo para Marzo de 2006. Por lo tanto contamos con 6 María Laura Citón 55 Universidad de Mendoza
  60. 60. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad meses (Octubre – Marzo) para entregar el software de Trazabilidad terminado. 4.1.5. Estructura de División del Trabajo (EDT) Al inicio no se cuenta con mucha información o entendimiento de todos los requisitos del proyecto para desarrollar un EDT completo. Por lo tanto, desarrollaremos un EDT de alto nivel que permita obtener una visión general del alcance del proyecto. Producto Investigación Trazabilidad Datos generales Datos Entidades Parte agrario Comprobantes Software de Remito de cosecha Trazabilidad Cosecha Consultas Trazabilidad Auditorias Usuarios Administrador Acciones de auditoria María Laura Citón 56 Universidad de Mendoza
  61. 61. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 4.1.6. Conformación del equipo humano A la hora de elaborar un presupuesto y calcular la fecha de entrega del producto final debemos conocer de cuanta gente se dispone para trabajar en el proyecto. El equipo de trabajo para llevar a cabo el Software de Trazabilidad estará conformado solamente por dos personas que cumplen los diferentes roles. Uno de los miembros del equipo (quien les escribe) hará las veces de programador y Scrum Master. El otro miembro del equipo efectuará los roles de Product Owner, Cliente y Usuario final del sistema. Por lo tanto, hay a una sola persona disponible para trabajar en el desarrollo del software. El tiempo que se dedicará al mismo es una jornada de medio día, 20 horas semanales aproximadamente. 4.1.7. Estimación del plazo de entrega y precio En base al EDT se arma una tabla para obtener una primera estimación general del proyecto, y poder así determinar su duración y precio. Como podemos observar en la primera columna se listan las principales actividades del proyecto y se establecen para cada una de ellas su esfuerzo expresado en horas que demanda aproximadamente realizar cada actividad. María Laura Citón 57 Universidad de Mendoza
  62. 62. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Actividades Cantidad Esfuerzo (hs) Esfuerzo (hs) Unitario Subtotal Planificación 6 4 24 Investigación Producto 1 32 32 Investigación Trazabilidad 1 32 32 ABM de Datos generales 18 8 144 ABM de Entidades 5 12 60 Comprobante Parte Agrario 2 12 24 Comprob. Remito de Cosecha 2 12 24 Consulta de Cosecha 2 16 32 Consulta de Trazabilidad 2 16 32 Consulta de Auditoria 1 20 20 Implementación 5 8 40 Total (horas) 464 Vale la pena aclarar que para estimar las actividades se tuvo en cuenta que cada una de ellas pasa por las etapas de análisis, diseño, construcción y prueba. Las etapas de planificación e implementación se realizan a nivel de Sprint al inicio y al final respectivamente. Bien, ya sabemos que el proyecto completo demandará una duración estimada de 464 horas, 64 para la etapa de investigación y 400 para el desarrollo del software. Ahora falta conocer cual será nuestro costo de desarrollo por hora y así, poder calcular el precio que se pasará en el presupuesto. María Laura Citón 58 Universidad de Mendoza
  63. 63. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Algunas consideraciones a tener en cuenta son que el software será desarrollado en forma particular, por lo tanto no se incurrirán en gastos del tipo alquiler de oficina, impuestos, traslados diarios, etc. El costo de desarrollo por hora se calcula en base a: § Consumo eléctrico por hora: $0,038 § Consumo de Internet por hora: $0,153 § Desgaste del equipo: $0,211 Llegamos a la conclusión de que nuestro costo por hora de desarrollo es de $0,40; lo que al mes equivale a $32,00 (con base en 80 hs mensuales). Otro gasto que debe tenerse en cuenta es el traslado cada vez que se visiten las propiedades rurales, ubicadas aproximadamente a 70 km de la Ciudad de Mendoza. Se supone que durante los 6 meses de duración del proyecto se realizarán 8 viajes. Y que el costo de cada uno de ellos será de $53,00. En el cálculo te tuvo en cuenta, además del combustible, desgaste del vehículo, seguro, etc. Podemos decir entonces que la suma de los gastos durante los 6 meses de duración del proyecto ascenderá a $456,00 aproximadamente. María Laura Citón 59 Universidad de Mendoza
  64. 64. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 4.1.8. Gestión de riesgo Todos los proyectos, sin excepción, tienen implícito algún tipo de riesgo. Y éste no tiene relación alguna con el tamaño del proyecto. La administración del riesgo es necesaria y consiste en analizarlos y controlarlos de manera efectiva. Para ello, se identifican los riesgos potenciales, se valora su probabilidad de ocurrencia y su impacto y se establece una prioridad según su importancia. Los criterios de puntuación de riesgos que se han definido para la probabilidad e impacto son los siguientes: Muy bajo (1); Bajo (2); Medio (3); Alto (4); Muy alto (5). Identificación. Análisis cualitativo y cuantitativo del riesgo Riesgo Probabilidad Impacto Puntaje Prioridad Cliente no comprometido Media Alto 12 2º Insatisfacción del cliente Baja Muy Alto 10 3º Falta de comunicación (cliente) Media Alto 12 2º Estimación del tamaño baja Media Alto 12 2º Cambio en el alcance Alta Media 12 2º Fecha de entrega ajustada Muy alta Media 15 1º Falta de experiencia técnica y de Alta Baja 8 4º proyectos Se ha definido la siguiente política para la selección de estrategias: Puntaje del riesgo Estrategia 15 - 25 Evitar 6 - 14 Reducir 3-5 Aceptar activamente 1-2 Aceptar pasivamente Una vez que los riesgos han sido identificados, calculados y priorizados, se concibe un plan de respuesta para dichos riesgos. María Laura Citón 60 Universidad de Mendoza
  65. 65. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Plan de respuesta al riesgo Riesgo Estrategia Acción Fecha de entrega ajustada Evitar Renegociar alcance Firmar los acuerdos de reuniones, planificación y aceptación de requerimientos. Fijar un Cliente no comprometido Reducir responsable del proyecto por parte del cliente. Fijar un cronograma de reuniones. Fijar un responsable del proyecto Falta de comunicación con el Reducir por parte del cliente. Fijar un cliente cronograma de reuniones. Hacer re-estimar el proyecto a un Estimación del tamaño baja Reducir colega. Especificación detallada y firmada Cambio en el alcance Reducir por el cliente. Aumentar la comunicación. Insatisfacción del cliente Reducir Desarrollar la relación. Tomar capacitaciones sobre la Falta de experiencia técnica y de administración de proyectos. Reducir proyectos Consultar a profesionales del medio. Este será nuestro plan y las acciones que deberemos tomar para atenuar los riesgos identificados. 4.1.9. Propuesta comercial Con toda la información recaudada y analizada hasta el momento se elabora la propuesta comercial que se entrega a nuestro posible futuro cliente. La misma se presenta en el Anexo A de esta obra. En resumen, el presupuesto arrojó los siguientes valores: § Precio por hora: $25,00.- § Precio total: $11.600,00.- María Laura Citón 61 Universidad de Mendoza
  66. 66. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 4.2. HERRAMIENTAS EXISTENTES EN EL MERCADO En el presente apartado se exponen las características más importantes de algunas de las herramientas que actualmente se encuentran en el mercado, para ofrecerlas también como una alternativa. Software: KontrolFrux - Empresa: Arkios (Argentina) • Captura en tiempo real. Con colectoras de datos portátiles se registran todos los movimientos de mercadería en la planta. • Brinda información en tiempo real sobre producción, recursos, controles de calidad, y analiza la integración del negocio desde las unidades productivas hasta la llegada a destino del producto. • Mediante la utilización de códigos de barra y lectores láser, se logra tener la trazabilidad por unidad productiva. • Parametrizable para lograr la integración con otros sistemas, tales como los ERP, u otros desarrollos específicos de la empresa. • Consulta en línea. • Precio: $5.000 por cada lugar físico donde se instale el sistema. Software: e-FLEXWARE Bodegas - Empresa: BEJERMAN (Argentina) • Administra el trabajo realizado en la viña identificando y asociando los elementos que intervienen en cada tarea. • Efectúa un seguimiento estricto de la maduración de la uva. María Laura Citón 62 Universidad de Mendoza
  67. 67. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad • Permite efectuar comparaciones entre diferentes años. • Refleja los ingresos a la Bodega indicando para caja viaje de uva su procedencia. • El módulo de Producción es uno más que se puede integrar al Sistema e-Flexware ERP, es decir no es un módulo que pueda venderse en forma independiente. • Para un Sistema de gestión monousuario, hay que pensar en una idea de inversión de aproximadamente $10.000. Software: Packing - Empresa: COMPUAGRO (Chile) • Software desarrollado para el control de producción, en línea (tiempo real), donde la información es minuto a minuto y detallada. • Control total de Trazabilidad (Caja, Pallet, Bins). • Control de inventarios de materiales e integración con Agro2000 para el pago de remuneraciones de acuerdo a la producción del día. • Herramienta que le permite programar sus embarques, controlando el cumplimiento del instructivo (el numero de pallet especifico). • Emite los informes necesarios para las inspecciones SAG y otros. • Etiquetado de cajas con la información que requiera. • Cierre de proceso por productor o viñedo. María Laura Citón 63 Universidad de Mendoza
  68. 68. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad • Precio: $4.500 por cada lugar físico donde se instale el sistema. Hay que tener en cuenta que a todos los sistemas que hagan captura en tiempo real, al importe del software hay que sumarle la inversión en la compra del equipamiento, colectores de datos, etc. para poder llevarla a cabo. Luego de haberse realizado un análisis sobre dichas herramientas, se llega a la conclusión de que todas ellas están orientadas a satisfacer las necesidades de grandes empresas. Pero la realidad es que existen más empresas pequeñas que grandes, y las soluciones hasta ahora presentadas están dirigidas a la parte superior de la pirámide. Una vez comparadas estas alternativas con nuestro presupuesto, el cliente decide aceptar la propuesta comercial por las siguientes razones: ü Desea tener su propio software, elaborado a medida para él. Considera que las alternativas existentes no se adaptan a lo que necesita. ü Quiere tener un software sencillo y fácil de manejar (solución intermedia). ü No quiere correr el riesgo de que se conozcan sus datos. María Laura Citón 64 Universidad de Mendoza
  69. 69. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad 4.3. COMENZANDO CON SCRUM A esta altura nos encontramos en condiciones de comenzar con el desarrollo del proyecto utilizando Scrum. El primer paso es comenzar a armar el Backlog de Producto. Inicialmente colocamos en él los requerimientos de la etapa de investigación, que será la primera que llevaremos a cabo; luego colocamos los requerimientos que fueron identificados a partir de los casos de uso en la planificación inicial del proyecto (que forma parte del análisis) y que luego fueron priorizados por el cliente. Como se observa en el siguiente gráfico (leer de abajo hacia arriba), el Backlog contiene inicialmente todos los requerimientos definidos hasta el momento estimados en horas de esfuerzo. María Laura Citón 65 Universidad de Mendoza
  70. 70. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Backlog del producto Si bien toda la gestión del proyecto se lleva a cabo con ScrumWorks, tanto el Backlog de Producto como los Backlogs de Sprints son dinámicos. Los requerimientos colocados en el Backlog de Producto se van pasando a los Backlogs de Sprints y las tareas detalladas en éstos se María Laura Citón 66 Universidad de Mendoza
  71. 71. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad re-estiman diariamente. Por lo tanto, se irán presentando de esta manera las variaciones del Backlog de Producto y de los Backlogs de Sprints. 4.3.1. Primer Sprint Planificación Objetivo: El objetivo del primer Sprint es realizar la investigación sobre la necesidad y la importancia de la trazabilidad en la producción agraria, conocer el Reglamento que la define y también el producto sobre el que se aplicará, más específicamente la producción de uva. Alcance: El alcance abarca el módulo de Investigación previo al desarrollo del software. Como se puede observar en el siguiente gráfico se presenta el primer Sprint con sus tareas definidas y estimadas en horas, vale aclarar que es la estimación inicial y que este es el único de tres semanas; los Sprints restantes serán de 4 semanas. Como desarrollo de este primer Sprint se presenta el Anexo B. En el cual se detalla el informe realizado que es el primer entregable del cliente. María Laura Citón 67 Universidad de Mendoza
  72. 72. Método Ágil Scrum Aplicado al desarrollo de un software de Trazabilidad Backlog de Sprint Burndown chart María Laura Citón 68 Universidad de Mendoza

×