Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRESENTA:
ERIK JACOB SALAS CRUZ
ASESOR:
MASI. SILVIA JIMÉNEZ HERNÁNDEZ
.
Agradecimiento
Extiendo mi total gratitud a mis padres ya que me apoyaron de forma económica para
poder solventar los gastos que conllevo elaborar el presente proyecto de
investigación y al apoyo moral que me brindaron en diferentes circunstancias. Del
mismo modo extiendo mi agradecimiento a mi docente facilitar Silvia Jiménez
Hernández quien me apoyo en la asesoría y coordinación para llevar a cabo un buen
proyecto de investigación.
Resumen
Este proyecto tiene como finalidad plasmar el estado actual de las metodologías
agiles para el desarrollo de software en las organizaciones, cuales es el impacto que
tiene la agilidad, que fallas tienen las metodologías agiles, cuales las herramientas y
técnicas más usadas por los desarrolladores. En el que se muestra cómo es que el rey
de las metodologías agiles es y seguirá siendo por mucho SCRUM, y como es que el
factor más importante que frena la implementación y el uso correcto de la agilidad es
la cultura de la empresa contra los principios de la agilidad y la falta de capacidad
para cambiar la cultura de la organización.
1 Introducción ........................................................................................................ 10
2 Antecedentes del problema ................................................................................... 9
3 Planteamiento del Problema ................................................................................ 10
4 Objetivos ............................................................................................................. 11
4.1 Objetivo General: .............................................................................................. 11
4.2 Objetivos Específicos:....................................................................................... 11
5 Justificación......................................................................................................... 12
6 Marco Teórico ..................................................................................................... 16
6.1 Capítulo I Introducción a las Metodologías Agiles...................................... 16
6.1.1 Manifiesto Ágil .......................................................................................... 17
6.1.2 Diferencia entre metodologías agiles y tradicionales................................. 20
6.1.3 Metodologías agiles ................................................................................... 21
6.2 Capítulo II Estado actual de las metodologías agiles ....................................... 64
6.2.1 ¿Qué Beneficios aporta la Agilidad a tu empresa? .................................... 64
6.2.2 ¿Qué técnica ágil es la más usada? ........................................................... 68
6.2.3 Porque falla la agilidad y los proyectos agiles .......................................... 72
6.2.4 Quien frena la implantación de la Agilidad ............................................... 76
6.2.5 Las herramientas más utilizadas................................................................. 79
6.2.6 ¿Qué Metodologías se usan más? ............................................................. 81
6.3 Capítulo III Tendencia de las metodologías agiles: SCRUM ......................... 85
6.3.1 Introducción ............................................................................................... 85
6.3.2 ¿Por qué utilizar SCRUM?......................................................................... 86
6.3.3 Principios de SCRUM ............................................................................... 89
6.3.4 Organización .............................................................................................. 92
6.3.5 Procesos de SCRUM ................................................................................. 95
6.3.6 Scrum vs. Proyectos tradicional .............................................................. 102
6.3.7 Practicas .................................................................................................. 103
7 Método empleado en la investigación, instrumentos empleados. ..................... 107
8 Análisis estadístico e inferencias de los datos obtenidos. ................................. 108
9 Análisis comparativo de los resultados obtenidos contra los esperados. .......... 111
10 Elaboración de conclusiones ......................................................................... 118
11 Hipótesis ........................................................................................................ 120
12 Bosquejo del método ..................................................................................... 121
13 Cronograma ................................................................................................... 122
14 Presupuesto y/o financiamiento .................................................................... 124
15 Lista de referencias ....................................................................................... 126
Índice de tablas y figuras
eXtreme Programming
9
3 Planteamiento del Problema
Analizar las técnicas más usadas dentro de las metodologías agiles para el
desarrollo de software.
11
5 Justificación
El motivo que me llevo a investigar los beneficios, fallas, impactos y otros aspectos
que tienen las metodologías agiles para el desarrollo de software en las
organizaciones, se centra principalmente en que la mayoría de nosotros como
estudiantes, tenemos noción de que es una metodología ágil para el desarrollo de
software, pero no tenemos claro en que basarnos para elegir alguna metodología ágil
para el desarrollo de software, por lo que es necesario investigar qué tipo de
metodología ágil resulta adecuada a una empresa. Y porque adopto dicha
metodologías en base a sus actividades y experiencias en el desarrollo de software,
así como a experiencia y opiniones de programadores agiles, para que el lector en
base a su propia visión y criterios tome una decisión asertiva en la selección de una
metodología ágil, que le permita aumentar la productividad en el desarrollo de
software dentro de una empresa.
Impacto Social:
Impacto Económico:
El impacto económico tiene mucho en común con el impacto social ya que este afecta
en los potenciales impactos sobre el empleo, que es de donde se estima el valor de
cada proyecto, en el caso de las metodologías agiles se utilizan practicas empíricas
basadas en el juicio de expertos para estimar el costo de desarrollo para un nuevo
producto, se pueden utilizar diferentes prácticas para estimar dichos costo dentro de
las cuales las más comunes involucran como métrica base a los SP (Story Points -
Cohn, 2005; Sulaiman y Barton, 2006;) y a los FP (Function Points - Kang y Choi,
2010). Que le permita al responsable de cada proyecto dar un valor al negocio por su
respectivo proyecto, programas o carteras.
Impacto Tecnológico:
Impacto Ético
Esta investigación está fundamentada en la visión que tienen los profesionistas que
han realizado estudios previos y actividades continuas con las metodologías agiles y
con el impacto que tiene las empresas al aplicar una metodología para el desarrollo de
software, otorgándoles créditos a su arduo trabajo de investigación, documentación
14
y prácticas realizadas. Por tal motivo esta investigación pretende que los
desarrolladores tengan una visión de que metodología de desarrollo utilizar en las
organizaciones. Los códigos éticos deben influir en las habilidades de los
programadoras garantizando al cliente un producto de calidad, eficiente, flexible y de
rápida entrega.
Impacto Ambiental:
15
6 Marco Teórico
En febrero de 2001, tras una reunión celebrada en Utah-EEUU, nace el término “ágil”
aplicado al desarrollo de software. En esta reunión participan un grupo de 17 expertos
de la industria del software, incluyendo algunos de los creadores o impulsores de
metodologías de software. Su objetivo fue esbozar los valores y principios que
deberían permitir a los equipos desarrollar software rápidamente y respondiendo a
los cambios que puedan surgir a lo largo del proyecto. Se pretendía ofrecer una
alternativa a los procesos de desarrollo de software tradicionales, caracterizados por
ser rígidos y dirigidos por la documentación que se genera en cada una de las
actividades desarrolladas.
Tras esta reunión se creó “The Agile Alliance”, una organización, sin ánimo de
lucro, dedicada a promover los conceptos relacionados con el desarrollo ágil de
software y ayudar a las organizaciones para que adopten dichos conceptos. El punto
de partida es fue el Manifiesto Ágil, un documento que resume la filosofía “ágil”
16
6.1.1 Manifiesto Ágil
El manifiesto se valora:
17
La habilidad de responder a los cambios que puedan surgir a los largo del
proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.)
determina también el éxito o fracaso del mismo. Por lo tanto, la planificación
no debe ser estricta sino flexible y abierta.
Los valores anteriores inspiran los doce principios del manifiesto. Son características
que diferencian un proceso ágil de uno tradicional. Los dos primeros principios son
generales y resumen gran parte del espíritu ágil. El resto tienen que ver con el proceso
a seguir y con el equipo de desarrollo, en cuanto metas a seguir y organización del
mismo. Los principios son:
II. . Dar la bienvenida a los cambios. Se capturan los cambios para que el
cliente tenga una ventaja competitiva.
18
VI. El diálogo cara a cara es el método más eficiente y efectivo para
comunicar información dentro de un equipo de desarrollo.
X. La simplicidad es esencial.
Grupo ISSI (ingeniería de Software y Sistemas de Informacion), (12 al 14 de Noviembre de 2003). Metodologias Agiles en el
Desarrollo de Software. Pg 59. Alicante, España. Universidad Politecnica de Valencia
19
6.1.2 Diferencia entre metodologías agiles y tradicionales
20
6.1.3 Metodologías agiles
Scrum
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco
para la gestión de proyectos, que se ha utilizado con éxito durante los últimos 10
años. Está especialmente indicada para proyectos con un rápido cambio de requisitos.
Sus principales características se pueden resumir en dos. El desarrollo de software se
realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El
resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La
segunda característica importante son las reuniones a lo largo proyecto, entre ellas
destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e
integración.2
Proceso
2
Grupo ISSI (ingeniería de Software y Sistemas de Informacion), G. I. (12 al 14 de Noviembre de
2003). Metodologias Agiles en el Desarrollo de Software. Pg 59. Alicante, España
21
cliente, los programadores o los departamentos de ventas, marketing o
atención al cliente. Se priorizan los requisitos y se estima el esfuerzo
necesario para su desarrollo. La Product Backlog list se actualiza
constantemente con puntos nuevos y más detalles, así como con estimaciones
más exactas y el nuevo orden de prioridades. El planning también incluye la
definición del equipo del proyecto, herramientas y otros recursos, la
valoración de riesgos, necesidades de formación y la aprobación de la gestión
de comprobaciones. En cada iteración, el equipo(s) de Scrum revisa la
Product Backlog list actualizada. En la jerga de Scrum, se llaman paquetes a
los objetos o componentes que necesitan cambiarse en la siguiente iteración.
La Fase Desarrollo (Game): Esta fase, la parte ágil de Scrum, se trata como
una caja negra donde se espera lo imprevisible. Las diferentes variables
técnicas y de entorno que pueden cambiar (calendario, calidad, requisitos,
recursos, tecnologías, herramientas, e incluso métodos de desarrollo) se
observan y controlan durante los sprints. En lugar de considerar estos puntos
sólo al principio del proyecto, Scrum los controla constantemente para
adaptarse a los cambios. En la fase de desarrollo, el sistema funciona en
sprints o carreras cortas. Los sprints son ciclos iterativos donde se desarrollan
o mejoran las funcionalidades para producir los nuevos incrementos. Cada
sprint incluye las fases habituales de desarrollo del software: requisitos,
análisis, diseño, desarrollo y entrega. La arquitectura y el diseño del sistema
evolucionan durante el desarrollo del sprint. Un sprint dura de una semana
a un mes. Puede haber de tres a ocho sprints, por ejemplo, antes de que el
sistema esté listo para lanzarse. También puede haber más de un equipo que
construya cada incremento.
22
La Fase Post-Game: Contiene el cierre de la versión. Se entra en esta fase
cuando se completan todos los requisitos. En este caso, no se incorpora ni
mejora ninguna función. El sistema ya está listo para lanzarse (release) y
ahora se integra, se pone a prueba y se documenta.
Roles
Los papeles en Scrum tienen tareas y propósitos diferentes durante el proceso y sus
prácticas. Son: Scrum Master, Product Owner, equipo de Scrum, Cliente o usuario y
Dirección o Gestión. Veamos sus funciones:
23
Scrum Master: El Scrum Master es responsable de asegurar que el proyecto
se realiza según las prácticas, valores y reglas de Scrum y que progresa como
estaba previsto. Actúa recíprocamente tanto con el equipo del proyecto como
con el cliente. También es responsable de resolver cualquier impedimento
para seguir trabajando tan productivamente como sea posible.
Cliente: El cliente participa en las tareas relacionadas con los puntos del
Backlog para diseñar o mejorar el sistema.
24
Practicas
25
Sprint: El sprint consiste en adaptarse a las condiciones cambiantes del
proyecto como requisitos, tiempo, recursos, conocimiento, tecnología, etc. El
Equipo de Scrum se organiza para producir un nuevo incremento ejecutable en
un sprint que dura aproximadamente un mes natural. Las herramientas activas
del equipo son las reuniones para planear el sprint, el Sprint Backlog y las
reuniones diarias de Scrum.
Sprint Backlog: Es el punto de partida para cada sprint, una lista de puntos
de la lista del Product Backlog seleccionados para llevarse a cabo en el
próximo sprint. El equipo de Scrum junto con el Scrum Master y el Product
Owner seleccionan los puntos en la reunión para planear el Sprint, basándose
en los puntos con prioridad y los objetivos de ese sprint. A diferencia del
Product Backlog, el Sprint Backlog no se modifica hasta que el sprint (es
decir, 30 días) termina. Cuando todos los puntos del Sprint Backlog están
completos, se prepara una nueva iteración del sistema.
26
Figura 3 Ficha de Sprint Backlog utilizadas en Scrum
27
eXtream Programming (XP)
Procesos
3
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulacio, Pg 407. Catalunya, España
28
cuánto tiempo requiere cada función y se acuerda un calendario. El tiempo
para la primera versión normalmente no excede de dos meses. La propia fase
de planificación necesita un par de días. La fase de Planificación de las
Iteraciones para lanzar una versión incluye varias iteraciones de los sistemas
antes de la primera versión. El calendario propuesto en la etapa de
planificación se divide en un número de iteraciones de entre una y cuatro
semanas. La primera iteración crea un sistema con la arquitectura del sistema
completo. Esto es posibles gracias a elegir las historias que serán la base del
sistema, no detalles. El cliente decide las historias para cada iteración. Las
pruebas funcionales, propuestas por el cliente, se realizan al final de cada
iteración. Al final de la última iteración, el sistema está listo para la
producción.
29
resultados esperados o si se hace demasiado caro para continuar
desarrollándolo.47
Roles
4
o Grupo ISSI (ingeniería de Software y Sistemas de Información), G. I. (12 al 14 de Noviembre
de 003). Metodologías Agiles en el Desarrollo de Software. Pg 59. Alicante, España
30
tenga éxito, debe haber comunicación y coordinación entre los programadores
y los otros miembros del equipo. Se encargan de estimar el tiempo que llevará
implementar las funciones del sistema asociadas a cada historia, definir las
tareas que conlleva cada una e implementan las historias y las pruebas
unitarias.
Cliente “En Casa” (On-Site): El cliente escribe las historias en fichas y las
pruebas funcionales, decidiendo cuándo dar por válida cada funcionalidad. El
cliente establece la prioridad de implementación de los requisitos o
funcionalidades. En la segunda versión de XP, el papel del cliente ha
cambiado ligeramente: originalmente era una sola persona, correspondía al
perfil de un cliente real (preferentemente, un usuario final del sistema) y
permanecía durante todo el proyecto en la misma habitación que el equipo de
programadores. Después, el papel de Cliente se asignó a un solo analista de
negocios, en lugar de a un cliente real o a un usuario. En la actualidad, el
papel del cliente lo suele desempeñar un equipo de analistas.
31
Entrenador O Instructor: El coach, con un sólido conocimiento de XP,
guiará a los miembros del equipo y es el responsable del proceso en conjunto.
Vigila todo el proceso y se asegura de que el proyecto continúa siendo
extremo, es decir, que se cumplen las doce prácticas. Beck comenta que la
función más relevante del coach es la adquisición de juguetes y comida; otros
dicen que está para servir café. Lo importante es que el coach se vea como un
“facilitador” o ayudante, antes que como alguien que da órdenes. Métodos
ágiles para el desarrollo de software Métodos
Practicas
5
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
32
para ayudar en el desarrollo de software y a la aplicación disciplinada de las
siguientes prácticas.
Diseño simple. Se debe diseñar la solución más simple que pueda funcionar y
ser implementada en un momento determinado del proyecto.
33
Refactorización (Refactoring). Es una actividad constante de
reestructuración del código con el objetivo de remover duplicación de código,
mejorar su legibilidad, simplificarlo y hacerlo más flexible para facilitar los
posteriores cambios. Se mejora la estructura interna del código sin alterar su
comportamiento externo.
Cliente in-situ. El cliente tiene que estar presente y disponible todo el tiempo
para el equipo. Éste es uno de los principales factores de éxito del proyecto
XP. El cliente conduce constantemente el trabajo hacia lo que aportará mayor
valor de negocio y los programadores pueden resolver de manera inmediata
cualquier duda asociada. La comunicación oral es más efectiva que la escrita.
34
Estándares de programación. XP enfatiza que la comunicación de los
programadores es a través del código, con lo cual es indispensable que se
sigan ciertos estándares de programación para mantener el código legible
Crystal Methodologies
35
dependerán del tamaño del quipo, estableciéndose una clasificación por colores, por
ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros).6
Procesos
6
Grupo ISSI (ingeniería de Software y Sistemas de Informacion), G. I. (12 al 14 de Noviembre
de 2003). Metodologias Agiles en el Desarrollo de Software. Pg 59. Alicante, España
36
d. Test de regresión automatizado, es decir, aplicado después de algún
cambio para ver si la resolución ha causado algún fallo en algo que
antes funcionaba.
37
Roles
a) Borradores
d) Código Fuente
e) Código de Migración
f) Pruebas
38
g) Empaquetado del sistema
Practicas
7
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
39
• Victoria temprana. Es mejor buscar pequeños triunfos iniciales que aspirar a
una gran victoria tardía. Usualmente, la primera victoria temprana consiste en
la construcción de un Esqueleto Ambulante. Conviene no utilizar la técnica de
“lo peor primero” de XP, porque puede bajar la moral. La preferencia de
Cockburn es “lo más fácil primero, lo más difícil segundo”.i
• Esqueleto ambulante. Es un paso que debe ser simple, pero completo. Podría
ser una rutina de consulta y actualización en un sistema cliente-servidor, o la
ejecución de una transacción en un sistema transaccional de negocios. Un
Esqueleto Ambulante no suele ser robusto; sólo camina, y carece de la “carne”
o funcionalidad de la aplicación real, que se agregará incrementalmente. Es
diferente de una spike, porque ésta es “la más pequeña implementación que
demuestra un éxito técnico plausible” y después se tira, porque puede ser
peligrosa; una spike sólo se usa para saber si se está en la dirección correcta
8
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
40
Feature -Driven Development (FDD)
Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas (hasta 2
semanas). Se centra en las fases de diseño e implementación del sistema partiendo de
una lista de características que debe reunir el software. Sus impulsores son Jeff De
Luca y Peter Coad. 9
Proceso
9
Grupo ISSI (ingeniería de Software y Sistemas de Informacion), G. I. (12 al 14 de Noviembre de
2003). Metodologias Agiles en el Desarrollo de Software. Pg 59. Alicante, España
41
equipo de desarrollo entonces discute y elige los modelos apropiados de
objeto para cada área del dominio. Simultáneamente, se construye un
diagrama del modelo global para el sistema.
42
procedimientos iterativos durante los cuales se confeccionan las
características seleccionadas.
10
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
43
Roles
Un miembro del equipo puede tener varios papeles, y un mismo papel puede ser
compartido por varias personas. Los miembros y sus respectivas responsabilidades
son:
44
Arquitecto Jefe: El diseñador principal es responsable del diseño global del
sistema y de hacer los talleres con el equipo. También es quien toma las
últimas decisiones en todos los temas de diseño. Si fuera necesario, este papel
puede ser dividido en dos: arquitecto del dominio y arquitecto técnico.
45
Gestor Del Dominio: El Domain Manager dirige a los expertos del dominio
y resuelve sus diferencias de opiniones acerca de los requisitos para el
sistema.
46
c) También puede ser involucrado en el productionizing del sistema.
Tester: Los probadores verifican y validan (V&V) que el sistema cumpla las
especificaciones y requisitos del cliente. Puede ser un equipo independiente o
una parte del equipo del proyecto.
Practicas
FDD consiste en un conjunto de mejores prácticas, que no son nuevas, pero que la
mezcla específica de ellas, hacen que los cinco procesos de FDD sean únicos para
cada caso. Palmer y Felsing también defienden que deberían usarse todas las prácticas
disponibles para conseguir el mayor beneficio, ya que ninguna práctica domina por
completo todo el proceso. FDD involucra las prácticas siguientes:
11
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
47
• Modelado de los objetos del dominio: Exploración y explicación del dominio
del problema. Los resultados se engloban en el framework donde se agregan
las funcionalidades.
• Propiedad individual de la clase (código): Cada clase tiene una única persona
responsable de la fiabilidad, rendimiento, e integridad conceptual de la clase.
12
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
48
Rational Unified Process (RUP)
RUP fue desarrollado por Philippe Kruchten, Ivar Jacobsen y otros en la Rational
Corporation para complementar UML, Unified Modelling Language actualmente
propiedad de IBM.1 Junto con el Lenguaje Unificado de Modelado UML, constituye
la metodología estándar más utilizada para el análisis, diseño, implementación y
documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos
firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y
necesidades de cada organización.
Proceso
49
determinarán la funcionalidad del sistema. Se diseñan posibles arquitecturas, y
se estima el calendario y costo para el proyecto entero. Además, se hacen las
estimaciones para la siguiente fase.
50
versiones beta, preparar a los usuarios y gestores de los sistemas, y pasar el
producto a los departamentos de marketing, distribución y ventas. 13
13
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
51
Roles
Analistas:
c) Analista de sistema.
d) Especificador de requisitos.
Desarrolladores:
a) Arquitecto de software.
b) Diseñador
d) Diseñador de cápsulas.
f) Implementador.
g) Integrador.
52
Gestores:
a) Jefe de proyecto
c) Jefe de configuración.
d) Jefe de pruebas
e) Jefe de despliegue
f) Ingeniero de procesos
h) Gestor de pruebas.
Apoyo:
a) Documentador técnico
b) Administrador de sistema
c) Especialista en herramientas
d) Desarrollador de cursos
e) Artista gráfico
53
Especialista en pruebas:
14
b) Analista de pruebas
Practicas
Las piedras angulares de RUP son seis que quedan bajo las fases de los workflow y
los papeles de RUP. Las prácticas son:15
14
http://desarrollodefw.blogspot.mx/2012/10/roles-en-rup.html
15
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
54
Figura 9. Prácticas de RUP
55
Proceso
56
Iteración Del Modelo Funcional: La fase de iteración del modelo funcional
es la primera fase iterativa e incremental. En cada iteración, se decide el
contenido y el enfoque adecuado a partir de los resultados de iteraciones
anteriores. Se realiza el análisis, la codificación y los prototipos. Los
prototipos no se desechan completamente, sino que se mejoran gradualmente
hasta poder incluirlos en el sistema final. En los diferentes pasos de las fases,
se generan en total cinco outputs o resultados:
Roles
58
Usuario Asesor (Advisor): Representa otros puntos de vista importantes;
puede ser alguien del personal de IT o un auditor financiero. Aprueba los
diseños y los prototipos.
16
Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de software. Proyecto de
Titulación, Pg 407. Catalunya, España
60
Adaptive Software Development – ASD
Proceso
Adaptive Software Development da forma a las fases básicas de la gestión ágil en:
Especulación
61
Colaboración : Desarrollo concurrente del trabajo de construcción y gestión
del producto
Aprendizaje
d) Funcionalidad desarrollada
h) Basado en la funcionalidad
17
http://adaptivesoftwaredevelopment.blogspot.mx/
62
Roles
Practicas
ASD propone muy pocas prácticas para el trabajo diario. Básicamente, expresamente
cita tres:
• Desarrollo iterativo
De hecho, quizás el problema más significante con ASD es que sus prácticas son
difíciles identificar, y deja muchos puntos sin especificar.
63
6.2 Capítulo II Estado actual de las metodologías agiles
Según Julián Gómez; Una de las cuestiones que siempre se plantean a la hora de
implantar una metodología ágil en una organización que todavía no lo ha hecho es el
tema de los beneficios, ¿qué voy a obtener a cambio del esfuerzo de implantar una
metodología ágil?
64
Resultado del análisis del año 2015
18
Grafica 1 Beneficos de la agilidad 2015
18
Ref 4
65
Resultados del análisis del año 2016
Capacidad de gestionar el
8% cambio de prioridades
17%
9%
Aumentar la Productividad del
Equipo
19
Ref 3
66
Resultado del análisis del año 2017
Capacidad de gestionar el
8% cambio de prioridades
17%
9% Aumentar la Productividad del
Equipo
El primero de la lista es algo que nos preocupa a todos y es el time to market, desde
que tenemos un requisito hasta que finalmente la aplicación lo satisface. ¿Quién no
desea mejorarlo? Cuanto antes estemos en el mercado antes podremos probar si
funciona o no.
20
Ref 14
67
Salvo algún punto más en los valores de alguna de las respuestas la clasificación
permanece inalterada con respecto al año pasado. Como vemos la mayoría de las
necesidades son las de siempre: Hacer más cosas en menos tiempo con mayor
calidad para un determinado tipo de proyectos.
Julián Gómez comenta que: Las metodologías ágiles frecuentemente utilizan técnicas
similares, por eso es interesante conocer más allá de dichas metodologías cuales son
las técnicas ágiles más valoradas y utilizadas en el día a día:
68
Resultados del año 2015
Backlog priorizados
19%
21% Planificación de las
iteraciones
Retrospectivas
21%
69
Resultados del año 2016
Backlog priorizados
18%
20% Planificación de las
iteraciones
21% Retrospectivas
21
Ref 14
70
Resultados del año 2017
Backlog priorizados
18%
20% Planificación de las
iteraciones
Retrospectivas
21%
De entre todos los datos cabe destacar las subidas de los Backlog priorizados (desde
la tercera a la segunda posición) y las Retrospectivas (de la quinta a la cuarta).
En general, los datos son muy similares. Si no conoces en qué consisten estas técnicas
te las resumo brevemente las tres más usadas:
22
Ref 14
71
objetivo es conocer todos los días el estado de las tareas que hicimos el día
anterior, los problemas que nos encontramos y las tareas que haremos hoy.
Corto, conciso, escueto y para todo el equipo.
Julián Gómez comenta; Es un dato bien interesante. En esta ocasión los valores están
más repartidos entre todas las opciones pero las primeras posiciones son bastantes
representativas, la causa del fracaso de los proyectos ágiles es:
23
Ref 3
72
Resultados del año 2015
2424
Ref 4
73
Resultados del año 2016
Falta de experiencia en
métodos ágiles
19% 20%
La cultura de la empresa
contra los principios de la
agilidad
Falta de soporte por parte de la
dirección
19%
23% Presión externa para seguir
procesos de cascada
tradicional
Falta de soporte para la
19% transición cultural
25
Grafica 8 Falla de la agilidad y los proyectos 2016
25
Ref 3
74
Resultados del año 2017
Falta de experiencia en
métodos ágiles
18%
24%
La cultura de la empresa
contra los principios de la
agilidad
Falta de soporte por parte de la
dirección
18%
Presión externa para seguir
19% procesos de cascada
tradicional
Falta de soporte para la
21% transición cultural
Parece que con la difusión de la agilidad las empresas cuentan con personal con
experiencia en la misma y, por tanto, en lugar de desconocimiento encuentran más
reticencia al cambio. Con respecto al año pasado ha habido un relevo en la primera
posición y el quinto aparece por primera vez.
26
Ref 14
75
6.2.4 Quien frena la implantación de la Agilidad
Según Julián Gómez Hay ciertos factores que influyen en que la implantación de la
Agilidad no vaya tan rápida o suave como debiera. Es importante conocerlos para
evitarlos en nuestros desarrollos. Los más importantes son:
27
Ref 3
76
Resultados del año 2016
28
Ref 4
77
Resultados del año 2017
18%
Marco de trabajo preexistente
en cascada/rígido
24%
Soporte de la dirección
29
Ref 14
78
6.2.5 Las herramientas más utilizadas
Julián Gómez; Por último vamos a ver la utilización de herramientas como soporte a
la metodología ágil. Lo que más me sorprende es el primer puesto ya que es un todo
terreno en cada oficina que lo mismo sirve para cuadrar un balance como para
gestionar el backlog, Microsoft Excel:
11%
Microsoft Excel
32%
15% Microsoft Project
Atlassian/JIRA
VersionOne
21% Microsoft TFS
21%
30
Ref 3
79
Análisis del año 2016
12%
Microsoft Excel
31%
14% Microsoft Project
Atlassian/JIRA
VersionOne
17% Microsoft TFS
26%
31
Grafica 14 Herramientas mas usadas del 2016
31
Ref 4
80
Análisis del año 2017
12%
Microsoft Excel
30% Microsoft Project
13%
Atlassian/JIRA
VersionOne
Microsoft TFS
30% 15%
iceScrum
32
Ref 14
81
Resultados del año 2015
Hay un ganador claro y es Scrum. No sólo por ser la metodología más usada con
diferencia (56%) si no porque también está en la segunda posición Híbrida
Scrum/XP(10%) y en la cuarta Scrumban (6%):
Kanban
33
Ref 4
82
Resultados del año 2016
Kanban
Los únicos valores que cambian, y a mejor, son Scrum y Scrumban el resto
permanecen igual que el año pasado.34
34
Ref 3
83
Resultados del año 2017
Para esta año 2017 el rey indiscutible es Scrum esto se debe a su efectividad y la
capacidad de poder realizar combinaciones con otras metodologías como XP o
Caban.
Kanban
84
6.3 Capítulo III Tendencia de las metodologías agiles: SCRUM
6.3.1 Introducción
85
Figura 11. Flujo de SCRUM para Sprint 35
35
SCRUMstudy Targeting succes. (Enero de 2016). Guia para el cuerpo de conocimientos de
SCRUM. GUIA SBOK, Pg. 330. Mexico.
86
c. Retroalimentación continua—La retroalimentación continua se
proporciona a través de los procesos llamados Llevar a cabo la reunión
diaria y Demostración y validación del sprint.
87
i. Motivación—Los procesos de Llevar a cabo la reunión diaria y
Retrospectiva del sprint conducen a mayores niveles de motivación
entre los empleados.
88
p. Ambiente innovador—Los procesos de Retrospectiva de sprint y
Retrospectiva del proyecto crean un ambiente de introspección,
aprendizaje y capacidad de adaptación que conllevan a un ambientede
36
trabajo innovador y creativo
Los principios de Scrum son las pautas básicas para aplicar el marco de Scrum, y
deben utilizarse obligatoriamente en todos los proyectos Scrum. Los seis principios
de Scrum que se presentan en el capítulo 2 son los siguientes:
1. Control del proceso empírico.
2. Auto-organización
3. Colaboración
6. Desarrollo iterativo37
36
Gallego, M. T. (01 de 11 de 2015). Metodologias SCRUM. Gestion de poryectos informaticos, Pg.
56 Mexico.
37
SCRUMstudy Targeting succes. (Enero de 2016). Guia para el cuerpo de conocimientos de
SCRUM. GUIA SBOK, Pg. 330. Mexico
89
Figura 11. Principios de SCRUM
90
1. Control del proceso empírico—Este principio pone de relieve la
filosofía entral de Scrum en base a las tres ideas principales de
transparencia, inspección y adaptación.
91
6. Desarrollo Iterativo—Este principio define el desarrollo iterativo y
enfatiza cómo manejar mejor los cambios y crear productos que
satisfagan las necesidades del cliente. También delinea las
responsabilidades del propietario del producto y las de la organización
relacionadas con el desarrollo iterativo.
6.3.4 Organización
Roles Centrados
Los roles centrales son aquellos que se requieren obligatoriamente para crear el
producto o servicio del proyecto. Las personas a quienes se les asignan los roles
centrales están plenamente comprometidas con el proyecto, y son las responsables del
éxito de cada iteración del mismo, así como del proyecto en su totalidad.
92
El Scrum Master es un facilitador que asegura que el equipo Scrum esté
dotado de una ambiente propicio para completar el proyecto con éxito. Este
rol guía, facilita y les enseña las prácticas de Scrum a todos los involucrados
en el proyecto; elimina los impedimentos que encuentra el equipo; y, asegura
que se estén siguiendo los procesos de Scrum.
Roles no Centrales
Los roles no centrales son los que no son obligatoriamente necesarios para el
proyecto Scrum, y estos pueden incluir a miembros de los equipos que estén
interesados en el proyecto. No tienen ningún papel formal en el equipo del proyecto,
y pueden interactuar con el equipo, pero pueden no ser responsables del éxito del
proyecto. Los roles deben tenerse en cuenta en cualquier proyecto de Scrum.
El jefe propietario del producto es un rol para proyectos más grandes con
múltiples equipos Scrum. Este rol se encarga de facilitar el trabajo del
propietario del producto, y de mantener la justificación del negocio para el
proyecto más grande.
94
Figura 12 Organización en SCRUM38
6.3.5 Procesos de SCRUM
38
Gallego, M. T. (01 de 11 de 2015). Metodologias SCRUM. Gestion de poryectos informaticos, Pg.
56 Mexico.
95
Tabla 2 Resumen de los procesos de SCRUM
Las fases describen en detalle cada proceso, incluyendo sus entradas, herramientas y
salidas asociadas. En cada proceso, algunas entradas, herramientas y salidas son
obligatorias (las que tienen un asterisco después de sus nombres), mientras que otras
son opcionales. La inclusión de las entradas, herramientas y/o salidas opcionales
dependerá del proyecto en particular, organización o industria. Las entradas,
herramientas y salidas indicadas como obligatorias son importantes para la
implementación exitosa de Scrum en cualquier organización.
96
Inicio
97
pendientes del producto para desarrollar un cronograma de planificación del
lanzamiento, que es esencialmente un programa de implementación por fases
que se puede compartir con los socios del proyecto. También se determina la
duración del sprint en este proceso.
Planificación y estimación
98
lista de tareas. Con frecuencia, una reunión de planificación de tareas se
convocará para este efecto.
Implementación
99
3. Mantenimiento de la lista priorizada de pendientes del producto—En este
proceso, lista priorizada de pendientes del producto se actualiza y se mantiene
continuamente. Se puede considerar realizar una reunión de revisión de la lista
priorizada de pendientes del producto, en la que se discute y se incorpora la
lista priorizada de pendientes del producto de forma adecuada.
Revisión y retrospectiva
100
Lanzamiento
39
Gallego, M. T. (01 de 11 de 2015). Metodologias SCRUM. Gestion de poryectos informaticos, Pg.
56 Mexico.
40
SCRUMstudy Targeting succes. (Enero de 2016). Guia para el cuerpo de conocimientos de
SCRUM. GUIA SBOK, Pg. 330. Mexico.
101
6.3.6 Scrum vs. Proyectos tradicional
102
6.3.7 Practicas
103
Estimación De Esfuerzo: La estimación de esfuerzo es un proceso iterativo
donde las estimaciones de cada punto se detallan más a fondo partiendo de la
información disponible en cada momento. El Product Owner junto con el
equipo se encarga de estas estimaciones.
Sprint Backlog: Es el punto de partida para cada sprint, una lista de puntos
de la lista del Product Backlog seleccionados para llevarse a cabo en el
próximo sprint. El equipo de Scrum junto con el Scrum Master y el Product
Owner seleccionan los puntos en la reunión para planear el Sprint, basándose
en los puntos con prioridad y los objetivos de ese sprint. A diferencia del
Product Backlog, el Sprint Backlog no se modifica hasta que el sprint (es
decir, 30 días) termina. Cuando todos los puntos del Sprint Backlog están
completos, se prepara una nueva iteración del sistema.
104
Figura 14 Ficha de Sprint Backlog utilizadas en Scrum
105
La reunión de la revisión puede revelar nuevos puntos e incluso cambiar la
dirección tomada del sistema que se está construyendo..41
41
Gallego, M. T. (01 de 11 de 2015). Metodologias SCRUM. Gestion de poryectos
informaticos, Pg. 56 Mexico
106
7 Método empleado en la investigación, instrumentos empleados.
Seleccione el método estadístico porque este método cuenta con dos grandes estepas
para la obtención y comparación de resultados, me refiero al análisis y síntesis de
información. La capacidad de análisis y síntesis nos permite conocer más
profundamente las realidades con las que nos enfrentamos, simplificar su descripción,
descubrir relaciones aparentemente ocultas y construir nuevos conocimientos a partir
de otros que ya poseíamos.
Las características que adoptan los procedimientos propios del método estadístico
dependen del diseño de investigación seleccionado para la comprobación de la
consecuencia verificable en cuestión.
107
8- Análisis estadístico e inferencias de los datos obtenidos.
108
Porque falla la agilidad y los proyectos agiles
2015 2016 2017
Falta de experiencia en métodos ágiles 44 42 40
La cultura de la empresa contra los principios de la 42 46 36
agilidad
Falta de soporte por parte de la dirección 38 38 38
Presión externa para seguir procesos de cascada 37 38 34
tradicional
Falta de soporte para la transición cultural 36 38 34
109
Las herramientas más utilizadas
2015 2016 2017
Microsoft Excel 68 60 59
Microsoft Project 46 51 28
Atlassian/JIRA 45 33 58
VersionOne 33 28 26
Microsoft TFS 24 24
iceScrum 23
110
9. Análisis comparativo de los resultados obtenidos contra los
esperados.
111
En la presente grafica se muestra el aumento de productividad de los proyectos de
desarrollo de software, comparación entre los años 2015, 2016 y 2017.
112
En la presente grafica se muestra las técnicas más usadas en el desarrollo de software
con metodologías agiles entre los años 2015, 2016 y 2017, en donde claramente se
observa que la técnica más usada en los tres años son as reuniones diarias.
113
En la presente grafica se observa la herramienta más usada entre los años 2015, 2016
y 2017, donde claramente se be que la herramienta más usada en el apoyo a la
administración de metodologías agiles es Microsoft Excel.
114
En la siguiente grafica se muestra las metodologías agiles comparando los años entre
2015 y 2017 en donde indiscutiblemente el rey de las metodologías agiles es Scrum
y sigue en aumento.
115
Anteriormente hemos hablado de las estadísticas que beneficias las metodologías
agiles, pero no todo favorece a las metodologías agiles, pues hay factores que afectan
el desarrollo de las metodologías agiles tal es el caso de la siguiente grafica que
muestra como la capacidad para cambiar la cultura de una organización es una factor
muy importante para adoptar una buena metodología agil.
116
En la siguiente grafica se muestra como la aceptación y el estudio por metodologías
agiles es casa ves es más aceptada por los nuevos programadores, ya que la falta de
experiencia con las metodologías agiles es un factor que poco a poco va
disminuyendo el la adopción de una metodología ágil para el desarrollo de software.
117
10. Elaboración de conclusiones
Dentro de las técnicas en el desarrollo de software que se han seguido usado en los
últimos años destaca las Reuniones de pie o reuniones diarias ya que es una técnica
fundamental en la agilidad que tiene como objetivo conocer todos los días el estado
de las tareas que se hicieron el día anterior, los problemas que se tuvieron y las
tareas que se harán hoy. En cambio la técnica que ha tomado fuerza con el paso de
los años es la Retrospectiva que tiene como objetivo mejorar de manera continua su
productividad y la calidad del producto que está desarrollando.
118
Como hemos observado en las estadísticas hasta ahora Scrum llegó para quedarse,
pues indiscutiblemente ocupa el primer lugar en la listas de las metodologías más
usadas con 56, 58 y 61 por ciento y sigue en aumento, aunque muy despacio XP le
sigue el paso permanente con un porcentaje de 10. Lo que es importante mencionar
es que para el año 2017 la utilización de múltiples metodologías (Hibrida
personalizada) tuvo un aumento de 1% lo cual significa que se opta más por
combinar no solo Scrum/Xp si no realizar más combinaciones con más
metodologías agiles.
Por otro lado al comparar los análisis de factores que no favores o frenan las
agilidad nos encontramos, que la falta de capacidad para cambiar la cultura de la
organización ha ido en aumento en los últimos años del 44 al 45 por ciento, esto
quiere decir que las empresas no quieren asumir los gastos y la reorganización de
procesos que implican adoptar una metodología ágil para el desarrollo de software.
Pero no todo va mal pues la falta de experiencia en metodologías agiles un factor que
frenaba la agilidad ha ido en decremento considerablemente de un 44 a un 40 por
ciento, esto nos indica que los desarrolladores buscan cada vez más capacitarse en
las metodologías agiles.
119
11. Hipótesis
120
12. Bosquejo del método
121
13. Cronograma
Un Cronograma es una representación gráfica y ordenada con tal detalle para que un
conjunto de funciones y tareas se lleven a cabo en un tiempo estipulado.
122
123
14. Presupuesto y/o financiamiento
Presupuesto
124
Presupuesto al periodo Enero – Julio 2017
125
15. Lista de referencias
Ref 1 Raúl Úbeda González. (Marzo de 2009). Métodos ágiles para el desarrollo de
software. Proyecto de Titulación, Pg 407. Catalunya, España
Ref 6 Lerner, J. & Tirole, J. The Simple Economics of Open Source. 2001.
http://www.people.hbs.edu/jlerner/publications.html
126
Ref 7 SCRUMstudy Targeting succes. (Enero de 2016). Guia para el cuerpo de
conocimientos de SCRUM. GUIA SBOK, Pg. 330. Mexico.
127
Ref 14 Fernandez, A. D. (08 de Febrero de 2017). atSistemas. Recuperado el 02 de 03 de 2017, de La
Agilidad en el ciclo de vida de desarrollo:
https://www.atsistemas.com/es/novedades/webinars/Microservicios,-contenedores,-
DevOps%E2%80%A6-La-Agilidad-en-desarrollo-de-Software-seg%C3%BAn-atSistemas
128
ANEXOS