Subido por Kevin Rodríguez

Dialnet-ProcesoDeDesarrolloDeSoftwareConTecnicasDeCreativi-6575445

Anuncio
Vol. 18, no. 1, pp. 99-110, 2019
Revista UIS Ingenierías
Página de la revista: revistas.uis.edu.co/index.php/revistauisingenierias
Proceso de desarrollo de software con técnicas de creatividad, para
las Pymes de la ciudad de Neiva
Software development process with creativity techniques, for Neiva
city SMEs
Eduardo Martínez-Vidal1, Sandra V. Hurtado-Gil 2
1Estudiante
Maestría en Gestión y Desarrollo de Proyectos de Software, Universidad Autónoma de Manizales y Docente
Corporación Universitaria del Huila, Colombia. Email: [email protected]
2
Departamento de Sistemas e Informática, Facultad de Ingenierías, Universidad de Caldas, Colombia.
Email: [email protected]
Recibido: 28 octubre, 2017. Aceptado: 23 marzo, 2018. Versión final: 21 junio, 2018.
Resumen
El proyecto que se presenta en este artículo se origina a partir de una necesidad identificada en empresas de desarrollo
de software del municipio de Neiva, relacionada con hacer uso de buenas prácticas en el proceso de desarrollo de
software, que permitieran la construcción de productos de calidad con un factor diferenciador. Para dar respuesta a
esta necesidad, se realizó la adaptación de un proceso de desarrollo de software, a partir del proceso DAD (Disciplined
Agile Delivery), e incorporando técnicas creativas para la creación de productos propios. Este proceso fue aplicado en
una Pyme, permitiendo no solo la validación en un contexto real, sino también contribuyendo a la construcción de un
producto propio con características atractivas.
Palabras clave: atributos de calidad; DAD (Disciplined Agile Delivery); métodos ágiles; proceso de desarrollo de
software; Pymes (pequeñas y medianas empresas); técnicas de creatividad.
Abstract
The project presented in this article born from a need identified in software development companies in Neiva city,
about to the use of good practices in the software development process, allowing the construction of quality products
with a differentiating factor. To respond to this need, we adapt a software development process, based on DAD
(Disciplined Agile Delivery) process, and incorporating creative techniques for the creation of own products. This
process was applied in one small enterprise, allowing not only the validation in a real context, but also contributing to
the construction of one own product with attractive characteristics.
Keywords: quality attributes; DAD (Disciplined Agile Delivery); agile methods; software development process;
SMEs (small and medium-sized enterprises); creativity techniques.
1. Introducción
La industria del software está definida en Colombia como
un factor relevante en el desarrollo del país [1], pero debe
enfrentar grandes retos en una industria globalizada,
principalmente relacionados con capacidades y
herramientas para aprovechar las oportunidades de
mercado [2].
ISSN impreso: 1657 - 4583. ISSN en línea: 2145 – 8456, CC BY-ND 4.0
E. Martínez, S.V. Hurtado, “Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva,” Rev. UIS Ing.,
vol. 18, no. 1, pp. 99-110, 2019. doi: https://doi.org/10.18273/revuin.v18n1-2019008
100
En el municipio de Neiva, departamento del Huila, existe
un incipiente grupo de empresas dedicadas al desarrollo
de software, que desean ser reconocidas en la región
(Suroccidente colombiano) y en el país. Sin embargo, una
encuesta realizada entre los empresarios, durante la fase
de diagnóstico de este proyecto, mostró que muchas de
estas empresas (el 57.14 % de las empresas encuestadas)
tienen un grupo de 5 o menos personas, y la gran mayoría
(el 78.26 % de las empresas encuestadas) no tienen
definido ningún proceso o metodología para el desarrollo
de software.
Esta situación no es desconocida en nuestro país [3] [4]
[5], donde las pequeñas y medianas empresas – Pymes –
debido a sus limitados recursos (tanto humanos como
financieros) no invierten apropiadamente en la aplicación
de buenas prácticas en sus desarrollos. Sin embargo,
existen diversos antecedentes que muestran como la
creación o adaptación de procesos de desarrollo de
software contribuye a mejorar diferentes aspectos
(calidad, productividad, etc.) en las Pymes
desarrolladoras de software.
En algunos de estos antecedentes [6] [7] [8] [9] se
establecen procesos basados en modelos como CMMI
(Capability Maturity Model Integrated)1 o PSP
(Personal Software Process)2, combinados con métodos
ágiles, logrando aumentar el porcentaje de cumplimiento
de algunas de las áreas de CMMI o contribuyendo al
logro de certificaciones de modelos de calidad, pero a
veces con algunas dificultades en la implementación
completa del proceso.
Otros artículos [10] [11] [12] [13] se centran en la mejora
de procesos, y proponen herramientas o marcos de
trabajo para ayudar a las organizaciones en la parte de
apropiación y aplicación de mejoras, especialmente en
los procesos de desarrollo.
Todos estos antecedentes, aunque totalmente válidos, no
tenían en cuenta un elemento importante para las
empresas de desarrollo de software de la ciudad de
Neiva: el desarrollo de productos propios con algún
factor diferenciador. Es entonces cuando se propone el
objetivo de la investigación: Adaptar un proceso de
desarrollo de software incorporando técnicas creativas,
que permita crear productos propios en las Pymes de
desarrollo de software del municipio de Neiva.
1
http://cmmiinstitute.com/
http://resources.sei.cmu.edu/library/assetview.cfm?assetid=5283
2
E. Martínez, S.V. Hurtado
Después de analizar varios procesos de software
existentes y varias técnicas creativas, se propone la
adaptación del proceso DAD (Disciplined Agile
Delivery) [14], el cual combina elementos de métodos
ágiles como Scrum y XP (eXtreme Programming), con
prácticas de un modelo más tradicional como UP
(Unified Process)3. En esta adaptación se tienen en
cuenta no solo las particularidades de las Pymes de la
ciudad de Neiva, sino que también se integran técnicas
creativas, presentando así un elemento diferenciador
importante frente a otros procesos existentes, y que puede
ser de gran utilidad para Pymes que deseen desarrollar un
producto propio.
El proceso resultante se aplica en una prueba piloto en la
empresa NuevasTIC, contribuyendo no solo a la mejora
en la calidad del producto, el cual se desarrolla con
atributos atractivos (resultado de la aplicación de las
técnicas creativas), sino también al logro de la
certificación en el esquema de calidad IT Mark4.
El resto del artículo se desarrolla de la siguiente forma:
La sección 2 incluye una corta introducción a los
conceptos, en la forma de un referente teórico; en la
sección 3 se presenta la metodología empleada para el
desarrollo del proyecto; la sección 4 presenta los
resultados del proyecto, incluyendo una visión global del
proceso, y, por último, en la sección 5 se presentan las
conclusiones, las recomendaciones y los planteamientos
para futuros trabajos de investigación.
2. Referente teórico
2.1. Procesos de software
Uno de los logros en el desarrollo de la ingeniería de
software, es la definición de una guía para el cuerpo del
conocimiento: SWEBOK [15], la cual permite
caracterizar la profesión y presenta de manera global las
prácticas, herramientas y métodos que se usan
actualmente en el escenario de la ingeniería de software.
Esta guía incluye quince áreas de conocimiento, entre las
cuales se encuentra el área: “Procesos de Ingeniería de
Software”, que define como uno de los temas la
adaptación de procesos de software, lo cual establece el
contexto general para el proyecto. En esta guía se
menciona que actualmente existe una amplia variedad de
modelos de ciclos de vida del software, que van desde los
modelos lineales (como cascada), hasta los modelos
ágiles.
3
http://www.methodsandtools.com/archive/archive.php?
id=32
4
Esquema de certificación para PYMEs de TI. http://itmark.eu/
Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva
En la industria del software, está tomando bastante fuerza
el uso de procesos de desarrollo de software basados en
las metodologías ágiles [16] [17]. Los procesos de
desarrollo con enfoques ágiles permiten construir
aplicaciones en ciclos cortos, con el propósito de finalizar
los proyectos en el menor tiempo posible y entregando
valor de manera constante al cliente, siendo ambos
factores determinantes en el éxito de un proyecto.
Posiblemente los métodos ágiles más conocidos sean
Scrum y XP, pero existen otros igualmente interesantes
como Kanban, FDD (Feature Driven Development),
Modelalo ágil o DAD (Disciplined Agile Delivery).
El proceso DAD (Disciplined Agile Delivery) es un
enfoque híbrido que extiende Scrum con estrategias
probadas del modelado ágil (AM), programación
extrema (XP) y el proceso unificado (UP) [14]. Este
proceso incluye un ciclo de vida básico, el cual se ilustra
en la Figura 1.
101
2.2. Creatividad
“La creatividad solo puede atribuirse a los sujetos y no a
las cosas, las personas tienen la facultad de adaptar y
transformar el mundo a beneficio propio y a las
necesidades en diferentes escenarios que se le pueda
presentar a través de las ideas que solo este puede
generar, dependiendo de la memoria, el razonamiento
lógico, el aprendizaje y la percepción; el acto creativo
rompe la cotidianidad obteniendo un grado más alto de
innovación cuando el resultado no es conocido en lo ya
existente, pudiéndose comprobar y valorar su calidad”
[18].
En el proyecto se busca que las Pymes del municipio de
Neiva no solamente desarrollen software con
funcionalidad básica, sino que estos productos que son
creados a partir de las ideas del equipo de trabajo de la
organización puedan generar un impacto a un grupo
objetivo mayor mediante la identificación de
características atractivas que posiblemente contribuyan a
la creación de productos innovadores.
Cuando se habla de características atractivas se está
haciendo referencia al Modelo Kano, el cual sirve tanto
como referente como técnica creativa. “El objetivo de
esta técnica es la de entregar un producto funcional con
atributos que van más allá de las expectativas del cliente
enfocado en el posicionamiento del producto en el
mercado determinado por la originalidad, innovación y
utilidad” [19]. En este modelo se mencionan tres tipos de
atributos de la calidad:


Figura 1. Ciclo de vida básico propuesto en el método DAD.
Fuente: elaboración propia, adaptado de:
http://www.disciplinedagiledelivery.com/lifecycle/agilelifecycle/
En DAD se definen unos roles primarios y otros
secundarios, considerando diferentes características y
tamaños de proyectos. Dentro de los roles primarios, que
serían los más adecuados para una Pyme, se encuentran:
Product Owner, Team Member, Team Lead y
Architecture Owner [14]. Además de los roles, DAD
también define un conjunto de valores, principios y
lineamientos para orientar el desarrollo de software,
considerando a la vez un aspecto de flexibilidad para que
cada organización pueda seleccionar las prácticas
concretas para cada actividad del desarrollo.

Atractiva: Estos atributos proporcionan satisfacción
cuando se logran plenamente, pero no causan
insatisfacción cuando no se logran.
Unidimensional: Estos atributos dan como resultado
la satisfacción cuando se cumplen e insatisfacción
cuando no se cumplen.
Obligatoria: Estos atributos se dan por sentadas
cuando se cumplen, pero dan lugar a insatisfacción
cuando no se cumplen.
También es importante reflexionar sobre las
características “cotidianas” de las cosas. A menudo, se da
por hecho ideas preconcebidas sin pensar si son
apropiadas o no en una situación particular. Es aquí
donde contribuye la técnica del listado o lista de
atributos. Esta es una técnica creativa que consiste en ir
desmenuzando el problema en partes cada vez más
pequeñas y buscar soluciones alternativas a esas partes
[20], se van describiendo todos los componentes o
atributos de un producto, un proceso o un problema y
después se intenta hacer una lista de posibles alternativas
a estos atributos dados.
102
Con estos dos pilares teóricos, de procesos de software y
creatividad, se puede proceder con el desarrollo del
proyecto.
3. Metodología
Para dar cumplimiento a los objetivos específicos del
proyecto se aplicó una metodología soportada en etapas,
cada una a su vez basada en procedimientos que
permitieran alcanzar cada objetivo específico; el
fundamento que se usó en la ejecución del proyecto fue
el tipo de investigación aplicada experimental. A
continuación, se presentan las etapas de la metodología.
3.1. Diagnóstico
Se analizaron los datos de la encuesta aplicada a los
empresarios de la industria de software de la ciudad de
Neiva interesados en la mejora continua de sus
organizaciones mediante la implementación de procesos
que les permita crear productos de calidad y al mismo
tiempo desarrollar un producto propio, que los
identifique en el mercado.
La muestra para la encuesta fue por conveniencia,
tomada a partir de un conjunto de empresas convocadas
a participar en un evento en Corhuila, mostrando así su
interés en mejorar sus procesos de desarrollo de software.
De 51 empresas registradas en Neiva como
desarrolladoras de software, se convocaron a 12 que
contaran con experiencia de más de dos años en
desarrollo de software y un equipo de trabajo conformado
por más de una persona. De estas empresas, 10
participaron en el evento y 7 respondieron la encuesta.
La aplicación del instrumento permitió identificar el
contexto de las Pymes de desarrollo de software de la
ciudad de Neiva, logrando establecer los fenómenos que
influyen en la carencia de un proceso definido para el
desarrollo de productos software. Se ubicó la
problemática estableciendo las vulnerabilidades y
sugerencias por parte de los empresarios, estos elementos
se tuvieron en cuenta en la adaptación del proceso de
desarrollo.
E. Martínez, S.V. Hurtado
seleccionados en el marco de las metodologías ágiles y
tradicionales, para su caracterización, tomando de ellos
las actividades que tuvieran participación con el cliente y
al tiempo aporte al fortalecimiento de las fases de
análisis de requisitos y diseño; de igual manera se hizo
un estudio de algunas técnicas creativas como Canvas,
Lluvia de ideas, Lista de atributos, Modelo Kano y
Enfoque analógico, seleccionando aquellas de fácil
aplicación y que estuvieran relacionadas con conceptos
de satisfacción de los clientes.
Esta actividad se llevó a cabo mediante una revisión
bibliográfica a través de artículos y libros, con el
propósito de seleccionar los componentes que pudieran
aportar al fortalecimiento de la productividad en las
Pymes de la ciudad de Neiva, identificando técnicas que
no sobrecargaran el proceso de desarrollo, pero
conservando la calidad del producto e incentivando la
participación del equipo de trabajo.
3.3. Prueba piloto
Esta parte de la metodología se implementó el proceso de
desarrollo propuesto en la empresa de desarrollo
NuevasTIC de la ciudad de Neiva, en la fabricación de
un producto propio, que fue una aplicación web para
hacer seguimiento de las contravenciones de acuerdo con
la ley 1801 del 29 de Julio de 2016 del nuevo código de
policía; siendo los clientes identificados las secretarias de
gobierno de los municipios del departamento del Huila.
En esta actividad se realizó el respectivo seguimiento
para identificar los aciertos y posibles mejoras en el
proceso.
4. Resultados
De acuerdo con la metodología, y en concordancia con
los resultados esperados en la investigación, se describen
las actividades que se realizaron para la definición del
proceso de desarrollo de software con técnicas creativas,
y su aplicación en una empresa de desarrollo de software
de la ciudad de Neiva del departamento del Huila.
4.1. Diagnóstico
3.2. Diseño del proceso
En esta etapa se escogieron algunos procesos de
desarrollo de software como son: UP, TSP (Team
Software Process)5, ICONIX6, Scrum, XP y DAD,
5
http://www.sei.cmu.edu/tsp/
Se define como un proceso de desarrollo de software
práctico entre UP y XP http://www.informit.com/articles/article.aspx?p=167902
6
El objetivo de esta etapa fue identificar el estado actual
en las Pymes de desarrollo de software del municipio de
Neiva; para alcanzar dicho propósito se aplicaron siete
encuestas a empresarios del ámbito del desarrollo de
Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva
software, en el marco de la actividad realizada por la
institución de educación superior Corhuila perteneciente
a la ciudad.
Tabla 1. Análisis de variables de las encuestas de la fase
de diagnóstico.
DAD incluye prácticas que no se encuentran incluidas en
el Scrum como es el modelado y la documentación,
ofreciendo la posibilidad de adaptar estrategias
funcionales. Este proceso se identifica como la mejor
opción para plantear un proceso de desarrollo ágil sin
dejar a un lado la documentación, que es una actividad
relevante en la entrega de productos de calidad, que a su
vez es uno de los propósitos que se desea lograr en las
Pymes de desarrollo de software del municipio de Neiva.
Como este proceso ya integra buenas prácticas de otros
procesos de desarrollo, coincide con el propósito buscado
por el proyecto. Además, aunque no se encontraron
antecedentes de la aplicación de DAD en Colombia, está
basado en Scrum, del cual sí hay varios antecedentes de
aplicación, permitiendo tener en cuenta las
recomendaciones encontradas en estos antecedentes.
La definición del proceso contempla:
 Definición de roles.
 Definición de fases y actividades.
 Definición de técnicas y artefactos.
Los roles para el nuevo proceso se definieron a partir de
los roles establecidos en Scrum, más un rol para la parte
de gestión del proyecto, que se encuentra definido en
DAD. Aunque son cuatro roles, dos de ellos pueden ser
desempeñados por personas externas a la empresa,
considerando que existen Pymes de menos de cuatro
personas.
Roles
Para el diseño del proceso se utiliza como base DAD, el
cual, como se mencionó en el referente teórico, es un
enfoque híbrido que presenta la estructura general del
desarrollo, pero también es flexible en la selección de las
prácticas específicas.
Aplicación de metodologías en el
proceso de desarrollo
Se diseñó un proceso de desarrollo basado en las
metodologías ágiles, considerando lo siguiente: el
tamaño de la organización, la preparación del recurso
humano y el tiempo de entrega de los productos.
Actividades de mayor importancia en el
proceso de desarrollo
4.2. Diseño del proceso
Tamaño de la organización
Variable
Las variables más relevantes que se tomaron en cuenta en
la aplicación de la encuesta, para conseguir identificar el
estado actual de las empresas de desarrollo de software
en la ciudad de Neiva, se presentan a continuación.
103
Análisis
Tomando el número de integrantes que
conforman las organizaciones encuestadas,
se pudo establecer que se encuentran en el
rango de dos (2) a un máximo de diez (10)
personas entre el gerente y desarrolladores;
pero el promedio de general es de tres (3)
personas, indicando que las empresas de
desarrollo de la ciudad de Neiva son
relativamente pequeñas. Además, el talento
humano utilizado en el área de
programación
está
conformado
principalmente por estudiantes de último
semestre de carreras relacionadas con el
desarrollo de software.
No hay roles asignados de carácter
especializado en el equipo de trabajo, lo que
se debe principalmente al poco recurso
humano. A esto se suma que no hay un
monitoreo y evaluación precisa del trabajo
desarrollado por los mismos miembros del
grupo.
Las empresas encuestadas conocen o han
escuchado temas relacionados con las
metodologías, calidad de software y
procesos de desarrollo, pero estos no se
aplican por el poco plazo que tienen para
entregar los productos. La cultura de estas
empresas es la de hacer entregas
periódicamente de funcionalidades al
cliente, y durante el proceso de
funcionamiento en entorno de producción
se van localizando las fallas de la
aplicación, que son reportadas en el periodo
de garantía, para la respectiva solución.
Todos los encuestados coincidieron en que
el levantamiento de información es
importante y de mayor atención en el
momento de construir una aplicación,
seguido del análisis y diseño. Por otra parte,
las de menos interés o relevancia para las
empresas fueron las actividades de
documentación y pruebas.
Afirman los encuestados que apoyan las
investigaciones alrededor de técnicas,
métodos y metodologías que se puedan
utilizar en la fabricación de software,
siempre con el fin de crear productos de
calidad en el menor tiempo posible, y sin
dejar a un lado la documentación
Fuente: elaboración propia.
104
E. Martínez, S.V. Hurtado
Tabla 2. Roles del proceso.
Rol
Scrum Master
Product
Owner
Team Member
Team Leader
Descripción
Encargado de la orientación del
proceso, es quien contribuye al
cumplimiento de los objetivos
facilitando la labor del equipo de
trabajo.
Este rol puede ser desempeñado por
una persona externa a la empresa, a
manera de asesor.
Representante de los intereses del
cliente, recibiendo las preguntas e
inquietudes que son comunicadas a
los Team Member; es quien
garantiza que el producto entregado
sea de valor para el negocio.
Este rol puede ser desempeñado
tanto por una persona de la empresa
de
desarrollo
que
tenga
conocimiento del negocio y amplio
contacto con el cliente, o por alguien
externo que sea designado por el
mismo cliente.
Responsable por la construcción del
producto, aplicando las actividades
técnicas del proceso de desarrollo.
Es el director del equipo de trabajo,
encargado de verificar que las
herramientas, condiciones y el clima
laboral
se
establezcan
satisfactoriamente para el grupo de
talento humano interno y externo de
la organización.
inicio, construcción y transición. Cada una se explica
seguidamente.
4.2.1. Fase de inicio
Es la fase de preparación y adecuación del ambiente de
trabajo, se alistan los elementos requeridos del proceso
de desarrollo como:
 Identificar el producto a desarrollar a través de las
especificaciones del cliente.
 Elaboración de la propuesta y cronograma de
actividades.
 Reuniones con el cliente para la presentación de la
propuesta.
 Realizar ajustes en la propuesta.
 Firma de contratos y acta de inicio.
 Asignación de roles al equipo de trabajo.
 Configuración del ambiente de desarrollo (Equipos
y Software).
 Instalación de las herramientas que permitirán
automatizar algunas actividades del proceso de
desarrollo.
 Capacitación del talento humano, en temas
específicos que se necesitan en el desarrollo del
producto.
4.2.2. Fase de construcción.
Requisitos
Arquitectura
Gestión y
soporte
Análisis y
diseño
Iteración
Fuente: elaboración propia.
Cada rol tiene unas responsabilidades definidas en el
proceso. Por ejemplo, el rol Team Leader tiene las
siguientes responsabilidades:





Fijar políticas y normas institucionales.
Dirección estratégica de la empresa y del proyecto.
Elaborar las propuestas y actas de inicio y cierre (y
otros documentos formales o de comunicación con
el cliente que sean necesarios).
Verificar el cumplimiento de tiempos y el uso
adecuado de recursos, y definir acciones correctivas
si es necesario.
Diseñar y hacer seguimiento al plan de riesgos.
Como lo establece el proceso DAD, se proponen tres
grandes fases que definen el avance global del proyecto:
Codificación
Pruebas
Integación y
despliegue
Figura 2. Actividades en cada iteración del proceso de
desarrollo. Fuente: elaboración propia.
La fase de construcción tendrá una o más iteraciones
(sprints), cada una de las cuales terminará con un
incremento del software. Cada iteración consta de
diferentes tipos de actividades, como se ilustra en la
Figura 2.
El proceso incluye para cada actividad una descripción
general y una explicación más detallada, para orientar al
equipo de desarrollo en su aplicación. A manera de
Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva
105
ejemplo se muestra la descripción de una actividad
(requisitos).
estas actividades que propician la búsqueda de
alternativas y el trabajo colaborativo.
Requisitos: Actividad relevante en el proceso de
desarrollo, porque de ella depende en gran medida el
éxito del producto, si de forma clara se logra identificar
explícitamente las necesidades del cliente, para luego ser
interpretadas en diagramas de casos de uso, historias de
usuario y prototipos de pantalla. En esta fase se aplican
las técnicas creativas, con el objetivo de poder establecer
los
atributos
Atractivos,
Obligatorios
y
Unidimensionales; se espera que el equipo de trabajo
pueda identificar por lo menos un atributo
unidimensional, ya que es la característica que aportará
el factor diferenciador en la aplicación.
4.2.3. Fase de transición
También se identificaron las principales técnicas y
artefactos que se usarían en cada una de las actividades,
incluyendo, por supuesto, algunas técnicas creativas.
El proceso de desarrollo implementado tiene un buen
margen de flexibilidad, estableciendo una diferencia con
otros procesos que son más rígidos para la ejecución de
las tareas; además, el aporte de la creatividad de las
personas en el proceso es vital para el desarrollo de un
producto con características creativas. Una visión global
del proceso se puede ver en la Figura 3.
Tabla 3. Técnicas y artefactos de cada actividad del
proceso.
Actividad
Gestión
y
entorno
Requisitos
Arquitectura
Análisis
diseño
y
Codificación
Pruebas
Integración y
despliegue
Técnica/artefacto
Lista de requisitos
Lista de tareas
Burndown chart
Retrospectiva (final de cada sprint)
Control de versiones
Reuniones diarias (15 minutos)
Diagrama de casos de uso
Especificación casos de uso
Prototipos de pantalla
Lista de atributos
Modelo Kano
SAD
(Software
Arquitecture
Document)
Diagramas de clases
Diagramas de secuencia
Modelo relacional
Diseño de las pruebas
Lista de atributos
Pruebas unitarias
Repositorio de versiones
Pruebas funcionales (casos de uso)
Pruebas no funcionales
Manual de usuario
Manual técnico
Entrega del producto
Fuente: elaboración propia.
Las técnicas creativas (en negrita en la tabla) fueron
incluidas en las actividades de requisitos y diseño, por ser
Esta fase comprende la entrega del producto al cliente,
cerrando el proyecto de desarrollo mediante la entrega
del software instalado y la documentación necesaria para
su operatividad.
Es importante en esta fase poder establecer el grado de
satisfacción de los usuarios y realizar un análisis de la
calidad de la aplicación identificando posibles mejoras o
cambios para la próxima versión y hacer seguimiento o
acompañamiento de la solución.
Figura 3. Visión global del proceso definido (adaptado a
partir de DAD). Fuente: elaboración propia.
La dinámica del proceso de desarrollo está basada en
iteraciones (sprints), que permiten evaluar el progreso del
proyecto a través de reuniones diarias con el equipo de
trabajo y ejecutando actividades que ayudan a la mejora
continua, y al fortalecimiento de las buenas prácticas en
el desarrollo de software.
106
El aporte de la creatividad de las personas en el proceso
es vital para el desarrollo de un producto novedoso. El
proceso con sus tres fases enmarca todas las actividades
que son relevantes en un proyecto de desarrollo de
software, partiendo de la conceptualización de la idea e
identificación de una necesidad, pasando por la
construcción y validación del producto y finalizando con
un software con atributos que permitirán aumentar la
satisfacción del usuario. Esto con el propósito de
establecer un factor diferenciador por el cual sea
reconocida la organización en el medio de la industria del
software a nivel local y nacional mediante un producto
propio.
4.3. Prueba piloto
El propósito de esta etapa fue el de llevar a la práctica el
proceso de desarrollo propuesto, logrando de esta manera
la validación (parcial) del proceso e identificando puntos
de mejora a partir de la experiencia en una empresa.
NuevasTIC es una empresa que siempre se ha
preocupado por desarrollar productos propios de alta
calidad; para el logro de este fin la organización participó
en las convocatorias del año 2015 del MinTIC, para
recibir consultoría en la norma ISO/IEC 20000 y el
modelo ITMark.
NuevasTIC fue una de las cuatro empresas seleccionadas
del país por el MinTIC, en recibir consultoría de la
empresa mexicana INNEVO y COLCIENCIAS,
encontrándose comprometida en el logro de estas
certificaciones. Esto permitió que la empresa participara
en el proyecto, dada la necesidad de contar con un
proceso de desarrollo de software que permitiera aplicar
buenas prácticas, especialmente para cumplir con las
exigencias del modelo ITMark.
El modelo ITMark exige cumplir con tres elementos
importantes para aquellas empresas de desarrollo de
software que deseen obtener la certificación del modelo,
que son: la mejora de procesos de desarrollo de software,
la gestión del negocio y la seguridad de la información.
El proceso de desarrollo de software con técnicas
creativas aportó a dos de los tres elementos exigidos por
el modelo, que fueron: la mejora del proceso de
desarrollo de software y en la gestión del negocio.
El proceso de desarrollo con técnicas creativas, en la
aplicación en cada una de sus fases, logró identificar roles
y responsabilidades dentro del equipo de trabajo, lo cual
es uno de los requisitos del modelo ITMark. Por otra
parte, el modelo exige ambientes de desarrollo, pruebas,
calidad y producción; en este aspecto el proceso de
desarrollo de la investigación contempla las fases de
E. Martínez, S.V. Hurtado
desarrollo y pruebas, utilizando repositorios de versiones
y considerando los ambientes necesarios para las pruebas
unitarias, pruebas funcionales y no funcionales; en estas
actividades se capacitó el talento humano de la
organización y fue unos de los puntos positivos a la hora
de mostrar evidencias al auditor del modelo. ITMark
también requiere realizar un análisis del cliente,
obteniendo un conocimiento más amplio en relación a las
necesidades del negocio; lo cual se pudo lograr en parte
al momento de la aplicar las técnicas creativas, pues se
identificaron necesidades que el cliente no había podido
describir de manera clara.
Previo a la implementación del proceso de desarrollo, se
llevó a cabo un reconocimiento del contexto de la
organización, a través de la observación y entrevistas,
con el objetivo de conocer el punto de vista del equipo de
trabajo sobre la pertinencia en la aplicación de un proceso
de desarrollo de software incorporando técnicas
creativas. De este reconocimiento se resalta que tanto el
gerente como el equipo de trabajo (seis personas)
consideraron totalmente pertinente la aplicación de un
nuevo proceso, aunque no se sentían muy cómodos con
las
técnicas
creativas,
principalmente
por
desconocimiento de las mismas.
Una de las primeras actividades en el piloto fue la
preparación del equipo de trabajo a través de
capacitaciones y asesorías en la adaptación del proceso
de desarrollo, logrando incentivar al talento humano en
la ejecución de las tareas establecidas. Las orientaciones
se dieron en la explicación del proceso de desarrollo, las
técnicas creativas y pruebas unitarias. Las estrategias
usadas en las capacitaciones incluyeron clases
magistrales, debates y aplicación de técnicas creativas.
Para la capacitación sobre el Modelo Kano se realizó
inicialmente una lluvia de ideas sobre posibles
funcionalidades del producto, y luego se usaron colores
para identificar los distintos tipos de atributos de calidad.
A partir de argumentaciones y debates se seleccionaron
las funcionalidades que tendría el producto. Esta
capacitación se resalta porque obtuvo muy buenos
resultados en el equipo, obteniendo comentarios como:


“Es interesante y útil antes de iniciar un desarrollo,
porque permite dar una visión de forma más
profunda del servicio que ofrecerá la aplicación al
cliente”
“Es de novedad y se debería hacer no solo con
productos propios sino en todos los proyectos de
desarrollo de software”.
Después de las primeras capacitaciones, se empieza la
aplicación del proyecto, identificando la apropiación del
Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva
mismo por parte del equipo de trabajo y solucionado las
inquietudes presentadas. Cabe resaltar que el estudiante
de maestría autor de este artículo participó en el rol de
Scrum Master, para poder ser el mentor en el proceso.
Durante la aplicación del proceso se obtienen algunas
recomendaciones, que son tenidas en cuenta para la
mejora de la propuesta. A partir de estas
recomendaciones se hacen algunos ajustes, como por
ejemplo la inclusión del rol Team Leader, y se observa la
necesidad de incluir las guías de capacitación como parte
del proceso.
Después de aplicar técnicas creativas en la etapa de
requisitos, se obtuvieron 55 atributos de interés
(adicionales a las funcionalidades básicas del sistema),
los cuales se clasificaron en 16 atributos atractivos, 30
obligatorios y 9 unidimensionales. A manera de ejemplo,
se presentan tres de los atributos atractivos (simplificados
por efectos de confidencialidad):
- Los datos modificados deben recuperarse en
menos de un día.
- Alertas interactivas con asignación en
calendario.
- Identificar coordenadas de la localización del
sitio del registro de la información.
En el caso del modelo de diseño, se trabajó
principalmente en la revisión de los diagramas de clase y
de secuencia haciendo uso de las técnicas creativas, lo
cual permitió analizar diferentes alternativas de solución
para aspectos de seguridad, auditoría, disponibilidad y
facilidad de uso.
Algunos de los cambios notorios en la empresa con la
aplicación de este nuevo proceso son:
 Se fortalecen algunas actividades técnicas del
desarrollo, como los requisitos, el diseño y las
pruebas. Estas últimas representan un reto
interesante para los miembros del equipo, quienes
deben tratar de diseñar las pruebas antes de codificar,
lo cual no es algo a lo que están acostumbrados, pero
que muestra ser de valor para aumentar la calidad del
producto final.
 Se establecen ambientes de pruebas y de producción
por separado; y se trabaja con un servidor de
versiones.
 Mejora la comunicación y el seguimiento, gracias a
las reuniones diarias de 15 minutos y a las entregas
periódicas de funcionalidad.
Una dificultad que se presentó fue que el tiempo
estimado se extendió, debido a los cambios introducidos
por el proceso y a la adición de nuevas funciones en el
producto. Sin embargo, se considera que este desfase en
107
la estimación no es propio del proceso sino de la curva de
aprendizaje.
Algunos de los logros que se evidenciaron con la
aplicación del proceso, fueron:
 Gracias a la aplicación de las técnicas creativas se
identificaron nueve características unidimensionales
en el producto propio, que no estaban contempladas
en el alcance inicial, y que constituyen un valor
agregado para los clientes.
 El proceso de desarrollo aplicado aportó al proceso
de certificación de la norma ISO/IEC 20000 y el
modelo ITMark de la organización.
 El aporte más significativo fue el trabajo en equipo
y aprovechamiento de la creatividad de las personas
participantes en el proceso de desarrollo.
4.4. Resultados obtenidos
La presente investigación deja un proceso que se puede
aplicar en Pymes que emprenden procesos de
certificación en modelos de calidad y buenas prácticas de
desarrollo de software, como también en aquellas que
buscan crear aplicaciones propias en mercados
específicos. Este proceso permite desarrollar productos
sencillos y atractivos para el cliente sin incurrir altos
costos, y simultáneamente fortalece la comunicación del
equipo de la organización. Hay que aclarar que la
aplicación de un proceso de desarrollo con técnicas
creativas no asegura el mercado del producto propio
desarrollado, pero permite disminuir la incertidumbre e
incrementar la posibilidad de obtener un producto
innovador.
Con este proyecto también se realiza una contribución a
la comunidad científica, con la adaptación de un proceso
en el contexto de la ingeniería de software; esto teniendo
en cuenta el estudio realizado de los antecedentes que se
llevó a cabo en el presente trabajo, en el cual no se
encontró un proceso que haga énfasis en desarrollar
productos propios, orientado al descubrimiento de algún
factor diferenciador que dé lugar a características
atractivas para el cliente.
5. Conclusiones, recomendaciones y trabajos futuros
5.1. Conclusiones
Para la prueba piloto llevada a cabo, el proceso permitió
organizar y estandarizar las actividades de fabricación
del software, cumpliendo con la exigencia de los
procesos de certificación en modelos de calidad, y sin
perder la flexibilidad ni la capacidad creativa.
108
La aplicación de técnicas creativas mediante actividades
lúdicas en el equipo de trabajo logra que las personas
expongan sus ideas con mayor libertad, y que después de
ser discutidas entre los miembros del grupo y en
consenso, pueden ser consideradas como atributos de
calidad, para ser incluidos en la construcción de un
software y de esta forma ser considerado como un
producto diferenciador.
Es relevante para las pequeñas y medianas empresas de
desarrollo de software identificar un proceso de
desarrollo que ofrezca la oportunidad de la participación
del equipo de trabajo en la generación de opiniones y de
ideas, permitiendo la construcción de productos con un
sello personalizado, y con el cual los integrantes del
equipo se sientan identificados y comprometidos.
Por otra parte, es necesario que el proceso de desarrollo
permita que la gerencia pueda hacer seguimiento al
proyecto, dado que la visión de negocio está en cabeza de
esta área de la organización.
El interés de crear productos propios es una estrategia
que permite a las Pymes mantenerse dentro de un
mercado cada vez más exigente, y donde se compite no
solo con empresas locales sino también nacionales e
internacionales.
5.2. Recomendaciones
Se recomienda a las organizaciones de desarrollo de
software que están interesadas en ser reconocidas en el
mercado a través de un producto propio, la aplicación de
técnicas creativas en sus procesos, especialmente en las
actividades de requisitos y diseño, pero sin dejar de lado
otras actividades donde éstas puedan ser aplicadas.
Para una adecuada aplicación del proceso se recomienda:
 Aplicar las técnicas creativas antes del desarrollo del
producto, identificando las funcionalidades y
características creativas en las actividades de
requisitos, análisis y diseño, esto para no afectar el
cronograma del proyecto, implicando mayores
costos para su ejecución.
 Tener cuidado de no hacer funcionalidades extras
que no requiere el cliente y terminar desarrollando
un producto diferente a las condiciones del negocio.
No perder el objetivo del proyecto.
 Realizar capacitaciones al talento humano,
incentivando el desarrollo de la creatividad, debido
a que es muy valioso el aporte de las personas.
Cuando los empleados aportan ideas y se les
gratifica de alguna manera su ingenio, se fortalece la
competitividad de la empresa.
E. Martínez, S.V. Hurtado


Realizar una autoevaluación de la organización para
identificar en qué condiciones se encuentra la
empresa antes de comenzar el desarrollo de un
producto propio con un nuevo proceso de desarrollo.
Para minimizar el riesgo financiero al invertir
tiempo, costos y talento humano en la fabricación de
un producto que no cumpliera con las expectativas
de los clientes y capacidad del entorno, se debe
definir un nicho de mercado concreto. Esto se puede
hacer con técnica como el Modelo Canvas.
5.3. Trabajos futuros
Un trabajo que se puede realizar a partir de este proyecto
es la aplicación del proceso en otras Pymes de la ciudad
de Neiva, e incluso en otras ciudades del país, para tener
una población de estudio mayor que permita la validación
estadística del proceso. También se pueden construir
guías de ajuste del proceso, para diferentes tipos de
productos o servicios.
Por otra parte, el deseo de las Pymes de desarrollo de
software de desarrollar productos propios que ofrezcan
una propuesta valor en un mercado competitivo da lugar
a proponer una línea de investigación que se encuentre
direccionada al estudio de técnicas creativas que
contribuyan al aumento de la satisfacción de los usuarios,
basados en modelos o técnicas nuevas que pueden ser
aprovechados al máximo en un grupo de desarrollo de
software. La línea de investigación propuesta debe ser
fundamentada en nuevas técnicas que sean fáciles, que
permitan desmenuzar un problema en partes cada vez
más pequeñas e ir buscando soluciones alternativas a esas
partes, describiendo los atributos según el impacto y
funcionalidad sin que afecten en mayor parte el
presupuesto y tiempo en un proyecto de desarrollo de
software.
Referencias
[1] M. C. Cuéllar, «Los desafíos de las empresas de
software frente a la globalización,» Revista de Ingeniería.
Universidad de los Andes, pp. 86-90, 2013.
[2] MinTIC y Fedesoft, «Informe de caracterización del
sector de software y tecnologías de la información en
Colombia,» 2015.
[3] C. A. Ardila y F. J. Pino, «Panorama de gestión
cuantitativa de procesos de desarrollo de software en
pequeñas organizaciones,» Sistemas & Telemática, pp.
29-46, 2013.
[4] L. E. Peláez Valencia, L. Cardona Benjumea y A.
Toro Lozano, «Estado del arte que soporta el proceso de
Proceso de desarrollo de software con técnicas de creatividad, para las Pymes de la ciudad de Neiva
desarrollo de software en las PYMES colombianas: Una
mirada desde las organizaciones nacionales que tienen
que ver con la disciplina,» Entre Ciencia e Ingeniería, pp.
93-107, 2011.
[5] MinTIC y Fedesoft, «Informe sectorial de la industria
de software y servicios asociados de Colombia 2012,»
Bogotá, 2012.
[6] J. A. Britto Montoya, «Adaptación de un proceso de
desarollo de software basado en buenas prácticas,»
Universidad Autonoma de Manizales, 2014.
[7] J. A. Holguín Barrera, «Definición de un proceso de
desarrollo de software con control de calidad del
producto en una empresa PYME de la región,»
Universidad Autonoma de Manizales., 2014.
[8] L. F. Londoño, «Recomendaciones para la formación
de una empresa de desarrollo de software competitiva en
un país como Colombia,» Avances en Sistemas e
Informática, 2005.
[9] L. Merchán, A. Urrea y R. Rebollar, «Definición de
una metodología ágil de ingeniería de requerimientos
para empresas emergentes de desarrollo de software del
sur-occidente colombiano.,» Revista Científi ca
Guillermo de Ockham, 2008.
[10] L. Pantoja, C. A. Collazos y V. M. Penichet,
«Entorno colaborativo de apoyo a la mejora de procesos
de software en pequeñas organizaciones de software,»
Dyna, pp. 40-48, 2013.
[11] S. Barbieri, «Trabajo de Tesis Framework de
Mejora de Procesosde Desarrollo de Software.,»
Universidad de la Plata Facultad de Informática, La Palta
Argentina, 2007.
[12] G. Solarte, L. Muñoz y B. Arias, «Modelos de
calidad para procesos de software,» Scientia Et Technica,
vol. 2, nº 42, pp. 172-176, 2009.
[13] A. Mas y E. Amengual, «La mejora de los
procesos de software en las pequeñas y medianas
empresas (PYME). Un nuevo modelo y su aplicación a
un caso real,» REICIS Revista Española de Innovación,
Calidad e Ingeniería del Software., vol. 1, nº 2, 2005.
[14] S. Ambler y M. Lines, Disciplined Agile
Delivery: A practicioner's guide to agile software
delivery in the enterprise, IBM Press, 2012.
109
[15] IEEE Computer Society, SWEBOK v3.0: Guide
to the Software Engineering Body of Knowledge, P.
Bourque y R. Fairley, Edits., IEEE, 2014.
[16] S. Stavru, «A critical examination of recent
industrial surveys on agile method usage,» Journal of
Systems and Software, vol. 94, pp. 87-97, Agosto 2014.
[17] B. Fitzgerald, K.-J. Stol, R. O’Sullivan y D.
O’Brien, «Scaling Agile Methods to Regulated
Environments: An Industry Case Study,» de International
Conference on Software Engineering (ICSE), San
Francisco, 2013.
[18] E. Martínez Jáurigui, «Creatividad e innovción :
Juntas pero no revueltas,» de Juntas pero no revueltas,
2010.
[19] E. Yacuzzi y F. Martín, «Aplicación del método
de Kano en el diseño de un producto farmacéutico,»
Revista UCEMA, 2002.
[20] InnoSupport, Guía de Apoyo a la Innovación en
Pequeñas y Medianas Empresas, 2009.
[1]
M. C. Cuéllar, «Los desafíos de las empresas de software frente a la globalización,» Revista de Ingeniería. Universidad de los Andes, pp. 86-90, 2013.
[2]
MinTIC y Fedesoft, «Informe de caracterización del sector de software y tecnologías de la información en Colombia,» 2015.
[3]
C. A. Ardila y F. J. Pino, «Panorama de gestión cuantitativa de procesos de desarrollo de software en pequeñas organizaciones,» Sistemas & Telemática, pp. 29-46, 2013.
[4]
L. E. Peláez Valencia, L. Cardona Benjumea y A. Toro Lozano, «Estado del arte que soporta el proceso de desarrollo de software en las PYMES colombianas: Una mirada desde las
organizaciones nacionales que tienen que ver con la disciplina,» Entre Ciencia e Ingeniería, pp. 93-107, 2011.
[5]
MinTIC y Fedesoft, «Informe sectorial de la industria de software y servicios asociados de Colombia 2012,» Bogotá, 2012.
[6]
J. A. Britto Montoya, «Adaptación de un proceso de desarollo de software basado en buenas prácticas,» Universidad Autonoma de Manizales, 2014.
[7]
J. A. Holguín Barrera, «Definición de un proceso de desarrollo de software con control de calidad del producto en una empresa PYME de la región,» Universidad Autonoma de Manizales.,
2014.
[8]
L. F. Londoño, «Recomendaciones para la formación de una empresa de desarrollo de software competitiva en un país como Colombia,» Avances en Sistemas e Informática, 2005.
[9]
L. Merchán, A. Urrea y R. Rebollar, «Definición de una metodología ágil de ingeniería de requerimientos para empresas emergentes de desarrollo de software del sur-occidente
colombiano.,» Revista Científi ca Guillermo de Ockham, 2008.
[10]
L. Pantoja, C. A. Collazos y V. M. Penichet, «Entorno colaborativo de apoyo a la mejora de procesos de software en pequeñas organizaciones de software,» Dyna, pp. 40-48, 2013.
[11]
S. Barbieri, «Trabajo de Tesis Framework de Mejora de Procesosde Desarrollo de Software.,» Universidad de la Plata Facultad de Informática, La Palta Argentina, 2007.
[12]
G. Solarte, L. Muñoz y B. Arias, «Modelos de calidad para procesos de software,» Scientia Et Technica, vol. 2, nº 42, pp. 172-176, 2009.
[13]
A. Mas y E. Amengual, «La mejora de los procesos de software en las pequeñas y medianas empresas (PYME). Un nuevo modelo y su aplicación a un caso real,» REICIS Revista
Española de Innovación, Calidad e Ingeniería del Software., vol. 1, nº 2, 2005.
[14]
S. Ambler y M. Lines, Disciplined Agile Delivery: A practicioner's guide to agile software delivery in the enterprise, IBM Press, 2012.
[15]
IEEE Computer Society, SWEBOK v3.0: Guide to the Software Engineering Body of Knowledge, P. Bourque y R. Fairley, Edits., IEEE, 2014.
[16]
S. Stavru, «A critical examination of recent industrial surveys on agile method usage,» Journal of Systems and Software, vol. 94, pp. 87-97, Agosto 2014.
[17]
B. Fitzgerald, K.-J. Stol, R. O’Sullivan y D. O’Brien, «Scaling Agile Methods to Regulated Environments: An Industry Case Study,» de International Conference on Software Engineering
(ICSE), San Francisco, 2013.
[18]
E. Martínez Jáurigui, «Creatividad e innovción : Juntas pero no revueltas,» de Juntas pero no revueltas, 2010.
[19]
E. Yacuzzi y F. Martín, «Aplicación del método de Kano en el diseño de un producto farmacéutico,» Revista UCEMA, 2002.
[20]
InnoSupport, Guía de Apoyo a la Innovación en Pequeñas y Medianas Empresas, 2009.
Descargar