METODOLOGÍA DESARROLLO DE SOFTWARE ... - Universidad de...
Transcript of METODOLOGÍA DESARROLLO DE SOFTWARE ... - Universidad de...
��������������� �
��������������������������� ���� ������
�������� ��� ��������������� � ������!�
METODOLOGÍA DESARROLLO DE SOFTWARE PARA PYMES DE RETAIL
TESIS PARA OPTAR AL GRADO DE MAGÍSTER EN TECNOLOGÍAS DE LA INFORMACIÓN
MARCO ANTONIO RIBÓ COLELLA
PROFESOR GUÍA: CECILIA BASTARRICA
MIEMBROS DE LA COMISIÓN:
LUIS GUERRERO BLANCO AGUSTÍN VILLENA MOYA
MARCELLO VISCONTI ZAMORA
SANTIAGO DE CHILE AGOSTO 2009
"
RESUMEN DE LA TESIS PARA OPTAR AL GRADO DE MAGÍSTER EN TECNOLOGÍAS DE LA INFORMACIÓN POR: MARCO ANTONIO RIBÓ COLELLA
PROF. GUIA: CECILIA BASTARRICA METODOLOGÍA DESARROLLO DE SOFTWARE PARA PYMES DE RETAIL
Esta tesis busca elaborar para una empresa PYME que construye software para la industria de RETAIL, una
metodología que permite definir un modelo de proceso para el desarrollo de software de calidad, como también
permita evaluar y demostrar que el proceso metodológico respalda el crecimiento organizacional.
FIDCOM tiene una perspectiva y apuesta de crecimiento para el mediano plazo focalizada en el mercado
Latinoamericano. Para ello ha diseñado un plan de expansión y éste debe estar soportado por productos de
calidad e innovadores. Sin embargo, se han detectado algunos problemas recurrentes en el proceso de
desarrollo de software, tales como: recursos limitados, mantenciones crecientes, desarrollos a última hora y
requisitos incumplidos.
Se elaboró entonces una metodología que permite contar con un proceso definido y de mejoramiento continuo
que guía a FIDCOM en la obtención de productos de calidad mediante un proceso de calidad, respaldando así
su crecimiento organizacional. Esta metodología está basada en las buenas prácticas de la industria y
estándares definidos, con el fin de aplicarla internamente. Para esto, se realizó la evaluación interna de las
capacidades del proceso de desarrollo a la luz de las prioridades de la industria de Retail, y se ha puesto en
marcha la metodología de desarrollo de software, potenciando las fortalezas y apoyando a FIDCOM en su
apuesta de crecimiento regional.
Se ha realizado una adaptación de la metodología UP, por tratarse de una metodología de desarrollo de
software orientada a conducir el proceso de desarrollo de forma eficaz, basada en un conjunto de buenas
prácticas probadas en la industria del software, y muchas de las cuales son conocidas dentro de FIDCOM.
El trabajo se inició con un diagnóstico de la empresa en general y un análisis de los procesos de implantación
de software de POS. También se realizó la implantación en FIDCOM y su posterior evaluación de resultados
obtenidos. La evaluación de resultados fue basada en el crecimiento organizacional y la mejora en calidad de
software. La medición del crecimiento organizacional se determina en base al crecimiento permanente obtenido
en: ventas, clientes, empleados, proyectos y productos. Adicionalmente, se demuestra que la percepción de la
obtención de productos de calidad por parte de los clientes ha mejorado en un periodo de 12 meses.
Por lo tanto, los resultados permiten comprobar que la metodología implantada resuelve los problemas
enunciados, permitiendo obtener productos de mejor calidad, como también se sustenta el crecimiento
organizacional planeado.
#
Dedicado a mi madre, María Mercedes Colella Rodríguez.
Por su soporte ilimitado y total en mi desarrollo personal.
Dedicado a mi compañera y madre de mis hijos,
Lorena Adriana Valenzuela Gambi.
Por su apoyo incondicional, absoluto y necesario en el cumplimiento de mis metas profesionales.
$
CONTENIDO
1 Introducción ...................................................................................................................................................7
2 Objetivos .........................................................................................................................................................8
2.1 Objetivo General ....................................................................................................................................8
2.2 Objetivos Específicos ...........................................................................................................................8
2.3 Procedimiento General de Trabajo ......................................................................................................8
2.3.1 Etapa de Recopilación y Análisis de Información ...............................................................................9
2.3.2 Etapa de Evaluación del Proceso de FIDCOM a la Luz de la Información ........................................9
2.3.3 Etapa de Propuesta de una Metodología ...........................................................................................9
2.3.4 Etapa de Evaluación de la Metodología .............................................................................................9
2.3.5 Etapa de Retroalimentación Cliente y Conclusiones ....................................................................... 10
3 Marco Conceptual ....................................................................................................................................... 11
3.1 Proceso Unificado de Desarrollo de Software ................................................................................ 11
3.1.1 Fase de Inicio en UP ........................................................................................................................ 11
3.1.2 Fase de Elaboración en UP ............................................................................................................. 11
3.1.3 Fase de Construcción en UP ........................................................................................................... 11
3.1.4 Fase de Transición en UP ............................................................................................................... 11
3.2 Organización de Disciplinas según UP ............................................................................................ 12
3.3 Marco de Desarrollo del UP .............................................................................................................. 13
3.4 Conceptos Claves en UP ................................................................................................................... 14
3.4.1 Iterativo e Incremental ..................................................................................................................... 14
3.4.2 Centrado en la Arquitectura ............................................................................................................. 15
3.4.3 Conducido por los Casos de Uso .................................................................................................... 15
3.4.4 Enfocado al Riesgo .......................................................................................................................... 16
3.5 Retail .................................................................................................................................................... 16
3.6 Software y Servicios para Retail ....................................................................................................... 16
3.7 Software de Calidad ........................................................................................................................... 17
3.8 FIDCOM ............................................................................................................................................... 17
%
4 Definición del Problema ............................................................................................................................. 19
4.1 Problema ............................................................................................................................................. 19
4.2 ¿Por qué UP es un buen Punto de Partida? .................................................................................... 20
4.3 ¿Por qué No usar UP tal cual? .......................................................................................................... 20
4.4 ¿Qué cosas de UP se mantienen tal y como están definidas en el modelo? .............................. 21
4.5 ¿Cuáles son las Adaptaciones Necesarias? ................................................................................... 21
4.5.1 Ámbito de Adaptación ...................................................................................................................... 22
4.5.2 Adaptaciones a las Fases de UP ..................................................................................................... 24
5 Metodología Desarrollo de Software para FIDCOM ................................................................................. 25
5.1 Descripción de Metodología para FIDCOM ..................................................................................... 25
5.2 Fases de Proyecto para FIDCOM ...................................................................................................... 26
6 Procedimiento General de implementación para FIDCOM ..................................................................... 29
6.1 Diagrama General ............................................................................................................................... 29
6.2 Descripción de actividades por Fases ............................................................................................. 31
7 Evaluación de la Propuesta Metodológica Aplicada para FIDCOM ....................................................... 33
7.1 Identificación de Variables ................................................................................................................ 33
7.2 Evaluación del Crecimiento Organizacional ................................................................................... 34
7.3 Evaluación de la Calidad de Software .............................................................................................. 35
7.3.1 El Cuestionario de Calidad de Software .......................................................................................... 35
7.3.2 Aplicación Cuestionario a Clientes .................................................................................................. 37
7.3.3 Análisis de Resultados del Cuestionario a Clientes ........................................................................ 39
7.4 Evaluación a la Resolución de Problemas Recurrentes en Desarrollo ........................................ 40
8 Conclusiones y Proyecciones ................................................................................................................... 41
8.1 Conclusiones ...................................................................................................................................... 41
8.1.1 Punto de Vista Conceptual .............................................................................................................. 41
8.1.2 Punto de Vista Personal .................................................................................................................. 41
8.1.3 Punto de Vista Metodológico ........................................................................................................... 42
8.1.4 Punto de Vista de Negocio .............................................................................................................. 42
&
8.2 Proyecciones ...................................................................................................................................... 42
8.3 Comentarios Finales .......................................................................................................................... 43
8.3.1 Condiciones de Implementación ...................................................................................................... 43
8.3.2 Riesgos a Considerar ...................................................................................................................... 43
8.3.3 Limitaciones Observadas ................................................................................................................. 44
9 Anexo 1 – Definición de Roles de Implementación ................................................................................. 45
10 Anexo 2 – Definición de Artefactos de Implementación ......................................................................... 46
11 Referencias .................................................................................................................................................. 48
'
Ilustraciones
Ilustración 3-1 Fases y Disciplinas según UP. ...................................................................................................... 12
Ilustración 3-2 Representación Proceso Iterativo e Incremental. .......................................................................... 14
Ilustración 5-1 Conceptualización Metodología para FIDCOM. ............................................................................ 25
Ilustración 6-1 Procedimiento General para FIDCOM ........................................................................................... 30
Tablas
Tabla 1 - Artefactos de UP y Evolución Temporal ................................................................................................ 13
Tabla 2 - Problemas Recurrentes en Desarrollo ................................................................................................... 19
Tabla 3 - Comparativo de UP y Metodología para FIDCOM ................................................................................. 22
Tabla 4 - Adaptaciones de UP para FIDCOM. ...................................................................................................... 24
Tabla 5 - Fases de Proyecto para FIDCOM .......................................................................................................... 26
Tabla 6 - Actividades por Fase .............................................................................................................................. 31
Tabla 7 - Definición y Análisis de Variables de Valor en FIDCOM........................................................................ 33
Tabla 8 - Evaluación del Crecimiento Organizacional en FIDCOM ...................................................................... 34
Tabla 9 - Cuestionario según atributos de Calidad de Software ........................................................................... 35
Tabla 10 - Resultados Aplicación del Cuestionario de Calidad a Clientes FIDCOM ............................................ 37
Tabla 11 - Roles de Implementación ..................................................................................................................... 45
Tabla 12 - Artefactos de Implementación .............................................................................................................. 46
(
1 Introducción FIDCOM es una empresa PYME líder en su rubro que desarrolla software y servicios en el ambiente de Retail.
Desarrolla software para Puntos de Venta, cuenta con un poco más de 10 años de experiencia y presencia en
el mercado, ventas por US$3,2 millones, 45 empleados y de los cuales 65% del personal se encuentra en las
áreas técnicas, un 20% en el área comercial y un 15% en Administración y Finanzas. Tiene una estructura muy
plana, 3 niveles jerárquicos (socios, gerentes y colaboradores). Su perspectiva y apuesta de crecimiento para
mediano plazo está focalizada en el mercado Latinoamericano. Para ello ha diseñado un plan de expansión y
este debe estar soportado por productos de calidad, innovadores y oportunos. La metodología de trabajo usada
para el desarrollo de software es no estructurada y flexible, soportada en el alto conocimiento y compromiso de
cada uno de sus integrantes en la organización.
En base a la recopilación de información, en la industria Retail, calidad de software se entiende como: gran
flexibilidad de los proveedores de abordar requerimientos muchas veces difusos, el nivel de conocimiento del
ámbito donde se desenvuelven, la entrega de soluciones sin defectos, la entrega de soluciones a tiempo, los
tiempos de respuesta de los servicios de soporte en el menor tiempo posible y la amplia capacidad de cobertura
horaria para sus demandas de servicios especializados.
FIDCOM se encuentra con algunos problemas recurrentes en el proceso de desarrollo de software, tales como:
recursos limitados, plazos sobrepasados, tiempos que no se cumplen, mantenciones crecientes, desarrollos a
última hora, requisitos ambiguos, incompletos, no definidos y no cumplidos. Esto es una fuente de conflicto
permanente en los Retailers, como también es fuente de insatisfacción de los integrantes de FIDCOM y
conflicto interno de los equipos de desarrollo.
FIDCOM no cuenta con una metodología de trabajo formalmente establecida. Se desea entonces desarrollar
una metodología que permita contar con un proceso definido y de mejoramiento continuo que guíe a FIDCOM
en la obtención de productos de calidad mediante un proceso de calidad.
Con respecto a la calidad en las diversas industrias y, también en la del Retail, existen varios determinantes que
contribuyen a la calidad de los productos y servicios de software, donde los orígenes posibles provienen de
distintos aspectos de metodología, procesos y/o personas. Los procesos tienen una incidencia significativa en la
calidad, y existe una alta correlación entre calidad de proceso y calidad de producto [6]. Por lo tanto, se puede
inferir que para mejorar el producto se debe mejorar el proceso. Al mejorar el proceso la empresa responde a la
necesidad de tener una guía para mejorar cada una de las etapas en el desarrollo y mantenimiento del
software, así como también los servicios asociados, permitiendo la entrega de soluciones sin defectos, a tiempo
y disminuyendo la dependencia de los recursos humanos.
Es por esto que en FIDCOM se realizó la evaluación interna de las capacidades del proceso de desarrollo a la
luz de las prioridades de la industria de Retail, y se puso en marcha una metodología de desarrollo de software
)
que solucionó los problemas encontrados, potenciando las fortalezas y apoyando a FIDCOM en su apuesta de
crecimiento a nivel regional.
Se ha realizado una adaptación de UP, por tratarse de una metodología de desarrollo de software orientada a
conducir el proceso de desarrollo de forma eficaz, basada en un conjunto de buenas prácticas probadas en la
industria del software, y muchas de las cuales son conocidas dentro de FIDCOM.
En FIDCOM se implantó un proyecto piloto usando la metodología definida. En él se necesitó contar con un
proceso de desarrollo de software adaptado a las necesidades de Retail, estandarizado, basado en las buenas
prácticas y de mejoramiento continuo. Luego, se sometió a evaluación los resultados en base al crecimiento
organizacional y el desarrollo de software de calidad.
2 Objetivos Los objetivos planteados para la presente tesis se dividen en: objetivo general y los objetivos específicos a cumplir, los cuales se describen en el plan definido a continuación.
2.1 Objetivo General • Elaborar una metodología fruto de adaptar el Proceso Unificado (UP) para el desarrollo de software de
calidad, con el fin de aplicarla en una Pequeña y Mediana Empresa que desarrolla software para la
industria de Retail, con el fin de mejorar la calidad de sus productos y apoyar su desarrollo
organizacional.
2.2 Objetivos Específicos • Formalizar la descripción de los procesos de desarrollo de software aplicados actualmente en FIDCOM.
• Elaborar un diagnóstico de la empresa FIDCOM y el proceso de desarrollo de software de POS en el
ambiente de Retail.
• Definir una adaptación de un proceso unificado de desarrollo de software, adaptado a la realidad
específica de FIDCOM e intentando mejorar los defectos identificados.
• Evaluar los nuevos procesos planteados a la luz de las necesidades, la misión de FIDCOM y los
clientes.
2.3 Procedimiento General de Trabajo El procedimiento general de trabajo definido principalmente para llevar a cabo el desarrollo de la presente tesis
está dividido en las siguientes seis etapas:
1. Etapa de recopilación y análisis de información
2. Etapa de evaluación del proceso de FIDCOM a la luz de la información
*
3. Etapa de adaptación de una metodología
4. Etapa de evaluación de la Metodología
5. Etapa de retroalimentación cliente y conclusiones
Cada una de las etapas mencionadas en el procedimiento general de trabajo se describe a continuación.
2.3.1 Etapa de Recopilación y Análisis de Información Esta etapa se fundamenta en la recopilación y revisión de información de UP a la luz de las prácticas habituales
de FIDCOM y las necesidades de Retail. Las actividades se realizan a través de cuestionarios, entrevistas y
bibliografía referente a procesos de desarrollo de software en FIDCOM, software y servicios en Retail y la
información referente a UP. Se recopila y analiza información de los siguientes temas:
a) UP
b) Software de Calidad en Retail
c) Prácticas de FIDCOM
El objetivo de esta etapa es contar con una base de información conceptual sólida para dar inicio a la
evaluación y adaptación de la información recopilada.
2.3.2 Etapa de Evaluación del Proceso de FIDCOM a la Luz de la Información Esta etapa se dedicará principalmente a la evaluación y revisión de la información recopilada en la etapa de
recopilación y análisis de información, necesaria para crear una base teórica que fundamente el proyecto.
El objetivo de esta etapa es tener identificados los conceptos, flujos de trabajo UP, roles, responsabilidades y
artefactos generados, y definir los procesos según lo hallado.
2.3.3 Etapa de Propuesta de una Metodología En esta etapa se define un proceso para FIDCOM, basado en UP, adaptado de acuerdo a las necesidades de
FIDCOM y las necesidades del ambiente de Retail. Se realiza la adaptación, agregando y modificando flujos y
artefactos de trabajo.
El objetivo es terminar la etapa de propuesta de una metodología y contar con una adaptación de UP que define
un modelo de proceso para el desarrollo de software de calidad en FIDCOM.
2.3.4 Etapa de Evaluación de la Metodología En esta etapa se entregarán los resultados de la evaluación efectuada en la organización sobre la estructura
propuesta en la etapa anterior y se concluirá en base a las adaptaciones realizadas, como también con los
resultados obtenidos. Esta etapa tiene como fundamento la evaluación del proyecto en realización y conclusión
de los beneficios encontrados.
"+
El objetivo de esta etapa de evaluación tiene como resultado la entrega de las conclusiones al modelo de
proceso en FIDCOM basado en la evaluación en un cliente específico.
2.3.5 Etapa de Retroalimentación Cliente y Conclusiones En esta etapa se realizará una evaluación de los resultados en un cliente donde se han desarrollado a lo menos
dos proyectos de software durante el periodo de tiempo de seis meses. Esta etapa tiene como fundamento la
evaluación del proyecto basado en información recopilada de FIDCOM y directamente desde un cliente.
El objetivo de esta etapa de retroalimentación del cliente tiene como resultado el desarrollo, evaluación de los
resultados y conclusiones del modelo en la implantación en un cliente de FIDCOM.
""
3 Marco Conceptual
3.1 Proceso Unificado de Desarrollo de Software La metodología de UP ([1], [4]) es un método iterativo de diseño de software que describe cómo desarrollar
software de forma eficaz, utilizando técnicas probadas en la industria. El Proceso Unificado de Desarrollo de
Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar
dirigido por casos de uso, centrado en la arquitectura, enfocado en el riesgo, y por ser iterativo e incremental.
El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible que puede ser
adaptado a organizaciones o proyectos específicos. El nombre Proceso Unificado se usa para describir el
proceso genérico que incluye aquellos elementos que son comunes a la mayoría de los refinamientos
existentes. Es una metodología orientada a conducir el proceso de desarrollo de software en sus aspectos
técnicos; los flujos y productos de trabajo de UP no incluyen la administración del proyecto. UP es una versión
libre y abierta del modelo propuesto por Jacobson, Booch y Rumbaugh [1].
UP divide el trabajo de desarrollo de software en cuatro fases: inicio, elaboración, construcción y transición, las
cuales se describen a continuación.
3.1.1 Fase de Inicio en UP En esta fase corresponde definir el negocio. Es la etapa donde se define la factibilidad del proyecto a realizar,
se representa el modelo de negocio, visión y metas del proyecto, se identifican actores, conceptos de dominio y
deseos de usuario. Adicionalmente se complementa con la definición de la arquitectura preliminar, y
estimaciones (imprecisas, preliminares) de plazos y costos. También se define la viabilidad del proyecto.
3.1.2 Fase de Elaboración en UP En la fase de elaboración se obtiene la visión refinada del proyecto a realizar, la implementación iterativa del
núcleo central de la aplicación, la resolución de los riesgos más altos, la identificación de nuevos requisitos y
nuevos alcances, y estimaciones más ajustadas. A esta altura existe la posibilidad de detener el proyecto por
complejidad técnica.
3.1.3 Fase de Construcción en UP La fase de construcción es la implementación iterativa del resto de los requisitos de menor riesgo y elementos
más sencillos. Es la evolución hasta convertirse en un producto listo, incluyendo todos los requisitos (100%),
para entregarse al Cliente. Al final de esta fase el sistema contiene todos los casos de uso que el cliente y la
dirección del proyecto han acordado. La mayoría de los casos de uso que no se desarrollaron en la fase
anterior se desarrollan en iteraciones, en grupos de requisitos o casos de uso durante esta fase.
3.1.4 Fase de Transición en UP Es el periodo donde el producto es completamente entregado al cliente para ser testeado y desplegado
(instalado).
"#
3.2 Organización de Disciplinas según UP El cuadro siguiente representa cada una de las disciplinas utilizadas en el proceso de desarrollo de software y
su nivel de participación en cada una de las fases definidas de UP [4].
Ilustración 3-1 Fases y Disciplinas según UP.
Las disciplinas identificadas son modelado de: negocios, requisitos, análisis, diseño, implementación y pruebas,
como también se identifican las disciplinas de apoyo, tales como: configuración y manejo de proyectos. Todas
estas disciplinas son representadas con su correspondiente esfuerzo estimado para cada una de las fases
definidas por UP.
"$
3.3 Marco de Desarrollo del UP El cuadro siguiente resume las disciplinas del UP y sus artefactos asociados, indicando también, para las
siguientes fases, el grado aproximado de desarrollo de cada uno de estos artefactos [1].
Tabla 1 - Artefactos de UP y Evolución Temporal
Componentes del UP
Fases
Disciplina Artefactos
Iteraciones:
Inicio Elaboración Construcción Transición
Modelado del
negocio
Modelo del dominio C
Requerimientos Modelo de Casos de Uso
Visión y Análisis del Negocio
Especificación Complementaria
Glosario
C
C
C
C
R
R
R
R
Diseño Modelo de Diseño
Documento de Arquitectura
Modelo de Datos
C
C
C
R
R
Implementación Modelo de implementación C R R
Gestión del
proyecto
Plan de desarrollo C R R R
Pruebas Modelo de Pruebas C R
Entorno Marco de desarrollo C R
Donde:
o C = Comienzo de la construcción del artefacto. (Si un artefacto tiene sólo una “C” significa que
se comienza y termina en la misma fase)
o R = Refinamiento del artefacto (ampliación, corrección).
"%
3.4 Conceptos Claves en UP
3.4.1 Iterativo e Incremental El desarrollo de software iterativo e incremental corresponde a mantener permanentemente un enfoque de
cambio en los proyectos de desarrollo. Los llamados ciclos por fases intentan poner en manos del usuario un
sistema con prestaciones parciales, que se va completando con nuevas prestaciones en fases sucesivas. Así,
el usuario tiene en producción algunas funcionalidades mientras se van desarrollando las otras. Por lo tanto,
existen entonces al menos dos sistemas funcionando en paralelo:
1) El sistema operacional o sistema en producción, en uso por el cliente. Puede ser una
implementación parcial, una implementación anterior con funcionalidades nuevas o sustituidas, una
implementación nueva con partes de la anterior u otra variante coherente.
2) El sistema en desarrollo (la siguiente versión) que está siendo preparada para reemplazar la
versión en producción, que puede aún conservar partes de implementaciones anteriores o faltarle
funcionalidades.
La representación de un proceso iterativo e incremental se realiza en la siguiente ilustración.
Ilustración 3-2 Representación Proceso Iterativo e Incremental.
"&
Por consiguiente, el proceso de desarrollo incremental genera versiones comenzando con un subsistema
funcional pequeño, al cual se le va agregando funcionalidad con cada versión. Sin embargo, el desarrollo
iterativo entrega un sistema completo desde el principio, y luego cambia la funcionalidad de algún subsistema
en cada nueva versión. Ambos enfoques pueden combinarse en un desarrollo iterativo e incremental [1].
También se considera que el desarrollo iterativo es un método de construcción de productos cuyo ciclo de vida
está compuesto por un conjunto de iteraciones, las cuales tienen como objetivo entregar versiones del software.
Cada iteración se considera un proyecto que genera productos de software y no sólo documentación,
permitiendo al usuario tener puntos de verificación y control más rápidos e induciendo un proceso continuo de
pruebas y de integración desde las primeras iteraciones.
Algunas características a enunciar según UP son:
1. Los proyectos se organización en una serie de mini-proyectos cortos de duración (2 a 6 semanas),
llamados iteraciones, que incluyen un conjunto reducido de requerimientos a implementar.
2. El resultado de cada iteración es un sistema que puede ser probado, integrado y ejecutado. La salida es
un subconjunto con calidad de producción final.
3. Rápida retroalimentación y asimilación de los cambios, posibilitada por el tamaño limitado de lo
realizado en cada iteración.
4. Se abordan, resuelven y prueban primeramente las decisiones de diseño críticas o de alto riesgo.
5. Si no se logra cumplir lo previsto dentro del plazo estipulado, se aconseja transferir tareas o requisitos
para una iteración posterior, pero no modificar la fecha de entrega de la iteración actual.
Por lo tanto, el proceso iterativo permite una comprensión creciente de los requerimientos a la vez que se va
haciendo crecer el sistema. Con esto se logra reducir los riesgos del proyecto y tener un subsistema ejecutable
tempranamente.
3.4.2 Centrado en la Arquitectura El enfoque de desarrollo de software centrado en la arquitectura permite mejorar la comunicación entre las
personas involucradas. Brinda documentación temprana acerca de las decisiones de diseño. Indica la
estructura del software. Brinda una abstracción transferible del sistema. Hace explicitas las decisiones de
diseño. La mayoría de los requisitos de calidad pueden ser alcanzados, sólo si son considerados desde la
arquitectura.
3.4.3 Conducido por los Casos de Uso UP sigue el proceso de desarrollo conducido por casos de uso siendo una de las prácticas más comunes para
la captura de requisitos funcionales, especialmente con el desarrollo del paradigma de la programación
orientada a objetos, donde se originaron, si bien puede utilizarse con resultados igualmente satisfactorios con
"'
otros paradigmas de programación. Un caso de uso especifica el comportamiento de un sistema o una parte del
mismo. Es una descripción de un conjunto de secuencias de acciones, donde cada secuencia representa la
interacción de los elementos externos del sistema (sus actores) con el propio sistema (donde típicamente
produce un resultado útil para los actores externos). Un caso de uso representa un requerimiento funcional del
sistema [4].
3.4.4 Enfocado al Riesgo UP sigue un modelo iterativo que aborda las tareas más riesgosas primero. Un proceso es orientado por el
riesgo cuando intenta identificar y definir estrategias para enfrentar los riesgos más graves del proyecto,
resolviendo primero los puntos más difíciles, elaborando planes de contingencia y tratando de anticipar las
dificultades [4].
3.5 Retail Retail corresponde a la industria de venta de productos o mercaderías al detalle desde un lugar fijo tal como
supermercados, tiendas departamentales, farmacias o kioscos, o también lugares pequeños de consumo [2].
Retail incluye servicios adicionales, tales como: despacho, ventas virtuales, y ventas no presenciales, entre
otros. Los compradores pueden ser individuales o empresas. En la compra y venta un Retailer compra
mercancías y/o servicios en grandes cantidades a fabricantes o importadores y los vende en pequeñas
cantidades a usuarios finales. Los establecimientos de los Retailer son llamados tiendas, almacenes o locales,
los cuales se concentran y generan cadenas de distribución [3].
El entorno de negocios de la industria de Retail ha evolucionado hacia un modelo más restrictivo en términos de
márgenes de operación así como de mayores esfuerzos en la captación y fidelización de clientes. También, la
mayor concentración y consolidación en el mercado masivo ha obligado a todos los jugadores a diferenciarse a
través de ventajas competitivas que trasciendan la sola oferta de productos, tales como los servicios de valor
agregado como medio para la creación de experiencias positivas en sus clientes a través de soluciones de
punto de venta [2].
3.6 Software y Servicios para Retail En Retail se requiere alta especialización en el desarrollo de software y servicios. El desarrollo de software se
refiere a desarrollo de soluciones de punto de venta, y servicios para Retail corresponde al proceso de
certificación e implantación en las tiendas.
Algunas prácticas habituales y consideraciones en el proceso de desarrollo de software para soluciones de
punto de venta son:
1) Desarrollos en cascada. A pesar de que la buena práctica en general es el desarrollo iterativo e
incremental, lo cual se practica y se entrega por porciones. Se debe considerar que en RETAIL la
funcionalidad completa no estará disponible al usuario final mientras no se encuentre con el 100%
desarrollado.
"(
2) Las implantaciones se realizan en locales o tiendas que atienden a público. Las implantaciones de
software cubriendo todas las tiendas de los Retail son extensos y riesgosos.
3) Los periodos de seguimiento de una tienda piloto son cortos (1 a 2 semanas). En general, dados los
requerimientos y lo extenso de las implantaciones no es posible extender mucho tiempo el
seguimiento de tiendas pilotos.
4) El "time to market" es crítico, donde generalmente es un esfuerzo grande el implantar las tiendas,
dado que se requiere de procesos de certificaciones internas y externas, capacitaciones de cajeros,
operadores y administrativos.
3.7 Software de Calidad Algunas prácticas o postulados en el desarrollo de software son: existe una estrecha correlación entre la calidad
del software y la calidad del proceso que lo produce; el software de la más alta calidad contiene mínima
cantidad de errores es liberado en el plazo y dentro del presupuesto. Un proceso de desarrollo de la más alta
calidad supone: supervisión, control, predictibilidad, es conocido por todos los involucrados, es medible,
evaluable y mejorable. Nunca se debe cometer el mismo error: diseminar las mejores prácticas; aprender de la
experiencia de los demás; apuntar hacia las causas de los errores [6].
Además el mejor proceso de desarrollo depende del tipo de proyecto que se debe desarrollar y las
características particulares de la empresa. UP permite de forma eficaz el proceso de desarrollo de software.
3.8 FIDCOM FIDCOM es una empresa especializada en software para puntos de venta y soluciones tecnológicas para la
industria del Retail Latinoamericano. Sus habilidades se basan en la especialización en la industria del Retail,
conocimiento, compromiso con sus clientes, capacidad innovadora y gran disposición a asumir desafíos.
Actualmente FIDCOM, cuenta con 45 profesionales enfocados a la industria del Retail, cuenta con laboratorios
altamente completos, servicios con horarios y cobertura Retail (16x7), investigación y desarrollo con equipos
multidisciplinarios. Además cuenta con oficinas con operaciones locales en Chile, Perú y Colombia.
Las operaciones locales se enmarcan dentro de una definición de acercamiento a los clientes y sus mercados
de origen, para proveer servicios y soluciones, siendo esta la forma de lograr el éxito en un mercado cada vez
más competitivo y en crecimiento.
FIDCOM mantiene alianzas con compañías de categoría mundial y regional para otorgar y traspasar a sus
clientes productos y servicios íntegros con respaldo internacional.
Las principales áreas de especialización de FIDCOM son: Desarrollo de Software, Consultoría, Servicios de
Ingeniería y Servicios Operacionales.
")
Las soluciones FIDCOM se enmarcan en las distintas estrategias de sus clientes como son: crecimiento,
consolidación, reducción de costos y competencias cruzadas, permitiendo la interacción con las diferentes
áreas de la empresa (Finanzas, Comercial, Contraloría, Operaciones y Otras).
Algunas de las herramientas FIDCOM que contribuyen a estos objetivos o estrategias son:
1. Software para complementar programas de fidelización de clientes.
2. Sistemas de promociones en los puntos de venta.
3. Sistemas de monitoreo para la gestión automatizada y centralizada de las tiendas.
4. Aplicaciones para la recepción y aprobación de pagos en línea.
5. Herramientas de software para utilización de terminales móviles.
FIDCOM es una empresa PYME que desarrolla software en el ambiente de Retail y siempre necesita mejorar la
calidad del software que entrega a sus clientes. Donde la calidad del software es la clave del éxito en los
negocios y cuyo desafío es: hacerlo mejor que la competencia en términos de calidad, costos, plazos y
performance predecible, considerando que las nuevas tecnologías ponen mayores dificultades al desarrollo de
software.
La metodología de desarrollo es no estructurada y basada en equipos de trabajo reducidos con conocimiento
técnico especializado y con comprensión de dominio del Retail. Las personas son el principal factor de éxito de
un proyecto de software. El foco siempre ha sido desarrollar software que funciona más que conseguir una
buena documentación para dar continuidad y/o mantenibilidad al sistema en el tiempo. La regla a seguir es no
producir documentos a menos que sean obligatorios por el cliente, necesarios de forma inmediata para tomar
una decisión importante. Se responde a los cambios, basado en contratos de mantenimiento, mas que seguir
un plan. Se construyen pocos artefactos y existen pocos roles. Los procesos son menos controlados,
especialmente expuestos a cambios de requisitos en el transcurso del proyecto, no existiendo contratos que
determinen claramente los alcances de los proyectos con el cliente. Los grupos de trabajo son pequeños, de
desarrollo 1 o 2 personas. Los proyectos son pequeños, 2 a 3 semanas, donde habitualmente son montos de
facturación inferiores a US$5.000.
"*
4 Definición del Problema
4.1 Problema FIDCOM desarrolla soluciones de punto de venta y servicios en la industria de Retail y se encuentra con
algunos problemas recurrentes en los procesos de desarrollo de software.
La metodología de desarrollo de software es desestructurada con procesos menos controlados, especialmente
expuestos a cambios de requisitos en el transcurso del proyecto, no existiendo contratos que determinen
claramente los alcances de los proyectos con el cliente; grupos pequeños de desarrollo de 2 o 3 personas, con
pocos artefactos y pocos roles; poco énfasis en la arquitectura de software.
En la medida que FIDCOM ha ido permanentemente desarrollando sus estrategias comerciales y de
crecimiento organizacional, la tecnología ha ido evolucionando, las complejidades técnicas y expectativas de los
clientes han ido creciendo y han comenzado a presentarse algunos problemas recurrentes en los procesos de
desarrollo de software, los cuales se describen a continuación.
Tabla 2 - Problemas Recurrentes en Desarrollo
Problema Observaciones
Recursos Limitados Esto dado el nivel de especialización de los recursos
y la baja documentación de las plataformas de
desarrollo en Retail.
Plazos Sobrepasados Esto dado las exigencias del negocio, el cambio
permanente y las escases de recursos.
Mantenciones Crecientes Esto dado el nivel de cambios permanente y
adaptaciones requeridas, de acuerdo a las
necesidades de negocio.
Desarrollos a Última Hora Esto dado las exigencias de negocio por satisfacer las
necesidades para enfrentar la competencia
permanente.
Requisitos Ambiguos,
Incompletos, No Definidos
y No cumplidos.
Esto dado el nivel de improvisación con que muchas
veces se abordan las necesidades de negocio.
Esto es una fuente de conflicto permanente en los clientes, como también es fuente de insatisfacción personal y
conflicto interno de los equipos de trabajo y desarrollo.
#+
Desde el punto de vista de efectos negativos internos en la empresa se identifican algunos, tales como: se
generan soluciones de mala calidad, altas tasas de fallo, re trabajo, no se puede demostrar si se cumplen o no
los objetivos, insatisfacción del personal; se termina especificando medios y no fines, entre otros. Para el caso
de los efectos negativos en Clientes, se identifican algunos, tales como: situaciones en que existe pérdida de
imagen de la empresa y pérdida de confianza en los productos, como también se genera insatisfacción en los
clientes.
4.2 ¿Por qué UP es un buen Punto de Partida? UP es un buen punto de partida por tratarse de una metodología de desarrollo de software orientada a conducir
el proceso de desarrollo de forma eficaz basado en un conjunto de buenas prácticas probadas en la industria
del software y muchas de las cuales son conocidas dentro de FIDCOM, disminuyendo el costo de adopción. UP
es una versión libre y abierta del modelo propuesto por Jacobson, Booch y Rumbaugh [1]. En otras palabras, es
perfectamente posible definir el proceso de ingeniería de una organización sobre la base del UP, sin tener que
pagar derechos.
4.3 ¿Por qué No usar UP tal cual? Por tratarse de un meta modelo, un proceso genérico que incluye aquellos elementos que son comunes a la
mayoría de los refinamientos existentes, por tratarse de un marco de trabajo extensible de metodología de
desarrollo de software que debe ser adaptado a organizaciones o proyectos específicos no es apropiado utilizar
UP tal cual. UP es una metodología orientada a conducir el proceso de desarrollo de software en sus aspectos
técnicos. Los flujos y productos de trabajo de UP no incluyen la administración del proyecto. Por lo tanto, se
requiere también que los proyectos se encuentren en un dominio acotado y se requiere flexibilidad, la cual se
obtiene con el tiempo.
Algunas prácticas y consideraciones en el proceso de desarrollo de software para soluciones de punto de venta
son:
1. Se genera sólo un entregable a la tienda piloto (similar al planteamiento desarrollo en “cascada”).
No aplica el entregar por porciones al usuario final (según planteamiento UP), dado que una vez
que se libera el software a la tienda piloto, recién en ese momento es utilizado por los usuarios
reales. Sin embargo, se generan entregables parciales (iteraciones de porciones de software) a las
áreas de sistemas para efectos de certificar las funcionalidades en ambientes de laboratorio
(simulaciones).
2. Las implantaciones de software y servicios se realizan en locales, almacenes o tiendas que
atienden a público general. Esto limita los horarios de trabajo y el usuario final es un cajero y/o
cliente.
3. Los periodos de seguimiento de una tienda piloto son cortos (1 a 2 semanas). Esto dificulta las
posibilidades de identificar hallazgos.
#"
4. La implantación en todas las tiendas son amplios y riesgosos. Todos los accesos son remotos y las
coberturas regionales.
5. El "time to market" es crítico, generalmente, es un esfuerzo grande el implantar las tiendas, dado
que se requiere de procesos de certificaciones internas y externas; capacitaciones de cajeros,
operadores, administrativos, entre otros.
4.4 ¿Qué cosas de UP se mantienen tal y como están definidas en el modelo? Por tratarse de un marco de trabajo extensible de metodología de desarrollo de software que debe ser adaptado
a organizaciones o proyectos específicos no es apropiado usar UP tal cual. Sin embargo, algunos aspectos que
se mantienen tal y como están definidos en el modelo son:
1. La estructuración y organización de los proyectos se realiza por fases y disciplinas.
2. El desarrollo es dirigido por casos de uso, centrado en la arquitectura y enfocado en el riesgo.
3. El desarrollo es iterativo e incremental. Se mantiene un enfoque de cambio en los proyectos. Se
pone en manos del cliente (área de sistemas, no usuario final) un sistema de prestaciones
parciales, que se complementa en fases sucesivas. Dependiendo de su tamaño, los proyectos se
organizan en mini-proyectos hasta cumplir con el 100% de la funcionalidad y pasar a una tienda
piloto.
4. Se construyen artefactos que identifican: el modelo de negocio, requerimientos, arquitectura
preliminar y candidata, modelo de pruebas, entorno.
5. Se abordan, resuelven y prueban primeramente las decisiones de diseño críticas o de alta
complejidad.
6. Si no se logra cumplir lo previsto dentro del plazo estipulado, se negocia el transferir tareas o
requisitos para una iteración posterior, pero no se modifica la fecha de entrega de la iteración
correspondiente.
4.5 ¿Cuáles son las Adaptaciones Necesarias? En base a la definición, las adaptaciones son referidas con respecto a los clientes Retail y las capacidades de
FIDCOM. Se representan por medio de un ámbito de adaptación y según cada una de las fases identificadas
por UP para el proceso de desarrollo.
A continuación se describe el ámbito de cada adaptación y las adaptaciones realizadas en cada una de las
fases para la metodología propuesta.
##
4.5.1 Ámbito de Adaptación El ámbito de adaptación se representa en base a las adaptaciones necesarias para la metodología de FIDCOM
y la justificación correspondiente según la metodología de desarrollo UP. En el siguiente cuadro se presenta un
comparativo entre UP y la metodología requerida por FIDCOM.
Tabla 3 - Comparativo de UP y Metodología para FIDCOM
Ámbito de Adaptación Según UP Según Metodología para FIDCOM
Requisitos. UP propone que los requisitos significativos
se tomen en la fase de inicio, posteriormente
se desarrollan y refinan en las siguientes
fases.
Para el Retail en la fase de inicio se debe
levantar el 100% de los requisitos, tanto
funcionales, como no funcionales y requisitos
de restricción.
En la fase de elaboración se refinan los
requisitos.
Compromiso desde el
Inicio.
UP entrega alcances imprecisos al inicio del
proyecto y existe una posibilidad de no
factibilidad del proyecto.
Para el cliente Retail, en la fase de inicio se
consiguen el compromiso con el plan previo a
la aprobación formal del proyecto. Por tanto,
dependiendo del tamaño del proyecto se
construye el contrato y se define el 100% de
los criterios de aceptación del negocio y en
términos generales se definen los criterios
funcionales.
En la fase de elaboración se depuran los
criterios de aceptación del negocio y se
refinan los criterios funcionales
Mitigación de Riesgos. UP propone que en la fase de elaboración se
resuelven los riesgos más altos.
Dado el nivel de especialización de FIDCOM,
en la fase de inicio, se identifican riesgos
técnicos en forma temprana que permitan
comprobar la factibilidad del proyecto, donde
en algunos casos se implementan prototipos y
se generan ambientes.
En la fase de elaboración se resuelven las
complejidades técnicas.
Alcances del Proyecto. UP postula alcances imprecisos al inicio del
proyecto.
Según las necesidades de Retail, en la fase
de inicio se deben explicitar los criterios de
aceptación, se realiza la nivelación de
expectativas, alcances del proyecto y
#$
compromiso con el plan, presentando los
alcances y criterios definitivos del proyecto.
En la fase de elaboración se depuran, se
habilitan los espacios de trabajo requeridos;
se diseña el plan de pruebas; se generan los
ambientes de desarrollo y validación; se
realiza un entregable temprano.
Desarrollo Iterativo e
Incremental.
UP postula poner en manos del usuario un
sistema con prestaciones parciales. Así el
usuario tiene algunas funcionalidades en
producción mientras se van desarrollando
otras.
Según las características de los Retailer,
donde los usuarios finales son los clientes en
el POS, y la complejidad de implantar en
producción, y la amplitud del negocio, se debe
disponer del 100% de las prestaciones
(requisitos) previo a implantar una tienda
piloto. Sin embargo, se generan prestaciones
parciales (entregables por iteraciones
acordadas con el cliente) a las áreas de
sistemas.
Arquitectura Preliminar. UP se basa en arquitecturas preliminares
que se mejoran en el tiempo.
La arquitectura definitiva se resuelve en la
fase de inicio y se depura en la fase de
elaboración.
El nivel de conocimiento técnico de FIDCOM y
el dominio acotado sobre el cual se trabaja,
permite entregar a los clientes arquitecturas
basadas en experiencias exitosas y por lo
tanto rara vez son modificadas una vez
diseñados.
Evolución del Producto. UP postula la madurez del producto en la
fase de evolución.
Según las necesidades de Retail y la
temporización de actividades, en la fase de
transición, se permite el paso a la
implantación de todas las tiendas.
En la etapa de garantía el cliente realiza
requerimientos de ajustes, de acuerdo a las
solicitudes generadas como consecuencia de
la interacción.
#%
4.5.2 Adaptaciones a las Fases de UP Las adaptaciones realizadas en UP en el presente trabajo, para efectos de usar UP como guía en un proceso
de desarrollo de software en FIDCOM, son enunciadas a continuación según cada una de las fases de UP
indicadas en la siguiente tabla.
Tabla 4 - Adaptaciones de UP para FIDCOM.
Fase Inicio Fase Elaboración Fase
Construcción
Fase Transición Fase Evolución
Se resuelven los
riesgos técnicos.
Se generan
prototipos.
Levantamiento del
100% de los
requisitos.
Se define los
criterios de
aceptación.
Se realiza plan
preliminar.
Se define la
arquitectura.
Se realiza propuesta
comercial.
Se depuran los criterios de
aceptación.
Se depuran los requisitos.
Se realiza inicio proyecto
interno.
Se inicia construcción del
plan de pruebas.
Se mitigan complejidades
técnicas.
Se refinan compromisos
con cliente.
Se refina la arquitectura.
Se genera entregable
temprano.
Desarrollo por
iteraciones.
Se construye
documentación
preliminar.
Se realiza
capacitación
parcial.
Se concluye con
la entrega del
100% de la
funcionalidad
acordada.
Se entrega Setup
al cliente.
Capacitación
completa.
Documentación
final.
Certificación.
Implantación
piloto.
Se concluye con
la aprobación del
piloto.
Garantía.
Mantenimiento
correctivo.
Implantación de
todas las tiendas
Mantenimiento
adaptativo (contrato).
Soporte y
continuidad
operacional.
La tabla anterior representa las adaptaciones de actividades a realizar y cumplir en cada una de las fases para
efectos de consumar con la definición de la metodología propuesta para FIDCOM.
#&
5 Metodología Desarrollo de Software para FIDCOM
5.1 Descripción de Metodología para FIDCOM La metodología de desarrollo de software adoptada y adaptada para FIDCOM se basa en UP y las necesidades de desarrollo para el Retail, considerando las buenas prácticas de FIDCOM. En el cuadro siguiente se representa la metodología propuesta.
Ilustración 5-1 Conceptualización Metodología para FIDCOM.
La metodología de desarrollo de software para FIDCOM es un marco de desarrollo basado en UP con un
enfoque de cambio. Aporta un enfoque disciplinado a la asignación de tareas y responsabilidades en un
proyecto de desarrollo de software, que se caracteriza por estar dirigido por casos de uso, centrado en la
arquitectura, enfocado en el riesgo, y por ser iterativo e incremental.
El enfoque de cambio, iterativo e incremental, con implementaciones parciales, permite que cada
implementación se considere un proyecto que genera productos de software, donde cada entrega es una
iteración, que resulta en un incremento, induciendo un proceso continuo de pruebas y de integración desde las
primeras iteraciones, con calidad de producto final. Sin embargo, el usuario final (cajero, cliente en el POS) solo
obtendrán la funcionalidad una vez aprobada en un 100% los requisitos.
Las iteraciones se refieren a pasos en el flujo de trabajo, y los incrementos a un crecimiento en el producto. Las
tareas a abordar en cada iteración parten de dos factores: la iteración maneja un grupo de casos de uso que
extienden la utilidad del producto, además las iteraciones tratan siempre con los riesgos más altos en el estado
actual del proyecto. El enfoque iterativo no es dividir, sino que las sucesivas iteraciones se construyen a partir
de los artefactos en el estado en que fueron dejados en las iteraciones precedentes. Cada iteración se
considerada como un mini-proyecto, a partir de los casos de uso y se aborda el análisis, diseño,
implementación, documentación y capacitación interna, y el testing.
#'
Si una iteración cumple sus objetivos el proceso sigue con la siguiente iteración, por contra, si una iteración no
cumple sus objetivos el arquitecto debe revisar las decisiones previas e intentar una nueva aproximación.
En cada iteración el arquitecto analiza los casos de uso relevantes, se crean la especificación correspondiente,
utilizando como guía los requisitos y la arquitectura elegida. Luego, el desarrollador analiza la especificación,
diseña e implementa el código correspondiente para entregar a testing. En el área de testing se ejecutan las
pruebas en base al plan y casos de pruebas. La aprobación se realiza con el cumplimiento del plan definido.
Una vez que el cliente acepta el entregable y la documentación correspondiente, se realiza la capacitación para
posteriormente realizar la certificación. La aprobación de la certificación es en base a los criterios de aceptación,
una vez obtenida la aprobación se permite la planificación real de la tienda piloto.
En términos generales, el piloto se instala y capacita a los usuarios involucrados, y se mantiene en operación
por periodo de tiempo definido, necesario para determinar el grado de satisfacción del cliente. La aprobación del
piloto permite dar inicio al plan de instalación en todas las tiendas.
En términos generales, esta metodología permite una rápida retroalimentación y asimilación de los cambios,
disminuyendo riesgos en forma temprana.
La metodología de desarrollo de software descrita se divide en fases, las cuales se explican en la siguiente
sección.
5.2 Fases de Proyecto para FIDCOM Un proyecto desarrollado con la metodología propuesta para FIDCOM irá a través de cada una de las siguientes fases.
Tabla 5 - Fases de Proyecto para FIDCOM
Fases Propósito Criterios de Aceptación
Fase de Inicio
Corresponde definir el NEGOCIO. Se define la factibilidad del proyecto a realizar. Esta es la información base requerida para el desarrollo de una propuesta y plan de proyecto a realizar. Esta fase concluye con la aprobación formal del proyecto por parte del Cliente y permite el inicio al proyecto propiamente tal. En esta fase lo fundamental es:
1. Se levantan todos los requisitos (100%), funcionales, no funcionales y requisitos de restricción.
2. Se identifican y mitigan riesgos técnicos tempranos que permitan asegurar la continuidad del proyecto. En algunos casos se implementan prototipos y se generan ambientes.
3. Se realiza el análisis y diseño de la configuración (Arquitectura).
4. Se debe describir claramente las oportunidades de negocio a
Formalización del proyecto por parte del Cliente (Orden de Compra y firma de contrato).
#(
resolver.
5. Se elabora la propuesta comercial, por tanto dependiendo el tamaño del proyecto se construye el contrato y se define el 100% de los criterios de aceptación del negocio y en términos generales se definen los criterios funcionales.
De aprobarse el proyecto por parte del cliente y como un complemento a la fase de inicio, se construye el contrato (legal). Se definen los criterios de aceptación para el Cliente y Proyecto (Documento de alcances del proyecto).
Fase de Elaboración
Corresponde refinar y detallar la mayoría de los requerimientos (escenarios de casos de uso) y la arquitectura del sistema. Se examinan detalladamente los objetivos y alcances, la elección de la arquitectura, y la resolución de los principales riesgos con sus planes de mitigación. Se considera el armado de ambientes requeridos para el correcto desempeño del proyecto y mitigar las complejidades técnicas. Desde un punto de vista de implementación, de acuerdo a criterios de tamaño, esfuerzo y complejidad, algunos de los desarrollos e implementaciones identificadas se realizan en esta fase de elaboración y se mitigan complejidades técnicas. Se construye la funcionalidad más representativa para todas aquellas componentes riesgosas de implementar. Esto con el objetivo de dar visibilidad, mitigar complejidades y generar un entregable temprano al Cliente. Aquí en la fase de elaboración la cuestión fundamental es:
1. Se desarrolla el plan de la fase de elaboración.
2. Se Analiza el problema del dominio. Determinar Alcances reales del sistema.
3. Refinar la base arquitectónica. Se especifica en detalle la mayoría de los requerimientos y se diseña la arquitectura completa del sistema, obteniendo la línea base de la arquitectura.
4. Eliminar los elementos de riesgo, complejidad técnica y determinar planes de mitigación.
5. Habilitación de laboratorio en FIDCOM (desarrollo y validación) y preparar laboratorio en Cliente (certificación y Piloto).
6. Contar con herramientas y ambientes de pruebas.
Al final de la fase de elaboración el Jefe de proyecto debe planificar las actividades restantes, estimando los recursos necesarios para terminar el proyecto.
Requisitos completos. Refinar el 100% de los requerimientos y conseguir aprobación formal del cliente.
Generación de Ambientes (Desarrollo, validación, certificación, Piloto)
Identificar todos los Riesgos y su correspondiente plan de mitigación
Entregable temprano
Fase de construcción
Corresponde a la evolución hasta convertirse en un producto preparado, incluyendo todos los requisitos (100%), para entregarse al Cliente. Sin embargo, se generan prestaciones parciales (entregables por iteraciones acordadas con el cliente) de forma previa a las áreas de sistemas. Dependiendo el tamaño del proyecto, y la estrategia de desarrollo adoptada en conjunto con el cliente, se genera un entregable, o también pueden ser entregas parciales.
Sin embargo, al final de esta fase el sistema contiene todos los casos de uso
100% de los
requisitos
implementados
Todos los casos de
pruebas pasados
(validados)
#)
implementados que el cliente y la dirección del proyecto han acordado.
La mayoría de los casos de uso que no se desarrollaron en la fase anterior se desarrollan en iteraciones, en grupos de requisitos o casos de uso durante esta fase. Están desarrollados con las pruebas unitarias y las pruebas realizadas por el área de validación en forma satisfactoria.
Aquí lo fundamental es:
1. Definir estrategia de entregas parciales para desarrollar e implementar el 100% de los requisitos.
2. Implantar en ambiente de laboratorio todas las funcionalidades requeridas.
3. Validar la versión entregada por cada iteración que se genera.
4. Construir la documentación requerida en cada entregable.
Versión completa entregada al Cliente (para certificar)
Fase de Transición
Corresponde a permitir hacer seguimiento al producto implantado en el Cliente.
En la fase de transición lo fundamental es:
1. La entrega de versión final en laboratorio cliente da inicio a esta fase.
2. Se realiza la certificación formal.
3. Se realizan actividades de implantación piloto.
4. Se desarrolla el material de documentación y capacitación. Se realizan actividades de capacitación a cajeros y operadores. Se realiza “transfer Skill” al personal técnico, personal de Sistemas del cliente (ingenieros, analistas, operadores y soportes); Capacitación a: Personal de Gerencia de la empresa y Personal de Tienda (cajeros y operadores de sistemas).
5. Se formaliza carta de aceptación y cierre.
Aquí es posible realizar mantenimiento correctivo de defectos.
Certificación en el
Cliente.
Implantación Piloto.
Material de
capacitación y
manuales.
Capacitación
Fase de Evolución
La fase de evolución permite hacer seguimiento al producto implantado en el Cliente. Aquí es posible realizar mantenimiento correctivo de defectos e implantación en todas las tiendas el sistema.
Garantía del producto.
Mantenimiento correctivo.
#*
6 Procedimiento General de implementación para FIDCOM El procedimiento general de implementación para FIDCOM permite representar las actividades definidas según la metodología de desarrollo de software. Se representa a continuación por medio de un diagrama general y la descripción de cada una de las actividades.
6.1 Diagrama General El diagrama general permite representar las actividades de trabajo, comienzo, fin, entradas, salidas y secuenciación de actividades, como también los roles y fases definidas. Por lo tanto se representa de forma grafica todos los elementos que forman parte del procedimiento.
La notación está basada en UML1. En este lenguaje se utiliza el diagrama de actividad que permite representar las actividades de trabajo, roles y fases por las cuales evoluciona un proyecto de desarrollo de software. La notación utilizada en este texto corresponde a la propuesta de Sparx Systems [14].
En la ilustración 6-1 se muestra el procedimiento modelado del proceso de desarrollo de software definido para FIDCOM. Las consideraciones son:
1. Los roles se representan por medio de Swimlanes.
2. Se representa cada una de las fases del proyecto. Las fases de inicio y construcción se representan
por medio de Boundary.
" ��,��-���������.�����!�/�������������������� ����� �� 0-�� �1�� �������,��-���� ����� ��.����
,��������2������������� ����!�,��.������������������ ��� ��0������ ����������� �3��.���� �� � � ��� �
�� 1
$+
Ilustración 6-1 Procedimiento General para FIDCOM
La información relativa a roles y artefactos construidos en las diferentes fases se encuentra disponible en los anexos 1 y 2, respectivamente.
$"
6.2 Descripción de actividades por Fases La siguiente tabla describe cada una de las actividades realizadas en la fase de inicio.
Tabla 6 - Actividades por Fase
Actividad Descripción Rol
FAS
E IN
ICIO
Realizar Levantamiento
Funcional
Para analizar los alcances del proyecto, es necesario que el analista
funcional realice un primer levantamiento, donde se entrevista con el
cliente para documentar los requerimientos y formalizar los deseos.
Analista
Funcional
Analizar Deseos de
Usuario
El analista de oportunidad analiza los deseos de usuario para verificar
su factibilidad de implementación.
Arquitecto
Aprobar Propuesta El cliente entrega su aprobación a la propuesta comercial. Cliente
Realizar Propuesta El Responsable comercial genera la propuesta comercial para
conseguir la aprobación del cliente.
Comercial
Analizar y Diseñar
Configuración
El arquitecto debe entender los requerimientos y diseñar un plano
grueso del sistema.
Arquitecto
Definir Negocio Corresponde a la definición y justificación de negocio. Analista
FAS
E E
LAB
OR
AC
ION
Depurar Criterios de
Aceptación
Corresponde a la actividad de revisar y acordar con el cliente el
entendimiento de cada uno de los criterios de aceptación.
Analista
Funcional
Mitigar Riesgos
Tempranos
En el Plan de Proyecto se listan los principales riesgos que tiene el
proyecto, según la experiencia.
Analista
Funcional
Diseñar Plan de Pruebas Se debe diseñar un plan que especifique la forma en que se realizarán
las pruebas.
Arquitecto
Diseñar Casos de Prueba De acuerdo a los casos de uso, se diseña los casos de prueba que
utilizará posteriormente el tester.
Analista
Funcional
Analizar Casos de Uso Para obtener las especificaciones del sistema se debe entender en
primer lugar los casos de uso, y revisar la arquitectura de este. Las
especificaciones las puede generar el arquitecto, si se trata de un
sistema desconocido por el desarrollador. En cambio si es un sistema
conocido, las puede generar el desarrollador.
Arquitecto
Generar Ambiente de
Desarrollo
Se genera ambientes, configuraciones, requerimientos sobre los cuales
trabajarán en la implementación de la solución. Los ambientes se
Desarrollador
$#
generan de acuerdo a las especificaciones entregadas por el Jefe de
Proyecto.
Generar Ambiente de
Validación
Se genera ambientes, configuraciones, requerimientos sobre los cuales
se realiza la validación de la solución.
Analista
Generar Ambiente
Temprano
Se genera un ambiente para implantar un entregable temprano
(ambiente de certificación). Corresponde a diseñar los ambientes,
configuraciones, requerimientos sobre los cuales se realiza la
implantación del modulo entregable (temprano) y posterior certificación
en el Cliente.
Servicios
Aprobar SAD Corresponde al cliente la aprobación del documento SAD, incluyendo
arquitectura candidata, el 100% de los requisitos con sus escenarios y
los alcances técnicos del proyecto.
Cliente
FAS
E C
ON
STR
UC
CIO
N
Implementar Se implementan los casos de uso, se genera una aplicación que cubra
el requerimiento. También debe corregir defectos de setup generados
anteriormente, los defectos vienen especificados en una plantilla de
defectos.
Desarrollador
Ejecutar Casos de Prueba El tester sigue cada paso de lo indicado en el documento de Casos de
Prueba. Ingresa el input indicado, y distingue el output obtenido, de
esta forma puede compararlo con el previsto.
Tester
Integrar en el Cliente Se integran las aplicaciones realizadas en los sistemas del cliente. Servicios
Construir CDP
Certificación
El cliente debe construir los casos de prueba y criterios de aceptación
del proceso de certificación. Con esto se compromete al cliente, se
participa en el proceso y se consigue formalizar las expectativas.
Cliente
FAS
E T
RA
NS
ICIO
N
Confeccionar Manuales Se confecciona un documento de instalación y configuración del setup. Desarrollador
Realizar capacitación Se realiza capacitaciones de instalación destinadas a los encargados
de soporte del cliente y usuarios.
Analista
Funcional
Certificar en el cliente Realizar la validación de producto en el cliente según los casos de
prueba.
Analista
Funcional
Implantar Piloto Se instala el sistema completo en una tienda piloto. Se realizan
actividades de instalación, capacitación y puesta en marcha piloto.
Servicios
$$
7 Evaluación de la Propuesta Metodológica Aplicada para
FIDCOM La evaluación nos permite determinar si la propuesta metodológica es razonable para FIDCOM. Se identifican las variables de crecimiento organizacional y calidad, como también la capacidad de resolver los problemas detectados en el proceso de desarrollo.
7.1 Identificación de Variables La siguiente tabla describe las variables de crecimiento organizacional, calidad y variables de problemas recurrentes en FIDCOM, a evaluar en base al trabajo realizado.
Tabla 7 - Definición y Análisis de Variables de Valor en FIDCOM
Variables de Valor
Descripción
1. Crecimiento organizacional
El crecimiento puede ser abordado desde distintas perspectivas, pero en términos de negocio, los aspectos e indicadores de interés son: el aumento de la cuota de mercado, el número de nuevos productos que oferta, el número de nuevos clientes que capta, el aumento de venta y principalmente el número de empleados, la cobertura geográfica y la cantidad de proyectos.
2. Calidad del software
De acuerdo a la terminología de la IEEE [9], la calidad de un sistema, componente o proceso de desarrollo de software, se obtiene en función del cumplimiento de los requerimientos iníciales especificados por el Cliente o usuario final. Según Pressman [8], es la concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente. La importancia de cada característica de calidad varía dependiendo del tipo de software y del contexto [8].
3. Resolver problemas recurrentes en desarrollo.
FIDCOM desarrolla soluciones de software y en su proceso de desarrollo de software se ha encontrado con problemas recurrentes, tales como: recursos limitados, plazos sobrepasados, mantenciones crecientes, desarrollos a última hora y requisitos ambiguos, incompletos, no definidos y no cumplidos.
Por lo tanto, se elaboró una metodología que permite contar con un proceso definido y de mejoramiento continuo que guía a FIDCOM en la obtención de productos de calidad, mediante un proceso de calidad, respaldando así su crecimiento organizacional.
El crecimiento organizacional desde el punto de vista metodología de desarrollo de software para hacerlos sustentable en FIDCOM se requiere contar con: una guía, un proceso de desarrollo, una metodología de trabajo replicable, exportable; es decir, contar con una guía que permita el desarrollo de proyectos replicables y de calidad. Todo esto considerando que existe una alta correlación entre calidad de proceso y calidad de producto, donde la opción es mejorar el proceso.
Todo lo anterior, es requerido para el crecimiento organizacional; esto, dado que: se tiene una mayor estructura; mayores costos, en especial aumento en el costo fijo. Por lo tanto, se requiere un aumento en las ventas y
$%
generar flujo de efectivo constante. La estrategia definida es contar con proyectos, productos y/o servicios de calidad, y replicables.
La calidad de software para FIDCOM está dada por: conformidad con los requerimientos explícitos, funcionales y de rendimiento, cumplidos, cobertura (%); entrega de soluciones a tiempo; Confiabilidad, grado de confianza esperado por parte del usuario en la operación adecuada del sistema al utilizarlo; Fiabilidad, comportamiento de las fallas, el tiempo de arribo de fallos, el número de fallos ocurrido en un tiempo determinado, la media del tiempo de ocurrencia de fallas, capacidad/tiempo de remoción; Mantenibilidad, tiempo medio entre cambios; Reusabilidad, facilidad de usar partes; interoperabilidad, esfuerzo de acoplamiento. Se considera que la variable más importante para medir la calidad de software está dada por la satisfacción del usuario.
7.2 Evaluación del Crecimiento Organizacional El crecimiento organizacional ha permitido determinar en un periodo de 12 meses un aumento favorable a FIDCOM lo cual se representa en la siguiente tabla.
Tabla 8 - Evaluación del Crecimiento Organizacional en FIDCOM
Variables Resultados
Número de Nuevos Productos
Aumento en el número de productos 2 por año.
Número de Nuevos Clientes.
Aumento en el número de clientes 10% por año.
Ventas Anuales Registradas.
US$4 millones. Crecimiento promedio anual del 25%.
Número de Empleados.
45 empleados. Crecimiento de un 20% anual. De estos empleados, el 65% del personal se encuentra en las áreas técnicas, un 20% en el área comercial y un 15% en Administración y Finanzas.
Cobertura Geográfica a Nivel Regional.
Aumento en la cobertura geográfica con presencia regional Latinoamericana en 6 países.
Cantidad de Proyectos en 12 meses.
Aumento en la cantidad de proyectos de un 20% anual.
También se debe considerar que para conseguir los resultados propicios anteriormente enunciados se ha requerido en FIDCOM lo siguiente: una mayor estructura, más clientes y más proyectos. Esto ha implicado mayores costos -en especial aumento en el costo fijo, y se requiere un flujo mayor de efectivo de forma constante.
.
$&
7.3 Evaluación de la Calidad de Software La evaluación de la calidad de los productos de software se ha basado en la construcción de un cuestionario. El cuestionario permite proporcionar una manera sistemática de valorar la calidad, desde el punto de vista de la satisfacción del cliente, basándose en un conjunto de reglas claramente definidas.
7.3.1 El Cuestionario de Calidad de Software El cuestionario de calidad de software permite medir la satisfacción del cliente, considerando atributos de calidad, los cuales son: funcionalidad, eficiencia, confiabilidad, facilidad de uso, mantenibilidad, portabilidad, tolerancia a fallos, capacitación, documentación, soporte y número de defectos; cumplimiento en plazo, y la cobertura requerida.
La tabla siguiente enuncia las preguntas asociadas a cada atributo de calidad.
Tabla 9 - Cuestionario según atributos de Calidad de Software
Atributo Preguntas a resolver
Funcionalidad ¿El producto cumple con los requisitos funcionales (explícitos)?
¿El producto cumple con los requisitos implícitos esperados?
(Si el producto cumple con sus requisitos explícitos pero falla en los implícitos, la calidad del software no será fiable.)
Eficiencia ¿El producto tiene la capacidad de entregar un desempeño apropiado, en relación con la cantidad de recursos utilizados, bajo las condiciones establecidas?
Confiabilidad ¿Tiene capacidad el producto para evitar fallas como resultado de errores?
¿El uptime del producto es por sobre el 95% requerido?
Facilidad de uso ¿Es el producto fácil de comprender, aprender y usar por el usuario y ser atractivo para él, bajo las condiciones específicas de uso definidas?
Comprensibilidad (Facilidad de comprensión) ¿El producto permite al usuario entender si el software es adecuado, y cómo éste puede ser usado para tareas y condiciones de uso particulares?
(Facilidad de Aprendizaje) ¿Es el producto capaz de permitir al usuario aprender su aplicación?
(Operatividad) ¿Es el producto capaz de permitir al usuario operarlo y controlarlo?
¿Es el producto capaz de adherirse a los estándares, convenciones, guías de estilo o reglamentos relacionados con facilidad de uso?
Mantenibilidad ¿El producto puede ser modificado?
¿Estas modificaciones pueden incluir correcciones, mejoras o
$'
adaptaciones del a los cambios en el ambiente Retail, en requisitos y en especificaciones funcionales?
¿El tiempo de respuesta para incorporar cambios es el esperado por el usuario?
¿Se cuenta con un producto estable? (Es la capacidad del producto para prevenir efectos imprevistos a partir de modificaciones).
(Facilidad de Prueba) ¿El producto es capaz de permitir que el software modificado sea validado?
Portabilidad (Instalabilidad) ¿Es el producto capaz de ser instalado en un ambiente específico definido?
(Coexistencia) ¿Es el producto capaz de coexistir con otros software independientes, en un ambiente común y compartiendo recursos del ambiente definido?
Tolerancia a fallas ¿Es el producto capaz de continuar a pesar de los errores encontrados?
Requerimientos ¿Existe flexibilidad del proveedor en la incorporación de requerimientos nuevos al proyecto?
Dominio Retail ¿El servicio prestado refleja un nivel de conocimiento apropiado de acuerdo a las necesidades del Retail?
Soluciones sin defectos ¿Se entrega el producto con calidad de entregable, es decir, con un mínimo de defectos encontrados; aceptables?
Plazo ¿Se cumple la entrega del producto en los plazos acordados?
Soporte ¿Se cuenta con un tiempo de respuesta de soporte (contacto) inferior a 30 minutos?
¿Se cuenta con un soporte en terreno (presencial) inferior a 4 horas?
Cobertura ¿Se cumple con las definiciones de soporte en horario definido?
Documentación ¿En la entrega final del producto, se cuenta con la documentación completa; de: usuario, instalación y configuración del producto?
Programas ¿Se cuenta con los entregables propuestos y acordados?
Capacitación ¿Una vez concluido el proceso de entrega del producto, se siente entrenado para operar el producto?
El esquema de puntuación para efectos de evaluar el cuestionario se propone en una escala del 0 (bajo) al 10 (alto) para percibir el grado de satisfacción de los clientes.
$(
7.3.2 Aplicación Cuestionario a Clientes El cuestionario se desarrolla y evalúa en base al procedimiento definido anteriormente. Sin embargo, se debe considerar que el cuestionario para determinar el grado de satisfacción del cliente está basado en las siguientes características:
- Aplicado en 2 clientes, representando los promedios.
- La evaluación se realiza en dos instancias en el tiempo, sin metodología y con la metodología definida, evaluación 1 y 2 respectivamente.
- El perfil del encuestado es de nivel ejecutivo de la empresa Retail (Gerente Proyecto y/o Gerente Informática), el cual es el responsable de las áreas técnicas, soporte, servicios y proyectos internos, como también es el responsable e interlocutor válido de las diferentes áreas del negocio (usuarios).
- Los proyectos definidos son cortos (2 a 4 meses) y de similares características.
La tabla siguiente presenta los resultados de la evaluación promedio de clientes, evaluación 1 y evaluación 2, con los resultados obtenidos y asociados a cada atributo de calidad.
Tabla 10 - Resultados Aplicación del Cuestionario de Calidad a Clientes FIDCOM
Atributo Pregunta Evalua1 Evalua2
Funcionalidad ¿El producto cumple con los requisitos funcionales (explícitos)?
10 10
¿El producto cumple con los requisitos implícitos esperados?
9 8
Eficiencia ¿El producto tiene la capacidad de entregar un desempeño apropiado, en relación con la cantidad de recursos utilizados, bajo las condiciones establecidas?
7 7
Confiabilidad ¿Tiene capacidad el producto para evitar fallas como resultado de errores?
6 7
¿El uptime del producto es por sobre el 95% requerido?
10 10
Facilidad de uso ¿Es el producto fácil de comprender, aprender y usar por el usuario y ser atractivo para él, bajo las condiciones específicas de uso definidas?
5 5
$)
Comprensibilidad ¿El producto permite al usuario entender si el software es adecuado, y cómo éste puede ser usado para tareas y condiciones de uso particulares?
5 5
¿Es el producto capaz de permitir al usuario aprender su aplicación?
5 5
¿Es el producto capaz de permitir al usuario operarlo y controlarlo?
10 10
¿Es el producto capaz de adherirse a los estándares, convenciones, guías de estilo o reglamentos relacionados con facilidad de uso?
5 5
Mantenibilidad ¿El producto puede ser modificado? 5 5
¿Estas modificaciones pueden incluir correcciones, mejoras o adaptaciones del a los cambios en el ambiente Retail, en requisitos y en especificaciones funcionales?
10 10
¿El tiempo de respuesta para incorporar cambios es el esperado por el usuario?
5 8
¿Se cuenta con un producto estable? (Es la capacidad del producto para prevenir efectos imprevistos a partir de modificaciones).
8 8
(Facilidad de Prueba) ¿El producto es capaz de permitir que el software modificado sea validado?
6,5 5
Portabilidad (Instalabilidad) ¿Es el producto capaz de ser instalado en un ambiente específico definido?
8 8
(Coexistencia) ¿Es el producto capaz de coexistir con otros software independientes, en un ambiente común y compartiendo recursos del ambiente definido?
5 5
Tolerancia a fallas ¿Es el producto capaz de continuar a pesar de los errores encontrados?
7 7
Requerimientos ¿Existe flexibilidad del proveedor en la incorporación de requerimientos nuevos al proyecto?
5 7
Dominio Retail ¿El servicio prestado refleja un nivel de conocimiento apropiado de acuerdo a las necesidades del Retail?
8 7
Soluciones sin defectos
¿Se entrega el producto con calidad de entregable, es decir, con un mínimo de defectos encontrados; aceptables?
5 8
$*
Plazo ¿Se cumple la entrega del producto en los plazos acordados?
5 8
Soporte ¿Se cuenta con un tiempo de respuesta de soporte (contacto) inferior a 30 minutos?
10 10
¿Se cuenta con un soporte en terreno (presencial) inferior a 4 horas?
10 10
Cobertura ¿Se cumple con las definiciones de soporte en horario definido?
10 10
Documentación ¿En la entrega final del producto, se cuenta con la documentación completa; de: usuario, instalación y configuración del producto?
5 8
Programas ¿Se cuenta con los entregables propuestos y acordados?
10 10
Capacitación ¿Una vez concluido el proceso de entrega del producto, se siente entrenado para operar el producto?
10 10
7.3.3 Análisis de Resultados del Cuestionario a Clientes La aplicación del cuestionario fue realizada a dos clientes representativos, donde se aplicó el cuestionario a los dos clientes de una vez y se obtuvo el promedio, en dos instancias de tiempo, sin y con metodología, evaluación 1 y evaluación 2 respectivamente, por medio de entrevista con Gerentes de Sistemas y/o Proyectos. Por consiguiente, los resultados obtenidos representan el promedio entre los dos clientes, para cada una de las evaluaciones realizadas, evaluación 1 y evaluación 2.
Por lo tanto, el resultado es que en su conjunto los clientes han mejorado su percepción de calidad, con respecto el grado de satisfacción, comparado entre la evaluación 1 y evaluación 2, cuando no se usa y usa la metodología respectivamente. Por ende, los resultados permiten suponer que la percepción de calidad ha mejorado en lo referente a la confiabilidad, mantenibilidad y documentación, como también se percibe que ha mejorado la calidad del entregable con menores defectos y una mejora en los plazos. No obstante, se refleja un leve deterioro en atributos de calidad tales como: funcionalidad y dominio retail. Consiguientemente, no se percibe diferencias en atributos de calidad tales como: eficiencia, comprensibilidad, facilidad de uso, portabilidad, tolerancia a fallas, soporte, cobertura y capacitación.
Se debe considerar que este cuestionario sólo entrega una pauta general de las características fundamentales que se requieren para cada atributo de calidad pero no verifica en forma explícita que las características planteadas hayan sido realmente cumplidas por el cliente. Por consiguiente, después de aplicar el cuestionario, se deben proporcionar las instancias necesarias para que la o las personas que lideren cada proyecto, validen su cumplimiento real, ya sea a través de la forma visual en las áreas aplicadas a la organización, o que la información otorgada sea la correcta y que no existan errores.
%+
7.4 Evaluación a la Resolución de Problemas Recurrentes en Desarrollo Los problemas recurrentes en el proceso de desarrollo de software en FIDCOM (capitulo 4.1) se han mitigado y/o absorbido al aplicar la nueva metodología. Esto basado en el análisis de las variables de proyectos en los últimos 12 meses, las cuales se demuestran en la siguiente tabla.
Problema Evaluación de Resolución, Mitigación o Absorción al aplicar la
metodología
Recursos Limitados Se cuenta con un proceso definido y de mejoramiento continuo que guía a
FIDCOM en la obtención de una mejor documentación, mantenibilidad y
confiabilidad de los proyectos. Queda huella de los trabajos realizados. Esto
ha permitido la entrega de soluciones de mejor calidad, en un esquema de
mejoramiento continuo y disminuyendo la dependencia de los recursos
humanos.
Plazos
Sobrepasados
Se cuenta con un proceso definido, conocido por FIDCOM y el cliente. Se
demuestra que se requiere mayor involucramiento del cliente en el proyecto.
Esto permite la transparencia en los procesos de desarrollo, por consiguiente,
los plazos son acordados con el cliente y monitoreados permanentemente.
Mantenciones
Crecientes
Se ha cambiado desde el desarrollo de proyectos a la medida a un enfoque de
productos. Las mantenciones y liberaciones son generalmente programadas.
Desarrollos a
Última Hora
Esto dado las exigencias de negocio por satisfacer las necesidades para
enfrentar la competencia permanente. Se ha detectado que aún existe este
tipo de casos. Sin embargo, el cliente ha ido entendiendo los riesgos que
implica esta modalidad de trabajo.
Requisitos
Ambiguos,
Incompletos, No
Definidos y No
cumplidos.
Este problema recurrente se ha mitigado en más del 90% de los casos, con un
mínimo grado de rigor, donde la exigencia es requerir que los requisitos deben
ser por escrito, aprobados por el cliente y validados por el arquitecto. A pesar
de lo anterior, de existir ambigüedad, se acuerda con el cliente tratar estas
situaciones por medio de controles de cambio.
%"
8 Conclusiones y Proyecciones
8.1 Conclusiones El desarrollo de las conclusiones se realiza en base a diferentes puntos de vista.
- Punto de Vista Conceptual
- Punto de Vista Personal
- Punto de Vista Metodológico
- Punto de Vista de Negocio
A continuación se describe cada uno de ellos.
8.1.1 Punto de Vista Conceptual El sustentar el crecimiento organizacional definido y planeado con productos de calidad, requiere tener procesos de calidad, armonizados, estandarizados y uniformes, que permitan contar con procesos replicables y exportables.
La metodología de desarrollo de software definida permite presumir que se tiene una mejora en el software entregado a los clientes. Se confirma así la correlación entre calidad de software y la calidad del proceso que lo produce; detectando la percepción de mejora en la confiabilidad, mantenibilidad y documentación de los entregables en clientes. En la empresa al mejorar el proceso se responde a la necesidad de tener una guía para perfeccionar cada una de las etapas en el desarrollo y mantenimiento del software, así como también los servicios asociados. Esto ha permitido la entrega de soluciones de mejor calidad, en un esquema de mejoramiento continuo y disminuyendo la dependencia de los recursos humanos.
Finalmente podemos afirmar que se han cumplido los objetivos propuestos y se ha elaborado una metodología fruto de adaptar UP para el desarrollo de software de calidad para soluciones en Retail y que está apoyando el crecimiento organizacional de FIDCOM.
8.1.2 Punto de Vista Personal La satisfacción por el desarrollo del tema elegido y con la obtención de los objetivos propuestos, y las motivaciones que lo incitaron son el principal logro que ha permitido ampliar la experiencia profesional y aplicar los conocimientos adquiridos con la capacidad de utilizar los conocimientos teóricos y prácticos. La motivación ha sido trabajar en una empresa mejor, ser reconocido por nuestros Clientes por la calidad de nuestros productos y servicios entregados; el contar con soluciones en tiempos y costos predecibles; el mejorar la satisfacción personal de los integrantes en la obtención de resultados; el disminuir las sobrecargas de trabajo, disminuyendo en un 40% los sobre tiempo, como también las jornadas de trabajo adicional los fines de semana y días festivos.
Este trabajo permitió converger en términos prácticos las disciplinas centrales del Programa de Magister en Tecnologías de Información, en lo que respecta a la adopción, uso y gestión de tecnologías de información, en el ámbito de: gestión y desarrollo de proyectos de TI, ingeniería de software, calidad de software y mejoramiento del proceso de software.
%#
8.1.3 Punto de Vista Metodológico Desde el punto de vista metodológico y con respecto a la metodología de desarrollo de software presentada, esto debe ser entendido como una primera versión de la solución a la implantación de una metodología que permite definir un modelo de proceso para el desarrollo de software de calidad en organizaciones que construyen software para la industria del Retail, específicamente para el Front Office.
Este modelo metodológico ha permitido verificar que los procesos satisfacen condiciones que la industria ha definido como apropiadas y ayuda a examinar la efectividad de nuestros procesos. Nos permite responder a exigencias del mercado y contar con un marco de trabajo que describe los elementos claves para un efectivo proceso de software, es decir evolucionar desde un estado con fines específicos a un proceso disciplinado. El tener un proceso organizacional que permite tener calidad consistente en el tiempo y nos permite medirnos contra indicadores que son usados por la industria, nos permite mejorar la calidad de nuestros productos a través de la mejora de la calidad de nuestros procesos para establecer un plan de mejoramiento del proceso de software.
Finalmente se puede afirmar que un modelo de proceso para el desarrollo de software de calidad basado en las buenas prácticas de la industria y estándares definidos permite una mejora en la eficiencia organizacional de empresas desarrolladoras de software y apoyan el crecimiento futuro.
8.1.4 Punto de Vista de Negocio Desde el punto de vista de negocios se ha conseguido mostrar que debido al cambio de metodología se ha logrado soportar el crecimiento organizacional, en términos de ventas, clientes, empleados, productos y proyectos, como también entregar la cobertura geográfica presupuestada. Esto basado en asegurar la producción de software de calidad dentro de plazos y presupuestos predecibles, consiguiendo demostrar la mejora en la percepción de satisfacción de Clientes. Esto con la meta de mantener clientes, mejorar la calidad de productos, reducir los tiempos al mercado y contar con personal altamente calificado.
Se han mejorado los procesos internos de desarrollo, guiados con una visión común, permitiendo disminuir riesgos en planificación de desarrollo, como también mejorando la comunicación entre personas y se ha implementado un proceso de mejora continua. Esto ha permitido mejorar la satisfacción personal en la obtención de resultados, disminuyendo las sobrecargas de trabajo y disminuyendo los tiempos para realizar los trabajos. Esto se ha basado en contar con una metodología que nos permite realizar nuestros procesos de desarrollo de software de calidad; al contar con una comunicación más eficaz en las áreas técnicas; dar visibilidad, inicialmente, internamente a los proyectos, y de ser necesario a nuestros clientes. Así hemos podido compartir con nuestros clientes nuestro nivel de eficiencia y eficacia en la administración de los proyectos.
8.2 Proyecciones El trabajo presentado permite un sinnúmero de posibilidades de estudio potencial y futuro dentro de los cuales destacan el desarrollar un modelo de proceso de software para otras industrias, no sólo Retail. Además se debe incluir proceso de mejora continua y generar el vínculo entre la gestión de proyectos, procesos de desarrollo de software y las unidades de comercial, administración y finanzas y el área de servicios.
Esencialmente se debe considerar que UP es una metodología orientada a conducir el proceso de desarrollo de software en sus aspectos técnicos y permite representar la temporalidad de los proyectos de desarrollo de software a través de fases de trabajo. Sin embargo, un proyecto de desarrollo de la más alta calidad requiere ser administrado, donde se supone: Planificación, Supervisión, Control, Predictibilidad, Riesgos, entre otros. Para esto, se sugiere integrar una metodología que permita administración de los proyectos de desarrollo de software.
%$
8.3 Comentarios Finales Para finalizar las conclusiones se presenta a continuación algunos comentarios en torno a la temática propia de la metodología de desarrollo de software de calidad, basado en los siguientes tres aspectos:
1. Condiciones de Implementación
2. Riesgos a Considerar
3. Limitaciones Observadas
8.3.1 Condiciones de Implementación Se recomienda comenzar con un plan estratégico, definiendo la misión, visión, motivaciones y objetivos, basado en objetivos de negocio reales y objetivos de calidad, como también iniciar con una fase de inducción, capacitación y entrenamiento; fomentar la participación de las personas involucradas en el proyecto y aceptar objetivamente las sugerencias y propuestas de los usuarios involucrados; tener metas medibles de corto, mediano y largo plazo, las cuales deben ser conocidas periódicamente a nivel organizacional.
Se requiere un involucramiento de la dirección ejecutiva superior de la empresa, así como de los usuarios claves, esto basado en los objetivos de negocio identificados. Es preciso que se defina quiénes van a evaluar el éxito de la implantación, sus alcances y prioridades; no necesariamente habrá acuerdos, ya que lo normal es que existan oposiciones de intereses u objetivos que pueden colisionar, especialmente a nivel operativo (áreas operativas y personas).
Se debe definir los principios de priorización del proyecto, identificando el nivel de prioridad y tiempo de asignación de los recursos en relación a los otros proyectos que se desarrollan en la empresa. Se debe asignar el tiempo del personal ejecutivo e intermedio, que a la vez constituye una señal pública de la relevancia del proyecto. Todos los gerentes e involucrados en el proceso deben saber de calidad de software y los beneficios para la empresa. Además, el generar los indicadores adecuados que puedan expresar los beneficios (aumento de productividad, mejoramiento de clima organizacional, entre otros) y problemas (aumento de conflictos interpersonales, entre otras) que se generarán, permitirá evaluar y reevaluar el estado actual de los proyectos implantados y en proceso de implementación, para así estar orientándolos en la dirección adecuada.
Se debe plantear un proyecto piloto previo al proceso de institucionalización organizacional. Determinar alternativas de acción y la mejor manera de hacer las cosas. Se debe establecer los límites del proyecto de implantación, el impacto financiero, objetivos, cronogramas de actividades y la determinación de indicadores para medir la productividad del equipo de trabajo.
La calidad debe involucrar a toda la organización. Es un proyecto de la organización, no de la unidad de desarrollo, no es un tema técnico. Debe existir un responsable líder de calidad para toda la organización. El responsable debe tener entre sus responsabilidades básicas organizar al grupo de trabajo, dar visibilidad al proyecto, seleccionar en consenso los puntos a desarrollar y la metodología de trabajo, analizar la información recabada y los resultados obtenidos.
8.3.2 Riesgos a Considerar Los riesgos a considerar con su correspondiente plan de mitigación deben responder a los siguientes aspectos identificados:
1. La falta de aptitud y actitud del personal para llevar la adaptación a los nuevos procedimientos, roles y funciones.
2. Que no exista un liderazgo bien definido.
%%
3. Comunicación inadecuada de los contenidos.
4. Incapacidad de la gerencia de resolver conflictos debido a los cambios organizacionales.
5. Falta de experiencia y capacidad en la implementación del proyecto.
6. Contradicciones intrínsecas al modelo de referencia a utilizar.
7. Se debe contar con personas flexibles que pueden y quieren trabajar con procesos definidos.
8. Guiarse por un plan.
9. Centrarse en el proceso, no en el producto, ni en la tecnología, ni en las personas (desde el punto de vista individual).
10. El punto de vista debe ser interno.
11. Visibilidad permanente. Destacar logros y avances.
12. Mejoramiento continúo.
13. Contar con el Líder de mejoramiento de calidad idóneo.
Los riesgos deben ser tratados, identificados y mitigados de acuerdo a los alcances del plan del proyecto de implantación.
8.3.3 Limitaciones Observadas El implementar metodologías de desarrollo de software puede generar retraso en la presentación de soluciones debido a la falta de orientación y definición de lineamientos. Lo anterior puede traer como consecuencia el enfrentamiento y discusiones no relacionadas con los objetivos planteados, generando malas prácticas en el proceso (“pavimentar la ineficiencia”).
El comportamiento de los miembros del grupo puede afectar la productividad del equipo: arrogancia, dificultad para levantar las indefiniciones, juicios automáticos y sin base, percepción de que es difícil o imposible el trabajo que se hace, inhabilidad para manejar errores, apatía, impaciencia o poca tolerancia, entre otros.
El visualizar el valor que tiene la metodología de desarrollo de software en la organización, donde el rol es la generación de valor y construcción de software de calidad, muestran un entorno favorable. Sin embargo, el proceso de implantación requiere de una gran cantidad de esfuerzo, recursos, tanto financiero como humano, y un proceso iterativo de corto, mediano y largo plazo, el cual presente resultados que permitan visualizar los logros y falencias de la implementación.
Sin embargo, el modelo muestra que las PYME deberán considerar sus propias limitaciones a la hora de establecer las inversiones proyectadas en los planes de implementar metodologías de desarrollo de software, basado en estándares y sus buenas prácticas.
%&
9 Anexo 1 – Definición de Roles de Implementación
Tabla 11 - Roles de Implementación
Rol Descripción
Analista Funcional
Es el actor encargado del levantamiento funcional con lo que diseña y mantienen los casos de uso. En base a los casos de uso se diseña el plan de pruebas y los casos de prueba. El analista funcional también participa en el proceso de certificación con el cliente, realiza la documentación y capacitación necesaria. El analista funcional participa en todo el proceso de desarrollo de software.
Arquitecto Es el actor encargado y responsable técnico del proyecto, toma decisiones de diseño y mantiene el documento de análisis y diseño de arquitectura preliminar y candidata. También construye las especificaciones para el Desarrollador, y plan de pruebas para el Analista Funcional.
Cliente Es el actor que entrega los requerimientos de usuario de acuerdo a sus necesidades. También aprueba la propuesta comercial y genera la orden de compra, lo que es el punto de inicio del trabajo. Se requiere, en lo posible, su participación permanente.
Tester Es el actor encargado de realizar las pruebas. Recibe el setup desde desarrollo, ejecuta los casos de prueba, si encuentra defectos los reporta desde la plantilla de defectos al desarrollador. Al recibir el setup desde desarrollo con los defectos corregidos, debe replicarlos para aprobarlos y generar la liberación del setup para integrar en el cliente.
Comercial Es el actor responsable que mantiene la relación comercial con el cliente. El responsable comercial interactúa en primera instancia con el cliente y realiza la propuesta comercial. Entre sus responsabilidades esta el hacer seguimiento a las expectativas del cliente y velar por el cumplimiento.
Desarrollador Es el actor responsable de las implementaciones en el proceso de desarrollo. El desarrollador recibe las especificaciones técnicas desde el arquitecto del proyecto, implementa especificaciones y realiza las pruebas unitarias. Genera setup para validación y construye la documentación interna de instalación e integración. Una vez que se realizan las pruebas y se detectan hallazgos, recibe la plantilla de hallazgos (defectos), los resuelve y envía nuevamente un setup con las especificaciones revisadas y resueltas. Así sucesivamente hasta lograr un entregable de calidad esperada.
Finanzas Es el actor responsable de verificar la recepción de la correspondiente orden de compra, despachos y facturación, como también la construcción y legalización de contratos.
Integrador Es el actor que integra el setup liberado en el ambiente del cliente. Esto se realiza al recibir un setup desde el proceso de validación.
Servicio Es la o las personas que realizan los servicios de implantación, capacitación y puesta en marcha de piloto. La unidad de Servicios es responsable del primer contacto con el cliente, filtrar el reporte del cliente y registrarlo. La unidad de servicio (soporte primer nivel) es responsable de verificar que el problema se replique en ambiente de validación y registrar la incidencia para su resolución.
%'
10 Anexo 2 – Definición de Artefactos de Implementación
Tabla 12 - Artefactos de Implementación
Artefactos Descripción
Acuerdo Cliente Este artefacto corresponde a los alcances del proyecto como complemento a la propuesta comercial y permite formalizar los entendimientos.
Casos de Uso Este artefacto permite plasmar los deseos de usuarios, basado en técnica utilizada para levantar requerimientos.
Manuales Manuales de instalación e integración interna, como también manuales de usuario. La construcción de Manuales se inicia en la fase de construcción y se concluye en la fase de transición.
Panel de Control Corresponde a la representación de la información del monitoreo y control que se realiza en el proyecto.
Plan de Proyecto El plan incluye estimación de los elementos y tareas, recursos necesarios, negociación de compromisos, establecimiento de un calendario, e identificación y análisis de los posibles riesgos que pueda tener el proyecto.
Plan de Pruebas Cada prueba debe tener especificados los requerimientos del ambiente requerido para la validación, restricciones y técnicas que debe ocupar el analista para la realizar los Casos de Prueba.
Plantilla de Defectos e Incidentes
Esta plantilla indica los defectos encontrados en el setup. De esta forma se informa al desarrollador para que realice las correcciones y/o aclaraciones correspondientes.
Propuesta Comercial
Este documento/propuesta es la que se le entrega al cliente, con las estimaciones realizadas por la persona encargada del proyecto. Estas estimaciones son de tiempos requeridos por una unidad de trabajo y el costo que esto tiene.
Setup Corresponde al paquete de instalación liberado:
1. El setup es la versión generada y liberada por desarrollo. Se considera de entrada a validación.
2. El setup es la versión generada para hacer un entregable a Cliente. Es la versión probada con casos de pruebas conocidos y liberada por área de validación. Cada vez que el área de validación realiza pruebas conocidas. El setup es la salida de validación y la entrada en el proceso del cliente. Se realizan pruebas con usuarios reales.
3. Es la versión aprobada (certificada) por el cliente, en ambiente del cliente, con usuarios reales y lista para implantar en el local piloto.
%(
4. Es la versión aprobada en piloto y lista para implantar en todas las tiendas.
SAD Corresponde al artefacto que contiene la documentación de la arquitectura.
Casos de Prueba Este artefacto mantiene los casos de prueba formales de criterios para el proyecto. Lo que caracteriza un escrito formal de caso de prueba es que hay una entrada conocida y una salida esperada, los cuales son formulados antes de que se ejecute la prueba.
La entrada conocida debe estar de acuerdo con una precondición y la salida esperada debe probar la poscondición.
Especificaciones Las especificaciones se refieren a cómo se implementará los requisitos a nivel de código.
Plan de Mitigación
Corresponde al artefacto que contiene el plan de mitigación a cada uno de los riesgos conocidos y tratados. Al listar los posibles riesgos del proyecto en una tabla, ésta es ordenada por probabilidad y por impacto. Los riesgos de alta probabilidad y de alto impacto pasan a lo alto de la tabla y para estos se analiza una estrategia de mitigación.
%)
11 Referencias [1] Ivar Jacobson, Grady Booch y James Rumbaugh. The Unified Software Development Process. Rational
Software Corporation. Addison-Wesley, 1999.
[2] IBM, Retail, http://www.ibm.com/ar/businesscenter/solutions/industry_retail.phtml, Diciembre 2007.
[3] USA Foreign Agricultural Service. Distribution Services.
http://www.fas.usda.gov/info/factsheets/China/distribution.html, Retrieved on 2006-04-04.
[4] Craig Larman. UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso
unificado. Pearson Prentice Hall. Año 2003.
[5] Craig Larman. Agile & Iterative Development: A Manager's Guide. Pearson Education. Año 2004.
[6] USA, SEI – Software Engineering Institute – Carnegie Mellon, http://www.sei.cmu.edu/ Año 2008.
[7] Scott W. Ambler, Best Practices for Software Development, http://www.ambysoft.com, Año 2006.
[8] R. Pressman, Ingeniería del Software - un enfoque práctico, Mc Graw Hill, Quinta Edición, España, Año
2002.
[9] A.C. Gillies. Software Quality, Theory and Management. Thomson Computer Press. 1999.
[10] R. Kopelman. Administración de la Productividad en las Organizaciones,Traducción de la Primera Edición
en Inglés, Editorial Mc Graw Hill, México, 1986.
[11] F. Kast y J. Rosenzweig, Administración en las Organizaciones – Enfoque de Sistemas y Contingencia, Mc
Graw Hill, Segunda Edición en Español, México, 1998.
[12] I. Sommerville, Ingeniería del Software, Editorial Addison Wesley, Sexta Edición, México, 2002.
[13] H. Van Vliet. Software Engineering, Principles and Practice, Second Edition. John Wiley and Sons, 2001.
[14] Sparx Systems, Database Modeling, http://www.sparxsystems.com.au/resources/uml_datamodel.html, 2007.