Scrum ejemplo

download Scrum ejemplo

of 12

Transcript of Scrum ejemplo

  • 7/25/2019 Scrum ejemplo

    1/12

    MTODO GIL SCRUM, APLICADO A LA IMPLANTACIN DE UNSISTEMA INFORMTICO PARA EL PROCESO DE RECOLECCIN

    MASIVA DE INFORMACIN CON TECNOLOGA MVIL

    Klber Toapanta Chancusi1, Marco Vergara Ordoez

    2, Mauricio Campaa Ortega

    3

    1 ESCUELA POLITCNICA DEL EJERCITO, ESPE, [email protected]

    2 ESCUELA POLITCNICA DEL EJERCITO, ESPE, [email protected]

    3 ESCUELA POLITCNICA DEL EJERCITO, ESPE, [email protected]

    RESUMENEl mercado actual es altamente competitivo y cambiante. En ese contexto el desarrollo del Software

    busca bsicamente rapidez, calidad y reduccin de costos en la ejecucin de sus proyectos; para asumirestos retos es necesario tener agilidad y flexibilidad. Estas caractersticas se constituyen en el fundamentomismo de las metodologas agiles de desarrollo.

    En el mbito de las metodologas de desarrollo de software existe un gran nmero de alternativas y losresponsables de cada proyecto tienen la difcil tarea de seleccionar la alternativa que mejor se ajuste a susnecesidades y recursos.

    El presente estudio se enfoc en el anlisis del mtodo gil SCRUM para la implementacin de unametodologa aplicada al desarrollo de software para la recoleccin masiva de informacin con dispositivosmviles.

    La ejecucin y culminacin del proyecto permiti establecer una metodologa basada en Scrum,complementada con otros mtodos. El resultado es un producto de software funcional, en cuyo desarrollo sepudo demostrar la validez de Scrum aplicado a proyectos de software de mediano tamao, en entornoscambiantes, con grupos de trabajo pequeos que involucran permanentemente al dueo del producto.

    Palabras Clave:Scrum aplicado al desarrollo de software.

    ABSTRACTThe current market is very competitive and always is changing. For this reason the development of the

    Software is looking for speed, quality and cost reduction in the execution of their projects, to take on thesechallenges is necessary to have agility and flexibility, these characteristics constitute the basis for agile

    development methodologies.In the area of the methodologies used to address software development projects there are a lot of

    alternatives, and the responsible of each project must to select the best alternative according their needsand resources.

    The project is focused on the study of agile method SCRUM and implementation of a methodologyapplied to software development for the massive collection of information with mobile devices, usingSCRUM.

    The execution and completion of the project allowed to establish a methodology based in SCRUM,supplemented with other methods. The result is a functional software product, that helped to demonstrate theeffectiveness of SCRUM applied to software projects of medium size, in changing environments, with smallgroups of work constantly involving the product owner.

    KeyWords: Scrum applied to software development.

  • 7/25/2019 Scrum ejemplo

    2/12

    2

    1. INTRODUCCIN

    Los crecientes avances en la tecnologa de telefona mvil han permitido que los dispositivos mvilespasen de ser simples telfonos celulares a ser fuentes de entretenimiento, puntos de acceso a internet o porque no estaciones de trabajo mviles. Es precisamente la posibilidad de acceder al servicio de internet la

    que ha permitido a la empresa ASISTECOM Ca. Ltda. (Proveedor de soluciones tcnicas-operativas aempresas dedicadas a la prestacin de servicios bsicos y/o complementarios) la optimizacin de procesode recoleccin masiva de informacin IN SITU.

    En al caso presente, la informacin que es recolectada se refiere a las lecturas de los medidores deconsumo de energa elctrica en DMQ.

    El proceso se encontraba automatizado utilizando software de un proveedor externo, aplicacin que seejecutaba sobre la plataforma D.O.S; presentaba dificultades para su ejecucin en Windows XP y no eracompatible con versiones superiores de Windows (Vista, 7, futuras versiones).

    Los dispositivos mviles que se usaban en esta aplicacin eran de arquitectura cerrada, utilizadosnicamente para ese propsito especfico, lo que elevaba los costos de adquisicin y mantenimiento.

    La ejecucin del presente proyecto permiti el desarrollo de un sistema que se ejecuta sobre cualquierplataforma Windows con soporte para .NET Framework 4.0; utiliza dispositivos mviles modernos, no

    especficos, lo que permite aprovechar el acceso a internet disponible actualmente; esto facilita elintercambiar informacin con el servidor central de datos. Esta caracterstica fue el principal objetivoplanteado por el Product Owner.

    La implementacin y utilizacin del sistema desarrollado ha permitido optimizar el proceso, disminuirconsiderablemente los recursos utilizados y brindar un mejor servicio a sus clientes.

    Para el desarrollo de la aplicacin descrita, se plante el estudio y utilizacin del Mtodo gil Scrum,aplicado al desarrollo de software, lo cual constituye un aporte significativo en el estudio y utilizacin demetodologas giles de desarrollo como alternativa a las metodologas tradicionales.

    La ejecucin del proyecto permiti adems evidenciar las fortalezas y debilidades de la utilizacin deScrum en proyectos de desarrollo de software.

  • 7/25/2019 Scrum ejemplo

    3/12

    3

    2. METODOLOGA

    Es necesario aclarar que SCRUM, ms que una metodologa de desarrollo de software, es un mtodo degestin de proyectos, el cual puede adaptarse a cualquier tipo de proyecto y no nicamente a los dedesarrollo de software. Aplicada al desarrollo de software, est basado en el modelo de las metodologasgiles, incrementales, basadas en iteraciones y revisiones continuas. El objetivo principal es elevar almximo la productividad del equipo de desarrollo. Reduce al mximo las actividades no orientadas aproducir software funcional y produce resultados en periodos cortos de tiempo.

    Como mtodo, enfatiza valores y prcticas de gestin, sin pronunciarse sobre requerimientos, prcticasde desarrollo, implementacin y dems cuestiones tcnicas. Ms bien delega completamente al equipo laresponsabilidad de decidir la mejor manera de trabajar para ser lo ms productivos posibles. Es estacaracterstica hizo que, durante la ejecucin del proyecto se complementara la filosofa del mtodo Scrumcon herramientas, mtodos y procedimientos utilizados en otras metodologas, tanto giles comotradicionales.

    La Figura 1esquematiza el mtodo Scrum aplicado el proyecto de recoleccin masiva de informacin

    (R.M.I.).

    Modeladodelnegocio

    Requisitos

    Anlisis ydiseo

    Implementacin

    Pruebas/Despliegue

  • 7/25/2019 Scrum ejemplo

    4/12

    4

    La Figura 2 detalla los objetivos planteados en cada Sprint desarrollado durante la ejecucin del proyectoR.M.I.

    Sprint 2

    Mdulo de Gestin

    Sprint 1

    Mdulo de Administracin

    Sprint 3

    Aplicacin Mvil

    Sprint 4

    Sincronizacin en Lnea

    Backlog

    Producto

    Backlog Sprint1

    Backlog Sprint2

    Backlog Sprint3

    Backlog Sprint4

    Sprint 0

    Planificacin Inicial

    Planificacin InicialModelado del NegocioRequisitos

    Anlisis y Diseo

    Mdulo GestinAdmin. de perfilesAdmin. de planes de trabajoAsignacin lecturasSincronizacin

    Sincronizacin en lneaServicio WCFSincronizacin

    Mdulo Aplicacin MvilControl AccesoMantenimientoLecturas asignadasLecturas excedentes

    Mdulo administracinAdministracin de SeguridadAdministracin de UsuariosAdministracin de equiposAdministracin Perfiles

    Figura 2 Sprints del proyecto de R.M.I

  • 7/25/2019 Scrum ejemplo

    5/12

    5

    2.2 Fases

    Cada iteracin o Sprint del proyecto puede entenderse como un pequeo proyecto individual; en cadaiteracin se repite un proceso de trabajo similar (iterativo) para proporcionar un resultado completo sobre elproducto final, as el Product Owner obtiene los beneficios del proyecto de forma incremental.

    La ejecucin de cada Sprint del proyecto puede dividirse en 5 fases, similares al ciclo de vida del modeloen cascada, como se muestra en la Figura 3.

    Modelado delnegocio

    Requisitos

    Anlisis y diseo

    Implementacin

    Pruebas/Despliegue

    Figura 3 Fases de un Sprint del proyecto de R.M.I.

    2.2.1 Modelado del negocio

    El modelado del negocio tiene como objetivo el comprender y describir de forma simplificada la realidaddel negocio.

    Esta fase se la llevo a cabo principalmente durante el Sprint 0, el cual tena como objetivo analizar elnegocio, los requerimientos, plantear una arquitectura base y planificar en forma macro el trabajo a realizaren los Sprints 1,2 ,3 y 4.

    Durante el desarrollo de los Sprints planificados, se realizaron afinamientos especficos a los objetivos decada Sprint.

    2.2.2 Requisitos

    Esta fase tiene como propsito especificar las funcionalidades que sern implementadas durante elSprint.

    En el Sprint 0 se especificaron las funcionalidades de toda la aplicacin, mientras que en cada Sprint seanaliz de forma detallas los requerimientos especficos, segn los objetivos planteados.

    2.2.3 Anlisis y diseo

    El anlisis intenta descubrir qu es lo que realmente se necesita, para llegar a una comprensinadecuada de los requerimientos (Qu hacer?). El diseo representa las caractersticas que permitirn laimplementacin de los requerimientos en forma efectiva (Cmo hacerlo?).

    Respecto del diseo, en el Sprint 0 se plante una arquitectura candidata, la misma que fue ratificada o

    modificada, segn el anlisis de los requerimientos a implementar en cada Sprint.

  • 7/25/2019 Scrum ejemplo

    6/12

    6

    2.2.4 Implementacin

    En esta etapa, el equipo de desarrollo implementa las funcionalidades necesarias, de acuerdo a lasespecificaciones analizadas y segn el diseo planteado.

    Esta etapa fue pasada por alto en el Sprint 0, pues el objetivo de este Sprint, fue el de analizar yplanificar el proyecto como tal. En los Sprints 1, 2, 3 y 4 el resultado de esta etapa fue el incremento defuncionalidades en una versin estable (utilizable) del sistema.

    2.2.5 Pruebas / Despliegue

    La etapa de pruebas tiene como objetivo garantizar el correcto funcionamiento de las funcionalidadesimplementadas.

    Durante la ejecucin del proyecto, la etapa de pruebas se la llevo a cabo tanto por los responsables de laimplementacin como de los usuarios del producto que formaban parte del Team del proyecto.

    Para que el usuario pueda realizar las pruebas, fue necesario realizar un despliegue o implantacin de laaplicacin en un entorno de testing, esto se llev a cabo con cada incremento de la aplicacin.

    3. DISEO E IMPLEMENTACIN

    Como resultado del anlisis y planificacin realizados en el Sprint0, se planific el desarrollo de laaplicacin en 4 Sprints, cada sprint con el objetivo de implementa un mdulo independiente.

    Sprint1: Mdulo Administracin

    Sprint2: Mdulo Gestin (Procesamiento de la informacin)

    Sprint3: Mdulo Gestin en campo (Aplicacin para dispositivos mviles)

    Sprint4: Sincronizacin en lnea.

    Las funcionalidades a implementar en cada Sprint fueron descritas utilizando historias de usuario

    priorizadas segn la importancia que estas tenan para el Product Owner. Posteriormente se analizaron lashistorias de usuario utilizando casos de uso y sus respectivas especificaciones.

    En base al anlisis realizado en el Sprint0 se plante un modelo Cliente Servidor basado en undesarrollo de N capas (Figura 4), arquitectura predominante para la construccin de software.

    Aplicacin Mvil

    Capa de Entidades

    Capa de presentacin

    GUI - Graphical User Interface

    Capa Lgica de Negocio

    BLL - Business Logic Layer

    Capa de Acceso a Datos L ocales

    DAL - Data Access Layer

    Servidor Central de Datos

    Capa de Datos

    Aplicacin Escritorio

    Capa de Acceso a Datos

    DAL - Data Access Layer

    Capa Lgica de Negocio

    BLL - Business Logic Layer

    Capa de EntidadesBEL - Business Entities

    Layer

    Capa de presentacin

    GUI - Graphical User Interface

    Figura 4 Diagrama Lgico Sistema R.M.I.

    La Figura 5 muestra el diagrama fsico de la aplicacin implementada.

  • 7/25/2019 Scrum ejemplo

    7/12

    7

    Figura 5 Diagrama Fsico - Sistema R.M.I.

    4. ENTREGABLES DEL PROYECTO

    A continuacin se indican y describen cada uno de los artefactos que se generaron durante la ejecucinde proyecto y que constituyen los entregables del mismo. Como se haba mencionado previamente,SCRUM no es una metodologa de Desarrollo de software, de forma que no existe una especificacin deartefactos a utilizar, aunque se utiliz modelos y procesos utilizados en otras metodologas como RUP y XP.

    Es preciso destacar que de acuerdo a la filosofa de RUP y de casi todos los procesos iterativos eincrementales, todos los artefactos son objeto de modificaciones a lo largo del proceso de desarrollo, y sloal trmino del proceso podramos tener una versin definitiva y completa de cada uno de ellos. Sinembargo, cada iteracin estaba orientada a conseguir un cierto grado de completitud y estabilidad de losartefactos.

    4.1 Modelo de Casos de Uso del Negocio

    Se model para cada Sprint las funciones del negocio vistas desde la perspectiva de los actoresexternos (Usuario Administrador, Usuario Lecturista, Usuario Supervisor).

  • 7/25/2019 Scrum ejemplo

    8/12

    8

    4.2 Especificacin de Casos de Uso

    De acuerdo a los modelos de casos de uso identificados para cada Sprint, se realiz una descripcindetallada del caso de uso, utilizando una plantilla de documento donde se incluyen: nombre, identificacin,descripcin, pre condicin, post condicin, excepciones y notas adicionales, como se muestra en la Figura

    6.

    Figura 6 Plantilla para especificacin de casos de uso

    4.3 Modelo de datos

    La informacin del sistema es soportada por una base de datos relacional, por tanto este modelodescribe la representacin lgica de los datos. Para expresar este modelo se utiliza un diagrama que

    permita la representacin de tablas, claves, etc.En cada Sprint se especific el modelo correspondiente al mdulo a implementar. La Figura 7 muestra elmodelo de datos del sistema para recoleccin masiva de informacin con tecnologa mvil .

  • 7/25/2019 Scrum ejemplo

    9/12

    9

    4.4 Modelo de Diseo

    En cada Sprint se especific mediante diagramas que permitan visualizar la interaccin entre losdiferentes componentes del sistema. La Figura 8 muestra como ejemplo, el diagrama de componentes parael mdulo de administracin, basada en la arquitectura de la aplicacin de escritorio descrita previamente

    en la Figura 4 Diagrama Lgico Sistema R.M.I.

  • 7/25/2019 Scrum ejemplo

    10/12

    10

    4.6 Checklist de Pruebas

    Para llevar un control del correcto funcionamiento de los componentes y las funcionalidadesimplementadas, se registr en archivos de Excel los casos de prueba, valores de entrada, resultadosesperados y resultados obtenidos.

    La Figura 10 muestra un ejemplo parcial del checklist de pruebas utilizado en el Sprint1- Mdulo deAdministracin.

    Figura 10 Parcial Checklist de pruebas - Sprint 1

    4.7 Producto

    Los archivos del producto fueron empaquetados y subidos a un repositorio compartido, conjuntamentecon los requisitos adicionales necesarios. El producto, a partir de la primera fase de Construccin delSprint1 es desarrollado incremental e iterativamente, obtenindose un nuevo release al final de cadaiteracin.

    Despus del primer release, solo fue necesario remplazar o agregar los archivos (*.DLL) al directorio deejecucin de la aplicacin.

    4.8 Manuales

    Sobre la versin final del producto, se gener el respectivo manual que permita al usuario la fcilinstalacin y utilizacin del software implementado.

    5. RESULTADOS

    La aplicacin del Mtodo gil SCRUM permiti la conclusin exitosa del proyecto de desarrollo desoftware para ASISTECOM Ca. Ltda. , empresa proveedora de soluciones tcnicas-operativas, a empresadedicadas a la prestacin de servicios bsicos y/o complementarios.

    El producto final de la ejecucin del proyecto utilizando SCRUM es el software instalado en un ambientede produccin, que es utilizado para la recoleccin masiva de informacin utilizando dispositivos mviles.

    En el Sprint0 se levanto una tabla de requerimientos funcionales y no funcionales de acuerdo a lo que elProduct Owner esperaba obtener del software a desarrollar, analizando estos requerimientos, se planificatender dichos requerimientos agrupados en tres mdulos (M. Administracin, M. Gestin, M. Gestin enCampo), cada uno en un Sprint y un Sprint adicional para implementar el tema de sincronizacin en lnea.La Tabla 1 resume los requerimientos especificados y los resultados obtenidos.

  • 7/25/2019 Scrum ejemplo

    11/12

    11

    Tabla 1 Resultados / Requerimientos

    Requerimiento Importanciaa(Product Owner)

    Objetivos planteados Resultados Obtenidos

    Mdulo de

    Administracin 700

    Proporcionar las funcionalidadesnecesarias para la administracinde recursos utilizados en elproceso.

    Implementado en el Sprint1, se cumpli con elobjetivo; adicionalmente se identific la necesidadde manejar perfiles de seguridad para controlar elacceso a la aplicacin, estos se plantearon comoobjetivo adicional del Sprint e inicialmente no fueposible implementarlos en el Sprint 1, pero seplantearon como tareas del Sprint2 y fueronimplementados exitosamente, sobrepasando lasexpectativas del Product Owner (P.O).

    Mdulo de

    Gestin800

    Implementar las funcionalidadesnecesarias para gestionarinformacin de entrada y salidadel proceso. Esto es cargar planesde trabajo, asignar rutas a

    lecturistas y establecer elesquema de transferencia deinformacin a los dispositivosmviles, a traes del puerto USB.

    Implementado en el Sprint2, se cumpli con elobjetivo. La manera en que se implementaron lasfuncionalidades identificadas satisficieron lasexpectativas del P.O. En este Sprint se incluyodentro del Backlog del Sprint las tareas pendientes

    del Sprint1.

    Mdulo de

    Gestin en

    Campo

    900

    Aplicacin para dispositivosmviles, con funcionalidad pararecoleccin y almacenamiento deinformacin gestionada en campocon dispositivos mviles.

    Implementado en el Sprint3, fue completadoexitosamente. Fue necesario realizar variaspruebas a nivel funcional, especialmente para quela aplicacin instalada en los dispositivos mviles,resultara intuitiva y de fcil manejo para losusuarios lecturistas.

    Sincronizacin

    en lnea 1000

    OBJETIVO PRINCIPAL, agilitar el

    proceso de sincronizacin dedatos, util izando un esquematransferencia de datos en lnea,mediante al acceso a internet delos dispositivos mviles.

    Implementado en el Sprint4, fue completadoexitosamente. Este era el punto de mayorimportancia para el P.O., puesto que unaimplementacin exitosa resultara en un ahorro

    considerable de recursos para la empresa. Laimplementacin no requiri de un esfuerzoexcesivo, esto debido a una correcta reutilizacinde componentes desarrollados previamente en elSprint2.

    Para el negocio, el presente trabajo derivo en la disminucin significativa de tiempos de ejecucin delproceso de recoleccin masiva de informacin con dispositivos mviles, de uno de sus principales clientesEmpresa Elctrica de Quito, esto como resultado de la implementacin de las funcionalidades desincronizacin en lnea.

    Otro resultado importante es el marco de trabajo establecido en Asistecom para el desarrollo de nuevasfuncionalidades del software desarrollado o para requerimientos de mantenimiento del mismo, utilizando lametodologa generada como resultado del presente trabajo (Metodologa Basada en el Mtodo SCRUM).

  • 7/25/2019 Scrum ejemplo

    12/12

    12

    6. CONCLUSIONES

    Siendo SCRUM un mtodo de gestin de proyectos en general, este est siendo utilizada conbastante xito en el rea del desarrollo de software. Los resultados obtenidos en la ejecucin delpresente proyecto, permiten evidenciar su validez, especialmente en proyectos pequeos ymedianos, con entornos cambiantes, grupos de trabajo pequeos que involucranpermanentemente al dueo del producto.

    Como metodologa de desarrollo, SCRUM deja algunos vacos, especialmente en lo referente alos artefactos o entregables a utilizar. Estos vacos metodolgicos fueron exitosamentecomplementados utilizando modelos de otras metodologas, especialmente R.U.P. y X.P.

    La comunicacin constante entre todos los implicados del proyecto se constituy en un pilarfundamental de la conclusin exitosa del mismo. Scrum indica que se deben realizar reunionesdiarias con los miembros del equipo; si bien esto no fue posible realizar, se procur mantenercomo mnimo una reunin semanal. Estas reuniones permitan evaluar continuamente losavances de las tareas planteadas para cada sprint, aclarar duras cuando estas se presentaba,

    replantear los tiempos asignados para el cumplimiento de tareas tanto de codificacin como depruebas y tomar los correctivos necesarios a tiempo.