Sistema de información para administrar fincas productoras de café mediante el método de desarrollo SCRUM

Ferley Medina Rojas
[email protected]

Irlesa Indira Sánchez Medina
[email protected]

John Maicol Núñez S.
[email protected]

Jaime Malqui Cabrera Medina
[email protected]

Facultad de Ingeniería Universidad
Cooperativa de Colombia Neiva, Huila

Abstract—The SCRUM method sets the framework focused on creating operating increases the software through iterations, customer participation in the life cycle of software, optimized functionality to the system on less documentation, flexibility to change the features, services and restrictions operation (user stories)

Keywords—Software life cycle; framework; method SCRUM; Software.

Resumen—El método SCRUM establece el marco de trabajo enfocado en crear incrementos operativos al software a través de iteraciones, participación del cliente en el ciclo de vida del software, optimizar las funcionalidades al sistema sobre menos documentación, flexibilidad al cambio de las características, servicios y restricciones de operación (historias de usuario).

Palabras claves—ciclo de vida del software; marco de trabajo; método SCRUM, software.

I. INTRODUCCION

SCRUM es una metodología de investigación integrada con un equipo estructurado por roles [1]. El dueño del producto es el encargado de gestionar la pila del producto con las características, servicios y restricciones de operación del sistema (historias de usuario), el maestro SCRUM guía al equipo en la aplicación de las prácticas y reglas que plantea el método, y el equipo de desarrollo es el encargado de crear las funcionalidades al sistema [2]. El equipo interactúa para adoptar el marco de trabajo del método SCRUM [3], que tiene el enfoque de realizar incrementos funcionales a través de iteraciones que denomina como sprint [2]. Un sprint es un periodo de tiempo no mayor a 30 días y está constituido con artefactos (Pila de pendientes del sprint, gráfico de avances e incremento) y eventos (reunión de planificación, reunión diaria, reunión de revisión y reunión de retrospectiva) [4].

Actualmente los avances tecnológicos están vinculados en todos los procesos que desarrolla el ser humano en su diario vivir para mejorar la calidad de vida y agilizar las actividades. A pesar de esto hay agremiaciones como los cafeteros, donde se encuentran fincas que realizan sus labores de producción bajo certificaciones en procesos de calidad y ambiental, registran la información de forma escrita a través de libros contables, formatos o cuadernos. Mientras otros productores realizan esta actividad de administración de manera artesanal (no registran ninguna información), siendo imposible establecer las diferencias productivas, positivas o negativas. Actualmente los caficultores tienen dificultad en utilizar las herramientas tecnológicas existentes como AgroWin [5]. El cual está enfocado en administrar fincas con diferentes tipos de cultivos pero requiere que el usuario tenga conocimientos en las áreas contables y administrativas. También, existe la herramienta cafédinámico [6] desarrollada a través de hojas de cálculo con la finalidad de administrar exclusivamente fincas productoras de café, no establece políticas de seguridad y la información que almacena el caficultor es vulnerable a modificaciones por cualquier persona que tenga acceso al documento de Excel. Además, en algunas celdas no existe validación de datos, el cual hace que los informes y reportes no sean confiables. Cabe indicar que, en la vigencia del 2012, el semillero de investigación Lideres Innovadores de la Universidad Cooperativa de Colombia sede Neiva, investigó acerca de los procesos de producción en cultivos con café, con la finalidad de desarrollar un sistema de información amigable para facilitar la administración de una finca productora; al culminar el estudio, propone la arquitectura del sistema [7].

El presente artículo contiene un marco referencial de procesos, modelo, método y metodología de desarrollo de software. Además, la apropiación del método SCRUM.

II. MARCO REFERENCIAL

A. Procesos, modelo, método y metodologías de desarrollo de software.

Para realizar cualquier tipo de proyectos de ingeniería de software, es indispensable implementar los procesos [9] o ciclo de vida [10] de desarrollo.

La Comunicación es la interacción continúa con el cliente y usuario final, para concretar e identificar los servicios que requiere del sistema, las características que debe tener y las restricciones de operación.

La Planeación es la proyección del sistema de información a desarrollar, identificar los recursos o elementos necesarios, instaura un cronograma de actividades para las etapas de modelo, construcción y despliegue para realizar seguimientos y control a cada una de las tareas que se desarrollan en cada etapa, establecer las fechas de finalización y entrega del resultado.

El Modelado al sistema de información se realiza con base al conjunto de requerimientos establecidos en la fase de comunicación, se analiza cada uno de ellos para crear la arquitectura del sistema (componentes o módulos del sistema de información) [10], el diseño de la interfaz gráfica y la base de datos. Esta etapa permite crear una visión del software y su interacción con el usuario final.

La Construcción es la actividad donde se codifica el modelo establecido utilizando uno o más lenguajes de programación, durante este proceso, el programador realiza pruebas de defectos y depuración de código. Las pruebas le permite encontrar posibles fallas en el módulo que está construyendo y la depuración es corregir el fallo encontrado, posterior al desarrollo de cada componente, se realizan pruebas de integración, operatividad y confiabilidad por parte del equipo de pruebas, para comprobar si el sistema de información cumple con las características establecidas en las etapas de comunicación y modelado.

El Despliegue es una actividad compuesta por la evaluación e implementación del sistema de información por el usuario final. La evaluación, es una práctica que permite encontrar fallas o errores en el sistema no encontrados en la etapa de pruebas. Si un error o falla es encontrado, se realiza una retrospectiva para identificar el origen y realizar la respectiva corrección. Después de ser evaluado el sistema y no se encontró novedad alguna, indica que el software ya está listo para su uso. El mantenimiento es otra actividad asociada al despliegue, se enfoca a actualizar y realizar mejoras al sistema de información.

Con la necesidad de estructurar y organizar los procesos de desarrollo surgen los modelos [9] o paradigmas [10], que plantean y definen el marco de procesos para el desarrollo y el respectivo orden de ejecución, pero no especifica cómo debe realizar los procesos, que herramientas utilizar y quien interviene en cada uno de ellos [11], por consiguiente surgen los métodos que tienen como objetivo adoptar la estructura de un modelo para definir y organizar el marco de trabajo (conjunto de herramientas, eventos y tareas) para desarrollar las actividades planteadas en el paradigma. Además, un método se instaura a una metodología, cada una tiene un enfoque diferente y se fraccionan en tradicionales e agiles [12]. La metodología tradicional se caracteriza por la exigente planeación de todo el proyecto, la documentación, el seguimiento y control exhaustivo a cada uno de los procesos de desarrollo, el cliente debe tener claro en el inicio del proyecto todas los requerimientos del software debido a la carencia de adaptabilidad a cambios, también se identifican por la poca interacción con el cliente que solo se evidencia en las etapas de comunicación y despliegue. Mientras que la metodología de desarrollo ágil plantea al inicio del proyecto establecer un conjunto de características, servicios y restricciones de operación, realizar los procesos de planeación, modelado y construcción en interacciones. Cada iteración es un bloque de tiempo corto y tiene como objetivo realizar pequeños incrementos funcionales y operativos al software, finalizada cada iteración es entregado los avances al cliente para que realice la etapa de despliegue, las iteraciones se repiten hasta culminar con la totalidad de requisitos de usuario. La metodología propone que el cliente se integre al equipo de desarrollo en cada uno de los procesos que a su vez le permite identificar y descubrir nuevas características, servicios y restricciones de operación para orientar el producto a nuevas oportunidades.

La metodología ágil surge con la necesidad de romper el esquema tradicional de obtener la totalidad de requerimientos del sistema al inicio del proyecto, de desarrollar los procesos de modelo, construcción y despliegue en etapas diferentes e independientes, la poca participación del cliente en cada una de los ciclos de vida de desarrollo, de obtener la totalidad del producto y la atrofiada respuesta al cambio.

Cesar y Rubén [13] refieren: “las metodologías tradicionales se asimilan a un juego de parqués, en el cual se tiene en un inicio todas las fichas en la entrada y a continuación se siguen una serie de pasos con el fin de llevarlas al punto de salida -objetivo final-; si alguna de las fichas vuelve al punto de entrada tendrá que seguir nuevamente los pasos para llegar al final. Por el contrario, las metodologías ágiles se parecen más aun juego de ajedrez, donde constantemente hay que adaptarse a los cambios e ir cumpliendo pequeños objetivos en el transcurso del juego”.

B. Metodo SCRUM

SCRUM es un marco de desarrollo de software que pertenece a la metodología ágil y plantea integrar al cliente en los procesos o ciclo de vida del software, realizar incrementos funcionales en una serie de iteraciones llamadas sprint y adaptarse fácilmente al cambio en las características, servicios y restricciones de operación del sistema [9]. El método establece el marco de trabajo con los siguientes elementos:

Artefactos:

La pila del producto es el conjunto de características, servicios y restricciones de operación del sistema (historias de usuario) [10], cada uno asociados con una prioridad de realización, estimación de tiempo de ejecución y un identificador único.

La pila de pendientes del sprint son las historias de usuario que se pretende realizar en un sprint para crear nuevas características y servicios al sistema de información, cada historia se fragmenta en tareas, a cada una se le asigna el esfuerzo estimado en horas y el responsable de la ejecución. La pila de pendientes permite realizar seguimiento y control a cada una de las tareas programadas en un sprint [11].

El gráfico de avances permite visualizar el progreso de ejecución del conjunto de tareas que conforman la pila de pendientes del sprint. Para construir el gráfico es necesario conocer la duración del sprint en término de días que representa el eje X de la gráfica, el eje Y se representa con la sumatoria de horas estimadas para desarrollar las tareas propuestas en el sprint.

El incremento es el resultado que se obtiene de las tareas ejecutadas y finalizadas de la pila de pendientes cuando un sprint culmina, estos resultados son mejoras o nuevas características, servicios y restricciones de operación al sistema. Es importante que el incremento de software liberado al finalizar cada sprint, se encuentre testeado para asegurar la calidad y el buen funcionamiento.

Eventos:

La reunión de planificación del sprint se realiza antes de iniciar un sprint, la dinámica es definir que se va hacer, como se hace y cuál es el resultado; también se concreta la fecha (día, mes y año) de apertura y cierre del sprint, el objetivo del Sprint [6] e historias de usuario que se realizan para crear el incremento funcional. Es importante aclarar, que cada una de las historias de usuario que son ejecutados, deben estar referenciadas en la pila del producto.

Después de definir los elementos que conforman la pila de pendientes del sprint, se puntualiza la fecha, hora, lugar de la reunión del SCRUM diario y revisión del sprint.

La reunión SCRUM diario se realiza todos los días a la hora estipulada en la planificación del sprint y se recomienda que la duración no sea mayor de 15 minutos [2]. En la reunión se formalizan las tareas a realizar antes del próximo SCRUM diario, por lo tanto es necesario la pila de pendientes del sprint y el gráfico de avances.

La reunión de revisión se efectúa cuando un sprint finaliza, la dinámica es informar si el objetivo del sprint se cumplió, qué incremento funcional se realizó y cómo se hizo, se realizan ajustes a la pila de producto si el cliente requiere agregar nuevas historias de usuario o modificar las ya existentes. Al finalizar la reunión, el incremento es entregado al cliente para que realice las pruebas de operatividad y se programa la reunión de retrospectiva de sprint.

La reunión de retrospectiva del sprint se lleva a cabo posterior de la reunión de revisión y antes de la planificación de un nuevo sprint, la finalidad del evento es conocer e identificar las fortalezas y debilidades en las actividades que se desarrollaron en el sprint. El objetivo es implementar planes de mejoras para transformar las debilidades en fortalezas y optimizar el desarrollo del sistema de información.

Roles:

El método establece un equipo de trabajo con los roles; dueño del producto, SCRUM master y equipo de desarrollo [1] para efectuar los eventos y artefactos.

El dueño de producto representa al cliente y usuario final, tiene como responsabilidad gestionar la pila del producto con las Historias de usuario, optimizar el valor del producto y trabajo del equipo de desarrollo.

El maestro SCRUM es el responsable que el equipo comprenda y cumpla el marco de trabajo propuesto por el método, con sus respectivas reglas.

El equipo de desarrollo es el conjunto de profesionales que se encarga de realizar las actividades de análisis, arquitectura, diseño, desarrollo y pruebas para crear los incrementos funcionales al sistema de información en un sprint.

III. METODOLOGÍA

Se efectúan encuestas y entrevistas a 8 productores de café de la vereda la cumbre, ubicada en el municipio de Paicol - Huila (Colombia). Con base a la información que se obtiene, se evidencia la existencia de fincas cafeteras con certificaciones de calidad y cuidado al medio ambiente que registran en libros contables, formatos o cuadernos la información de contratación y pago de empleados, compra de insumos, valor del vehículo de transporte por sacar el café al punto de venta y el dinero que se obtiene al vender el producto. Estos registros permiten al productor realizar seguimiento, control e inspección en el desarrollo de cada uno de las labores de producción. Igualmente, efectuar reportes para identificar los costos, gastos y ganancias. El proceso es dispendioso para el caficultor, demanda tiempo y omiten registros o equivocaciones al referenciarlos en el momento de realizar las operaciones aritméticas.

Mediante la indagación de las herramientas tecnológicas existentes, se evidencia AgroWin [5]. Un software integrado con módulos para administrar fincas con diversos tipos de cultivos y realizar la contabilidad, pero hace difícil la interacción con usuarios que no estén familiarizados con las áreas mencionadas. Las ventajas: Integridad y seguridad de la información. Permite administrar diferentes tipos de cultivos; igualmente, realizar la planeación, control y seguimiento a cada una de las labores de producción con su respectiva mano de obra, insumos, materiales y materia prima. Facilita generar reportes de costos, gastos directos e indirectos de producción y balance general; además, efectuar reportes de trazabilidad en los cultivos. La desventaja: El usuario requiere de conocimientos contables y administrativos.

También, se encuentra una herramienta estructurada en hojas de cálculo denominada cafédinámico [6]. Esta se enfoca en administrar exclusivamente fincas productoras de café. Ventajas: Es una herramienta portable y puede utilizarse en cualquier dispositivo electrónico con soporte a hojas de cálculo. Además, facilita la interacción con los usuarios. Desventajas: No existen políticas de seguridad, cualquier persona que tenga acceso al documento de Excel puede visualizar, editar o eliminar información, debido a que no define usuarios, roles y privilegios. La validación de los datos en las celdas es nula y las ecuaciones se pueden alterar, como consecuencia los informes no son confiables.

visualizar, editar o eliminar información, debido a que no define usuarios, roles y privilegios. La validación de los datos en las celdas es nula y las ecuaciones se pueden alterar, como consecuencia los informes no son confiables. ¿El desarrollo de un sistema de información amigable que integre los términos utilizados en la producción de cultivos con café, facilitará y optimizará la administración en las fincas cafeteras?

IV. RESULTADOS

Durante el desarrollo del proyecto, se ha logrado obtener los siguientes avances parciales. Formatos para formalizar las historias de usuario y pila del producto, ver tabla 1 y 2.

Tabla 1. Formato Historias de Usuario.

Tabla 2. Formato Pila del producto.

Historias de usuario gestionadas, tomando como referencia la información que se obtuvo con las técnicas de recolección de información, ver tabla 3.

Tabla 3. Historia de usuario gestionada.

V. CONCLUSIONES

Los productores con certificación en las fincas, tienen la cultura de registrar la información que genera el conjunto de labores para la producción de café, los costos, gastos e ingresos por venta. Mientras los restantes no tienen esta cultura y desconocen la factibilidad de los cultivos.

El método de desarrollo SCRUM permite realizar entregas funcionales al sistema de información en periodos de tiempos no mayor a 30 días, interacción constantemente con el cliente en las etapas de desarrollo y se adapta fácilmente a la actualización de historias de usuario que se encuentran en la pila del producto.

REFERENCES

[1]Palacio, Juan (2015). Gestión de proyectos SCRUM Manager. Recuperado de http://www.scrummanager.net/files/gestion_proyectos_scrum_manager. pdf el 3 de febrero de 2016.

[2]Schwaber, Ken; Sutherland, Jeff. (2013). La Guía de SCRUM, Recuperado de http://www.scrumguides.org/docs/scrumguide/v1/scrum- guide-us.pdf el 4 abril de 2015.

[3]Kniberg, Henrik (2015). Scrum and XP from the Trenches: How We Do Scrum, 2nd edition. United States of America: C4Media.

[4]Alaimo, Diego Martín (2013). Proyectos ágiles con SCRUM: flexibilidad, aprendizaje, innovación y colaboración en contextos complejos. Buenos Aires: Ediciones Kleer.

[5]¿Qué es AgroWin?. Recuperado de http://www.contapyme.com/modulos-agrowin el 2 de mayo de 2015.

[6]Rendón, Juan Sebastián (2011), Sistema para la administración y gestión de las empresas cafeteras: cafedinamico, una herramienta para administrar la producción cafetera. recuperado de http://ribuc.ucp.edu.co:8080/jspui/bitstream/handle/10785/2419/CDPEA E407v1.pdf?sequence=1 el 9 de junio de 2015.

[7]Medina Rojas, Ferley; Ariztizábal, Juan David (2012). Sistema de información para la administración de una finca cafetera SIAFC. Laccei pp. 160 -16

[8]Pressman, Roger S. (2010). Ingeniería del software un enfoque práctico séptima edición. México D.F: McGraw Hill.

[9]Sommerville, Ian (2011). Ingeniería de software novena edición.México: Pearson.

[10]Cervantes Gómez, J. (2012). Taxonomía de los modelos y metodologías de desarrollo de software más utilizados. Universidades, No. 52, pp. 37- 47.

[11]Trigás Gallego, Manuel (2012), Metodología Scrum, Recuperado de http://openaccess.uoc.edu/webapps/o2/handle/10609/17885 el 10 de noviembre de 2015.

[12]Rodríguez, César; Dorado, Rubén (2015). ¿Por qué implementar SCRUM?. Revista ONTARE Vol. 3, núm. 1, pp. 125-144, 2015.

[13]Kendall, kenneth; Kendall, Julie (2011). Análisis y diseño de sistemas 8 edición. México: Pearson Educación.

[14]Pons, Claudia; Giandini, Roxana Silvia; Pérez, Gabriela (2010). Desarrollo de software dirigido por modelos Conceptos teóricos y su aplicación práctica. La plata: Editorial de la Universidad Nacional de La Plata (EDULP) / McGraw-Hill Educación.