Índice
Esquemático
1. Generalidades
1.1. Introducción
1.2. Justificación
1.3. Ficha descriptiva de la propuesta de investigación
Problema de Investigación aplicado a la empresa Tecnoevolución LTDA
1.4. Descripción del problema
1.5. Análisis del problema
1.6. Profundización de la idea.
1.6.1.
Factores
que se tuvieron en cuenta para la elección de la Metodología
1.6.2.
Selección
del Método SCRUM
2. Marco de Referencia
2.1. Antecedentes Del Tema
2.2. Propósito U Objetivo Del Estudio
2.3. Límites del estudio
2.3.1. Marco
Teórico
2.4. Definición De Los Términos
2.5. Supuestos Y Expectativas Del Tema
2.6. Aporte a la Disciplina
3. Metodología de la Investigación
3.1. Diseño de la Investigación
3.1.1.
Tipo
de investigación
3.1.2.
Población
objetivo
3.1.3.
Técnicas
de Investigación
3.1.4. Diseño
3.1.5.
Recolección
de Datos
3.1.6.
Resultados
Conclusión
Apoyo bibliográfico
1. Generalidades
1.1. Introducción
Es importante documentar todos los pasos realizados, en la
selección adecuada de la idea, teniendo en cuenta los diferentes factores de
investigación y sustentación, con el fin de lograr la aprobación del proyecto
en el grupo de trabajo.
De allí la importancia de comprender los conceptos de un
Proyecto y su ciclo de Vida para apropiarlos a la metodología de desarrollo
ágil a utilizar, en este caso
SCRUM.
En este documento se presenta la idea de investigación, diseñada para la
compañía Tecnoevolución LTDA, con el fin de adoptar la metodología más adecuada
para el desarrollo de sus productos.
1.2. Justificación
De acuerdo a la ley 1341 del 30 de
Julio de 2009, “Por la cual se definen
Principios y Conceptos sobre la Sociedad de la información y la organización de
las Tecnologías de la información y las comunicaciones – tic”, se tienen en
cuenta las herramientas presentadas para promover el Desarrollo de las
Tecnologías de la Información.
De acuerdo con el Censo realizado
por MinTIC en el año 2014 en Colombia habían 4016 empresas en el sector de las
cuales el 80% están ubicadas en la Región Centro, el 4% en la Región Norte, el
6 % en la Región Occidente, el 4% en la Región Oriente, las demás se encuentran
dispersas por el resto de la nación, entre los productos ofrecidos se encuentra
el Desarrollo de software con un 23%.
El informe del Software Engineering
Institute (SEI) del año 2015, Colombia es líder en la región, en la producción
de software de calidad en el Modelo CMMI entre los niveles III y V.
De allí que la metodología de
desarrollo ágil, ha logrado gran cobertura en el Sector de las Tics, contando
con el apoyo de la Fedesoft y el Sena,
que buscan fortalecer y hacer más competitivo el sector del software y TI en
Colombia, por medio de un Programa, de Formación Especializada para la
implementación del modelo en SCRUM. Con el fin de mejorar el nivel de
productividad, lograr altos niveles de calidad y administrar eficientemente los
proyectos en las empresas en términos de tiempo y costo.
1.3. Ficha descriptiva de la propuesta de investigación
Línea de Investigación
|
Ingeniería de Software
|
Tecnología
|
Desarrollo de software
ágil.
|
Fuente
|
Banco de Ideas curso Proyecto de Grado Ingeniería de
Sistemas UNAD.
|
Referencia
|
ID_IDEA: 001
|
Descripción
|
Muchos
equipos de desarrollo de software en todo el mundo están implementando nuevos
métodos de desarrollo de software ágil como Programación extrema, SCRUM y
Kanban. Varios autores han planteado estudios comparativos sobre estos
métodos, la idea de esta propuesta de proyecto es investigar a profundidad
estos estudios para tener un estado del arte de los métodos de desarrollo de
software ágil y plantear recomendaciones a partir de un caso estudio real de
una empresa desarrolladora de software colombiana.
|
Link del Blog
Problema de Investigación aplicado a la empresa Tecnoevolución LTDA
1.4. Descripción del problema
Tecnoevolución LTDA es una compañía dedicada a brindar
soluciones informáticas al sector financiero, contando con más de 50 módulos
que brindan soluciones a las diferentes necesidades que se presentan en el
mercado en el que se desenvuelve. Cuenta con más de 15 años de experiencia de
atención de sus clientes entre los que se encuentra el banco Colpatria,
Fallabella, Banco de Bogotá, Sudameris, BBVA entre otras empresas de pequeña,
mediana y gran envergadura.
La compañía desde sus inicios utiliza como herramienta de
desarrollo PowerBuilder que genera código powerscript, esta herramienta fue
creada por Sybase Inc, y hace algunos años fue adquirida por SAP. Y gracias a
su poder se ha podido usar con motores de base de datos como Oracle y SQL
Server. Además, cabe aclarar que éste Framework permite crear programas tres
veces más rápido que cualquier otro. La desventaja más grande que tienen los
programas creados con PowerBuilder es que su arquitectura se basa en
cliente-servidor en sistemas operativos Windows. Y su adaptación al mundo web
ha sido un poco complicado, sin embargo, actualmente la compañía está usando
una tecnología de visualización de servidores llamada Xoomker, esta
funcionalidad, además de administrar aplicaciones de servidor, permite
mostrarlas en navegadores Web, en otras palabras, es un escritorio remoto vía
web.
Los módulos con los que cuenta Dialogo, que es el nombre
de la aplicación de Tecnoevolución, tiene el mismo tiempo de maduración de la
compañía. Por esta razón la lógica de su negocio exige gran cantidad de líneas
de código y tablas en su base de datos. Actualmente, se está presentando demora
e incumplimiento en las entregas de requerimientos nuevos y en la solución de
incidencias en casi todos los clientes, gracias a que la compañía se encuentra
certificada en CMMI nivel III que en el proceso dónde más se encuentran baches
o demoras es el proceso de desarrollo. Por esta razón se está haciendo
imprescindible el uso de una metodología de desarrollo ágil que se adapte de la
mejor manera con el modelo de mejora y evaluación de procesos en la
construcción de software (CMMI).
1.4.1. Página Web de
la Compañía
1.5. Análisis del problema
Síntomas
|
Causas
|
Pronósticos
|
Control al pronóstico
|
1. Falta de documentación de los procesos propios del
|
1. Desconocimiento de los procesos internos del software.
|
1. Pérdida de tiempo, por repetición de líneas de
|
1. Comentarios en las líneas de Código y
Documentación
|
software.
|
|
código.
|
de cada uno de los procesos
realizados.
|
2. Falta de Capacitación a los Usuarios.
|
2.
Disminución de la operatividad del
equipo de trabajo
|
2.Insatisfacción de los
clientes
|
2. Establecer políticas de
capacitación en metodologías ágiles.
|
3. Falta de definición de requerimientos.
|
3. Falta de gestión y administración de los diferentes proyectos.
|
3.
Los equipos de trabajo de la empresa en
desarrollo estarán
confundidos.
|
3. Aplicar estrategias de
dirección, control, administración y evaluación de proyectos adecuadas.
|
1.6. Profundización de
la idea.
En la actualidad existen bastantes estrategias y métodos
de desarrollo para equipos de trabajo, pero entre las más relevantes se conocen
tres métodos de programación ágil.
ü Programación
Extrema
ü Scrum
ü Canvan
Sobre estos tres métodos se puede encontrar gran cantidad
de información y posiciones que defienden uno o la otra. Lo importante es
hallar la más adecuada para la compañía que permita:
• Mayor
desarrollo ágil
• Empalme
perfectamente con la metodología CMMI
• Permita
una mayor comunicación entre los diferentes equipos de trabajo
• Permita
gestionar y sobre todo controlar cada uno de los procesos de desarrollo
Por ahora es importante definir un poco cada metodología
para ir entendiendo en que consiste:
En geekytheory se encuentra que: “La programación extrema
es una metodología de desarrollo ágil que tiene como principal objetivo
aumentar la productividad a la hora de desarrollar un proyecto software. Da
prioridad a los trabajos que dan un resultado directo y en los cuales se reduce
la burocracia que pueda existir en el entorno de trabajo.” (Geekytheory)
En scrumguides.org, “Un marco de trabajo por el cual las
personas pueden acometer problemas complejos adaptativos, a la vez que entregar
productos del máximo valor posible productiva y creativamente. Scrum es:
• Ligero
• Fácil
de entender
• Extremadamente
difícil de llegar a dominar
Scrum es un marco de trabajo de procesos que ha sido usado
para gestionar el desarrollo de productos complejos” (Ken Schwabe,r Jeff Sutherland)
Mientras que kANBAN no es una técnica específica del
desarrollo software, su objetivo es gestionar de manera general como se van
completando tareas, pero en los últimos años se ha utilizado en la gestión de
proyectos de desarrollo software. Dice Javier Garzas en su blog.
Antes de seleccionar un método es pertinente investigar
más acerca de cada uno de ellos y cual satisface en mayor medida las
necesidades de Tecnoevolución.
1.6.1. Factores que se tuvieron en cuenta para
la elección de la Metodología
• Información
sobre el estado de capacitación del personal de la empresa sobre metodologías
ágiles mediante la aplicación de una encuesta de conocimientos.
• Informe
sobre casos de implementación de metodologías ágiles en entornos de desarrollo
de software en empresas del sector.
• Análisis
de ventajas y desventajas sobre los dos sistemas de metodología ágil: Scrum y
Kanban.
El desarrollo de cada uno de los procesos de la
investigación se amparará sobre encuestas y observación en puestos de trabajo y
análisis de documentos de implementación en otras empresas del sector.
1.6.2. Selección del Método SCRUM
De acuerdo a los resultados obtenidos
en las encuestas y la investigación realizada, se selecciona la Metodología de
programación Ágil SCRUM.
Teniendo en cuenta las siguientes características:
ü Tecnoevolución
LTDA,es una empresa de Desarrollo orientada a varios clientes.
ü La
mayoría de los Proyectos son complejos.
ü Las
funcionalidades de Desarrollo deben esperar un mínimo de 2 semanas para estar
en producción.
Se debe, proporcionar al cliente un calendario de entregas
de funcionalidades de su producto.
2. Marco de Referencia
2.1. Antecedentes Del Tema
El concepto de Scrum tiene su origen en un estudio de 1986
[1] sobre los nuevos procesos de desarrollo utilizados en productos exitosos en
Japón y los Estados Unidos (cámaras de fotos de Canon, fotocopiadoras de Xerox,
automóviles de Honda, ordenadores de HP y otros). Los equipos que desarrollaron
estos productos partían de requisitos muy generales, así como novedosos, y
debían salir al mercado en mucho menos del tiempo del que se tardó en lanzar
productos anteriores. Estos equipos seguían patrones de ejecución de proyecto
muy similares. En este estudio se comparaba la forma de trabajo de estos
equipos altamente productivos y multidisciplinares con la colaboración entre
los jugadores de Rugby y su formación de Scrum (melé en español).
En 1993 se realizó el primer Scrum para desarrollo de
software y en 1995 el proceso fue formalizado. En 2001 un grupo de personas muy
relevantes en lo que empezaba a ser el desarrollo ágil escribieron los valores
fundamentales de los procesos ágiles.
Desde 1995 miles de proyectos en todo el mundo han
utilizado Scrum para el desarrollo de productos, tanto en empresas pequeñas,
“startups” con tan sólo 3 personas desarrollando un producto, como en
multinacionales, entre las que se encuentran las siguientes:
Sectores
|
Ejemplos
De Empresas Que Utilizan Metodologías Ágiles Como
Scrum
|
Media y Telcos
|
BBC, BellSouth, British Telecom, DoubleYou, Motorola, Nokia, Palm, Qualcomm,
Schibsted, Sony/Ericsson, Telefonica I+D, TeleAtlas,
Verizon
|
Software, Hardware
|
Adobe, Autentia, Biko2, Central Desktop,
Citrix, Gailén, IBM, Intel, Microfocus, Microsoft, Novell, OpenView Labs,
Plain Concepts, Primavera, Proyectalis, Softhouse,
Valtech, VersionOne.
|
Internet
|
Amazon, Google, mySpace,
Yahoo
|
ERP
|
SAP
|
Banca e Inversión
|
Bank of
America, Barclays Global Investors, Key Bank, Merrill Lynch
|
Sanidad y Salud
|
Patientkeeper, Philips
Medical
|
Defensa y Aeroespacial
|
Boeing, General Dynamics, Lockheed Martin
|
Juegos
|
Blizzard, High Moon Studios, Crytek, Ubisoft, Electronic Arts
|
Otros
|
3M, Bose, GE, UOC, Ferrari
|
2.2. Propósito U Objetivo Del Estudio
Definir la metodología que permita tener mayor
cumplimiento, flexibilidad, reducción de tiempo de desarrollo, mayor calidad de
software, mayor productividad, predicción de tiempos y reducción de riesgos en
el desarrollo de soluciones informáticas en Tecnoevolución LTDA.
2.3. Límites del estudio
El estudio se limita al análisis e investigación para la
implementación y sostenibilidad de la
metodología de desarrollo ágil Scrum.
2.3.1. Marco Teórico
¿Qué es SCRUM?
SCRUM es un proceso de la metodología ágil, en el cual se
aplican un conjunto de buenas prácticas en el marco de la metodología ágil, con
el fin de minimizar los riesgos durante el desarrollo de un proyecto,
permitiendo el trabajo en equipo a fin de obtener el mejor resultado
¿Cómo funciona el proceso?
El proceso está basado en entregas parciales y regulares
del producto final, definidas siempre al comienzo de un ciclo o sprint, dichas
entregas son priorizadas con base al beneficio que entregan al cliente final.
Ilustración 1 - Proceso
SCRUM tomado de https://proyectosagiles.org/quees-scrum/
Lo primero que se debe hacer para iniciar un proceso SCRUM
es definir el Product Backlog, este se trata de una lista sobre las
funcionalidades que deberá cumplir el producto al final de todo el proceso.
Dicha lista es elaborada por el Product Owner o propietario del producto, quien
es el encargado de tomar las decisiones ante el cliente, dichas funciones están
priorizadas según lo que es más y menos importante para el negocio. El objetivo
final de definir el Backlog es tener una base de tareas que permitirá realizar
cada uno de los Sprints o iteraciones más adelante.
El Sprint Backlog se trata de un subconjunto de ítems del
Product Backlog, que son seleccionados por el equipo para realizar durante el
Sprint sobre el que se va a trabajar. El equipo establece la duración de cada
Sprint.
Sprint Planning Meeting es una reunión que se hace al
comienzo de cada Sprint y es donde se define cómo se va a enfocar el proyecto,
tomando siempre como base las tareas generales del proyecto ó Product Backlog y las tareas que se van a
seleccionar para el Sprint a iniciar, definiendo así mismo cada una de las
etapas y los plazos en los que se realizarán las entregas.
Daily Scrum se trata de una reunión breve, diaria, mientras
dura el periodo de Sprint. Se responden individualmente tres preguntas: ¿Qué
hice ayer?, ¿Qué voy a hacer hoy?, ¿Qué ayuda necesito? En esta reunión se dan
a conocer los inconvenientes presentados con el fin de que se encuentren
soluciones prontas y se permita cumplir con las entregas planeadas para cada
Sprint, de esta manera se detectan a tiempo y se dan soluciones rápidamente.
Sprint Review es donde se revisa el sprint terminado, y ya
debería haber un avance claro y tangible para presentárselo al cliente.
Sprint Retrospective se trata de una reunión, una vez
finalizado el Sprint, en donde el equipo revisa los objetivos cumplidos del
Sprint terminado. Se anota lo bueno y lo malo, para no volver a repetir los
errores. Esta etapa sirve para implementar mejoras desde el punto de vista del
proceso del desarrollo, por tal motivo se trata de un proceso de mejora
continua, ya que siempre se realiza retroalimentación de lo sucedido durante
cada una de las etapas del proceso y del proyecto.
¿Cuáles son los
beneficios de usar SCRUM?
•
Productividad, debido a que las entregas se
realizan de forma más periódica, por lo que el cliente percibe el avance del
mismo
•
Calidad, ya que el seguimiento realizado a cada
una de las tareas permite recibir retroalimentación por parte del equipo y del
cliente, detectando fallas de manera temprano, pudiendo ser corregidas a
tiempo.
•
Seguimiento diario de los avances del proyecto,
aumentando de esta forma la interacción constante entre cada una de las partes
del equipo desarrollador y del cliente, dando gran tranquilidad a este último
debido a que puede percibir el avance que va teniendo el proyecto • Unión y comunicación
del equipo con el cliente
•
Mayor flexibilidad en el proceso y en la
definición de los productos, y esto suele suceder cuando el cliente no tiene
100% claros los requisitos del sistema final, por lo que a medida que se
realizan las reuniones de seguimiento y la retroalimentación de las mismas,
estos se van haciendo más claros para cada una de las partes involucradas.
¿Cuáles son los
inconvenientes?
A pesar de que se trata de un proceso altamente productivo,
también es cierto que presenta ciertos inconvenientes si no se cuenta con todos
los aspectos claramente cubiertos y detallados, dentro de los cuales se
encuentran:
•
El equipo se puede tentar a tomar el camino más
corto con el fin de alcanzar cada uno de los sprints.
•
No es un proceso eficiente si el cliente
necesita tener las fechas de todo el proyecto de una forma anticipada.
•
La carga que se genera sobre cada integrante del
equipo es pesada, debido al cumplimiento para cada uno de los sprints, por lo
que se puede generar stress laboral.
•
Es un proceso que requiere de un equipo
auto-organizado y que sea transparente, en donde cada uno de los miembros sepa
lo que tiene que hacer cada día, lo que se debe entregar y sepa reportar a
tiempo los inconvenientes que se le presentan.
•
Las tareas deben estar muy definidas o de lo
contrario la estimación en tiempo y costes no será lo suficientemente exacta al
momento de definir entregables.
Aplicaciones de SCRUM
Ahora, se confirma que este proceso realmente puede
solucionar muchos de los problemas dentro de los proyectos de desarrollo de
software. Traduciéndose en mejora en los procesos, planificación, desarrollo e
implementación de los mismos, conduciendo siempre al equipo a una mejora
continua.
Con base a lo anterior se hace posible plantear los pasos
deseables para implementar SCRUM en un pequeño proyecto y así comprobar cada
una de las ventajas y posibles desventajas planteadas:
1. Elige
un responsable de producto.
2. Elige
un equipo.
3. Elige
un Scrum Master.
4. Elabora
y prioriza una lista de objetivos o backlog.
5. Haz
una estimación afinada de la lista de objetivos pendientes.
6. Planificación
de sprints.
7. Haz
que el trabajo sea visible.
8 Scrum
Diario. Reunión Diaria de pie.
9 Revisión
o demostración del sprint.
10 Retrospectiva
del sprint.
11 Empieza
inmediatamente el siguiente ciclo de sprints.
2.4. Definición De Los Términos
Backlog
grooming y backlog refinement: También llamada revisión de la pila del
producto y refinamiento de la pila del producto. Es la reunión del propietario
del producto con el equipo para mantener actualizada la pila del producto. Se
plantea con un tiempo máximo prefijado (habitualmente una o dos horas) y un
objetivo.
Burn
up: O gráfico de producto. Es una herramienta de planificación propia del
propietario de producto, que presenta visualmente la evolución previsible del
producto. Proyecta en el tiempo la construcción del producto, en base a la
velocidad del equipo
Burndown:
O gráfico de avance, es el gráfico que actualiza el equipo en las reuniones de
seguimiento del sprint, para monitorizar el ritmo de avance, y detectar de
forma temprana posibles desviaciones sobre la previsión que pudieran
comprometer la entrega al final de sprint. Un vistazo general al trabajo
restante (puede tener dos tableros: uno para el sprint y otro para el proyecto
general). Este tablero es usualmente contrario en su diseño a lo que usualmente
se plasma, aquí se muestra lo que falta por hacer y no lo que se va avanzando.
Daily
scrum: La reunión de Scrum diario es uno de los eventos de Scrum técnico.
Es una reunión diaria breve, de no más de 15 minutos, en la que el equipo
sincroniza el trabajo y establece el plan para las 24 horas siguientes.
Epic:
Se denomina Epic a una historia de usuario que, por su gran tamaño, el equipo
descompone en historias con un tamaño más adecuado para ser gestionada con los
principios y técnicas ágiles: estimación y seguimiento cercano (normalmente
diario).
Equipo:
Grupo auto organizado enfocado en un objetivo común para hacer el trabajo
eXtreme
Programming (XP) o programación extrema: es un conjunto de prácticas
ágiles. En donde se considera que las modificaciones de requisitos constantes
son un aspecto natural, inevitable e incluso deseable en los desarrollos de
software, configurándose de esta forma (como todos los modelos ágiles) en un
modelo enfocado en la adaptabilidad antes que en la previsibilidad.
Historia
de usuario: Descripción de una funcionalidad que debe incorporar un sistema
de software, y cuya implementación aporta valor al cliente
Incremento:
El incremento es la parte de producto producida en un sprint, y tiene como
característica el estar completamente terminada y operativa, en condiciones de
ser entregada al cliente.
Lead
time: O tiempo de producción, es la
latencia o tiempo que transcurre desde que se inicia un proceso de producción
hasta que se completa.
Mapa
de historias: Es una representación visual de una pila de producto en dos
dimensiones. La implementación más habitual es sobre un tablero kanban.
Horizontalmente se alinean en la parte superior los epics ordenados por
prioridad, y bajo ellos se despliegan verticalmente alineado con cada uno las
tarjetas que representan las distintas historias de usuario que los componen.
Mapa
de producto: Técnica para estructurar la funcionalidad del producto, desde
los temas hasta las historias de usuario
Pila
del sprint: Lista de tareas que va a realizar el equipo en una iteración,
para construir un incremento.
Planificación
del sprint: En esta reunión se toman como base las prioridades y
necesidades de negocio del cliente, y se determinan cuáles y cómo van a ser las
funcionalidades que se incorporarán al producto en el siguiente sprint.
Product Backlog(Cartera de producto): Lista priorizada de resultados/características deseables del producto del
proyecto
Product canvas:
Tablero kanban de producto para mostrar en un vistazo.
ü El objetivo de la visión del producto, o de la versión actualmente en desarrollo.
ü Temas e historias previstas.
ü Historias que se están desarrollando en el sprint actual.
Propietario
del producto: El propietario del producto es uno de los roles de scrum
técnico. El propietario del producto (product owner) es quien toma las
decisiones del cliente. Su responsabilidad es el valor del producto.
Retrospectiva
del sprint: revisión de lo sucedido durante el Sprint. Reunión en la que el
equipo analiza aspectos operativos de la forma de trabajo y crea un plan de
mejoras para aplicar en el próximo sprint. Las reuniones retrospectivas son por
tanto un una “meta-práctica” ágil.
Revisión del sprint: análisis e
inspección del incremento generado, y adaptación de la pila del producto si
resulta necesario. Se realiza al final del sprint para comprobar el incremento.
No debe durar más de 4 horas, en el caso de revisar sprints largos.
Scrum
avanzado: Adaptar las prácticas Scrum a las circunstancias de la propia
organización, permite emplear técnicas de incremento continuo o iterativo;
tableros kanban con el formato más adecuado a cada proyecto, y en general las
prácticas y reglas que mejor encajan en las circunstancias de cada caso.
Scrum
Master: Scrum Master es uno de los roles de scrum técnico. Es el
responsable del cumplimiento de las reglas de un marco de scrum técnico,
asegurando que se entienden en la organización, y se trabaja conforme a ellas.
Facilitador que asegura que el equipo es funcional y productivo
Scrum
técnico: Modelo de implementación estándar de los principios de desarrollo
en "campos de Scrum".
Sprint
Backlog (Cartera de sprint): conjunto de trabajos (entendiéndose como lo
que se requiere para lograr los resultados o características buscadas en el
producto) de la cartera de productos que el equipo acuerda completar en un
sprint, dividido en tareas
Sprint Planning: el equipo se reúne con
el propietario del producto para elegir un conjunto de características del
producto a realizarse durante un sprint
Sprint
Retrospectives: el equipo busca maneras de mejorar el producto requerido y
el proceso usado en el proyecto.
Sprint:
nombre que recibe cada iteración de desarrollo. Es el núcleo central que genera
el pulso de avance por tiempos prefijados (time boxing).
Tarea: Unidad de trabajo gestionada por
el equipo. Una tarea tiene asignada una persona para su realización, y es
recomendable que el esfuerzo estimado parara llevarla a cabo sea como máximo el
equivalente al realizable en una jornada de trabajo. Los equipos de trabajo
ágiles descomponen en tareas para gestionar y seguir el avance de
su ejecución.
Tema:
Se denomina tema a una colección de epics relacionados para describir un
sistema o subsistema en su totalidad.
Timeboxing:
O Tiempo prefijado. Técnica de administración de tiempo, comúnmente empleada en
los modelos de gestión ágil, consistente en dividir el trabajo en tareas con
una asignación de tiempo limitado y corto para su ejecución.
2.5. Supuestos Y Expectativas Del Tema
Los principales beneficios que proporciona Scrum son:
• Entrega
mensual (o quincenal) de resultados (los requisitos más prioritarios en ese
momento, ya completados) lo cual proporciona las siguientes ventajas:
ü Gestión
regular de las expectativas del cliente y basada en resultados tangibles.
ü Resultados
anticipados (time to market).
ü Flexibilidad
y adaptación respecto a las necesidades del cliente, cambios en el mercado,
etc.
ü Gestión
sistemática del Retorno de Inversión (ROI).
ü Mitigación
sistemática de los riesgos del proyecto.
• Productividad
y calidad.
• Alineamiento
entre el cliente y el equipo de desarrollo.
• Equipo motivado.
Beneficios
De Scrum
|
Cómo
Se Consiguen
|
Gestión regular de
las expectativas del cliente
El cliente
establece sus expectativas indicando el valor que le aporta cada requisito
del proyecto y cuando espera que esté completado.
El
cliente comprueba de manera regular si se van cumpliendo sus expectativas, da
feedback, ya desde el inicio del proyecto puede tomar decisiones informadas a
partir de resultados objetivos y dirige estos resultados del proyecto,
iteración a iteración, hacia su meta. Se ahorra esfuerzo y tiempo al evitar
hipótesis.
|
El cliente crea y gestiona
la lista de requisitos del producto o proyecto, donde quedan reflejadas sus
expectativas a nivel de requisitos, valor, coste y entregas.
|
Al
final de cada iteración el equipo demuestra al cliente los requisitos que ha
conseguido completar. Tras una inspección del resultado real del proyecto
hasta ese momento, y considerando el esfuerzo que ha
|
|
sido
necesario para realizarlo, el cliente solicita los cambios que necesita y
replanifica el proyecto.
|
Resultados
anticipados (“time to market”)
El cliente puede
empezar a utilizar los resultados más importantes del proyecto antes de que
esté finalizado por completo.
Siguiendo
la ley de Pareto (el 20% del esfuerzo proporciona el 80% del valor), el
cliente puede empezar antes a recuperar su inversión (y/o autofinanciarse)
comenzando a utilizar un producto al que sólo le faltan características poco
relevantes, puede sacar al mercado un producto antes que su competidor, puede
hacer frente a urgencias o nuevas peticiones de clientes, etc.
|
Al inicio de cada
iteración el cliente prioriza la lista de requisitos del producto o proyecto
en función del valor que le aportan, su coste de desarrollo y los riesgos del
proyecto, cambiando los requisitos previstos para reaccionar a cambios de
contexto en el proyecto.
El
progreso del proyecto se mide en función de los requisitos que el equipo
completa en cada iteración.
|
Flexibilidad y
adaptación
De manera regular el
cliente redirige el proyecto en función de sus nuevas prioridades, de los
cambios en el mercado, de los requisitos completados que le permiten entender
mejor el producto, de la velocidad real de desarrollo, etc.
Al
final de cada iteración el cliente puede aprovechar la parte de producto
completada hasta ese momento para hacer pruebas de concepto con usuarios o
consumidores y tomar decisiones en función del resultado obtenido.
|
Se
asume que los cambios son parte natural del proyecto. Toda iteración comienza
con una replanificación del proyecto. Esta replanificación no es traumática
puesto que Scrum minimiza el número de objetivos/requisitos en que el equipo
trabaja (WIP, Work In Progress) a los que caben en una iteración. Todavía no
se ha hecho ningún esfuerzo en desarrollar los requisitos de las siguientes
iteraciones.
|
|
El
hecho los requisitos se completen en función del valor que aportan al cliente
minimiza la probabilidad de que se produzcan grandes cambios en el transcurso
del proyecto.
|
Retorno de inversión (ROI)
De
manera regular, el cliente maximiza el ROI del proyecto. Cuando el beneficio
pendiente de obtener es menor que el coste de desarrollo, el cliente puede
finalizar el proyecto.
|
Cada
iteración el cliente dispone de unos requisitos completados y re planifica el
proyecto en función del valor que le aportan los requisitos pendientes
respecto del coste de desarrollo que tienen.
|
Mitigación de riesgos
Desde
la primera iteración el equipo tiene que gestionar los problemas que pueden
aparecer en una entrega del proyecto. Al hacer patentes estos riesgos, es
posible iniciar su mitigación de manera anticipada. "Si hay que
equivocarse o fallar, mejor hacerlo lo antes posible". El feedback
temprano permite ahorrar esfuerzo y tiempo en errores técnicos.
La
cantidad de riesgo a que se enfrenta el equipo está limitada a los requisitos
que se puede desarrollar en una iteración. La complejidad y riesgos del
proyecto se dividen de manera natural en iteraciones.
|
Un
requisito se debe completar en una iteración. El equipo debe realizar todas
las tareas necesarias para completarlo y que esté preparado para ser
entregado al cliente con el esfuerzo mínimo necesario. De esta manera no se
deja para el final del proyecto ninguna actividad arriesgada relacionada con
la entrega de requisitos.
|
Productividad y calidad
De manera regular el equipo va mejorando y simplificando
su forma de trabajar.
Los
miembros del equipo sincronizan su trabajo diariamente y se ayudan a resolver
los problemas que pueden impedir conseguir el objetivo de la iteración. La
comunicación y la adaptación a las
|
Cada
iteración el equipo realiza una retrospectiva para analizar su manera de
trabajar e identificar los obstáculos que le impiden avanzar al mejor ritmo
posible.
|
Comunicación diaria del equipo Todo
miembro del equipo conoce
|
diferentes
necesidades entre los miembros del equipo son máximas (se van ajustando
iteración a iteración), de manera que no se realizan tareas innecesarias y se
evitan ineficiencias.
Las
personas trabajan más enfocadas y de manera más eficiente cuando hay una
fecha límite a corto plazo para entregar un resultado al que se han
comprometido. La consciencia de esta limitación temporal favorece la
priorización de las tareas y fuerza la toma de decisiones.
Las
iteraciones (Sprints) son regulares y de un mes para facilitar la
sincronización sistemática con otros equipos, con el resto de la empresa y
con el cliente.
El
equipo minimiza su dependencia de personas externas para poder avanzar
(depender de la disponibilidad de otros puede parar tareas).
La
estimación de esfuerzo y la optimización de tareas para completar un
requisito es mejor si la realizan las personas que van a desarrollar el
requisito, dadas sus diferentes especializaciones, experiencias y puntos de
vista. Asimismo, con iteraciones cortas la precisión de las estimaciones
aumenta.
Las
personas trabajan de manera más eficiente y con más calidad cuando ellas
mismas se han comprometido a entregar un resultado en un momento determinado
y deciden cómo hacerlo, no cuando se les ha asignado una tarea e indicado el
tiempo necesario para realizarla.
El
equipo se evita caminar mucho tiempo por un camino equivocado que le obligue
a realizar un gran esfuerzo
para llegar al objetivo
esperado
|
cómo
el trabajo de los otros miembros impacta en el suyo y cuáles son las
necesidades de los otros.
|
Cada
actividad de Scrum siempre tiene la misma duración (1 mes, 4 horas, etc.),
con lo que las personas aprenden lo que pueden conseguir en este tiempo, cómo
organizarse, priorizar tareas y tomar decisiones.
|
|
El equipo está formado por todas las
personas con las especialidades necesarias para llevar a cabo el proyecto.
|
|
En el inicio de la iteración los miembros
del equipo estiman de manera conjunta el esfuerzo necesario para completar
requisitos y sus tareas.
|
|
En
el inicio de cada iteración el equipo selecciona los requisitos que se
compromete a completar y entregar al final de la iteración (responsabilidad).
El propio equipo se organiza (autoridad) identificando las tareas necesarias,
su esfuerzo y auto asignándose cada miembro las tareas que se compromete a
realizar.
|
|
Por un lado, al final de cada iteración el equipo demuestra
al
|
Se
asegura la calidad del
producto de
manera sistemática y objetiva, a nivel de satisfacción del cliente,
requisitos listos para ser utilizados y calidad interna del producto.
|
cliente
los requisitos que ha conseguido completar, de manera que están completamente
operativos. Por otro lado, para tener una velocidad de desarrollo sostenida,
el equipo necesita desarrollar cada incremento de producto sin tener que
revisitar aspectos mal resueltos en iteraciones anteriores.
|
Alineamiento entre cliente y equipo
Los
resultados y esfuerzos del proyecto se miden en forma de objetivos y
requisitos entregados al negocio. Todos los participantes en el proyecto
conocen cuál es el objetivo a conseguir. El producto se enriquece con las
aportaciones de todos.
|
Cliente y equipo trabajando “en equipo”
Cada
iteración el equipo y el cliente trabajan juntos en la creación de los
requisitos del proyecto (en la estimación de la
lista priorizada de requisitos
del proyecto), en darles detalle (en la reunión de planificación de
la iteración) y en el análisis del resultado obtenido (en la demostración de
los requisitos completados).
|
Equipo motivado
Las
personas están más motivadas cuando pueden usar su creatividad para resolver
problemas y cuando pueden decidir organizar su trabajo.
Las
personas se sienten más satisfechas cuando pueden mostrar los logros que
consiguen.
|
El
equipo es quien se compromete a completar unos requisitos determinados en una
iteración y quien mejor sabe cómo desarrollarlos. Por ello es el equipo quien
se auto organiza y quien planifica cómo trabajará en la iteración.
|
Cada
iteración el equipo muestra al cliente los resultados que consigue. No está
meses trabajando sin poder exhibir su obra.
|
2.6. Aporte a la Disciplina
La investigación realizada, aporta información real y
concisa, sobre el tema de estudio, que servirá como base para próximas
investigaciones sobre la metodología de Desarrollo ágil Scrum a estudiantes del
programa de Ingeniería de Sistema.
3. Metodología de la Investigación
3.1. Diseño de la Investigación
3.1.1. Tipo de
investigación:
Cuantitativa.
3.1.2. Población
objetivo.
La totalidad de empleados de la empresa, 60 en total.
3.1.3. Técnicas de Investigación
Para esta investigación se decidió realizar una encuesta
con preguntas afirmativas o negativas y de Escala Lineal.
3.1.4. Diseño
Para
el Diseño y Estructura de la encuesta se tuvieron en cuenta factores que
permitieran recopilar la información de forma clara y concisa, sobre los
conocimientos básicos que tienen los empleados de la compañía sobre las
Metodologías de Desarrollo ágil, especialmente en Scrum.
La encuesta se realizó en un Formulario de Google.
3.1.5. Recolección de Datos
Para
la Recolección de Datos se enviara el link de la encuesta de forma masiva a los
correos de los empleados de la compañía,
Link de la Encuesta https://docs.google.com/forms/d/e/1FAIpQLScY7HNrwr6N1LAdxD58QBYuB
CONCLUSION
La documentación es uno de los factores más importantes de
cualquier proyecto, en especial en el Desarrollo de Software, ya que nos
permite verificar cada paso del proyecto desde su análisis, investigación,
desarrollo, pruebas y ejecución.
En la propuesta de investigación presentada se tuvieran en
cuenta diferentes factores, que nos permitieron conocer más a fondo, la
implementación de una nueva metodología de Desarrollo en una compañía.