Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UPsobuam
UPsobuam
ESCUELA DE POSGRADO
UNIDAD DE POSGRADO DE LA FACULTAD DE INGENIERÍA DE
PRODUCCIÓN Y SERVICIOS
Asesor:
Dr. Beltrán Castañón, César Armando
Arequipa - Perú
2023
Agradecimientos
Agradezco a mis padres de forma muy especial, su sacrificio y dedicación son invalua-
bles.
A mi amada familia que me ha concedido su tiempo y palabras de aliento para poder
cumplir con este objetivo.
De igual forma, agradezco a mi Asesor de Tesis, que gracias a sus consejos y correccio-
nes hoy puedo culminar este trabajo.
A la Universidad Nacional De San Agustı́n De Arequipa, por haberme brindado tantas
oportunidades y enriquecerme en conocimiento.
i
Dedicatoria
Dedico esta tesis en primer lugar a Dios, quien con su gracia me ha permitido dar cada
paso en mi vida, tanto personal y profesional.
A mis padres que siempre me dieron todo su apoyo con el único deseo que cumpla mis
sueños.
En especial a mi esposa, sin su apoyo, inspiración y motivación incondicionales, no
habrı́a sido posible lograr este objetivo.
Y a mis hijos quienes son el motor y la alegrı́a de mi vida.
ii
Resumen
iii
para su negocio.
Our results show that each team must find its own agile methodology, which,
instead of limiting itself to rigid frameworks, must operate under fundamen-
tal principles that lead it to apply methods and practices in order to achieve
v
high business value results.
Agradecimientos i
Dedicatoria ii
Resumen iii
Abstract v
vii
ÍNDICE GENERAL
1.6. Población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7. Tamaño de la Muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8. Tipo de Muestreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9. Técnicas de Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.10. Instrumentos de Recolección de Datos . . . . . . . . . . . . . . . . . . . 10
1.11. Tipo y Diseño de la Investigación . . . . . . . . . . . . . . . . . . . . . 10
III.Diagnóstico Situacional 48
3.1. Diagnóstico de Desarrollo de Aplicaciones Móviles en Perú . . . . . . . 48
3.2. Definición de los Problemas a Resolver con la Propuesta . . . . . . . . 52
IV.Propuesta Planteada 54
4.1. Planteamiento de Metodologı́a de Desarrollo de Aplicaciones . . . . . . 54
4.2. Definición del Metaproceso . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1. Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.2. Despegue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.3. Producto Mı́nimo Viable MVP . . . . . . . . . . . . . . . . . . 57
4.2.4. Versiones Futuras . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.5. Flujo de Trabajo en Progreso WIP . . . . . . . . . . . . . . . . 60
4.2.6. Priorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.7. Evaluación de Resultados . . . . . . . . . . . . . . . . . . . . . 64
4.2.8. Retrospectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.9. Definición de Artefactos para Validar Propuesta . . . . . . . . . 65
4.3. Descripción del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . 67
4.3.1. DondeParqueo App . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4. Desarrollo del Producto DondeParqueo . . . . . . . . . . . . . . . . . . 68
4.4.1. Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.2. Despegue o Liftoff . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4.3. Definición del Flujo de Trabajo . . . . . . . . . . . . . . . . . . 79
4.4.4. Descubrimiento del Producto Mı́nimo Viable – MVP . . . . . . 81
4.4.5. Implementación del MVP . . . . . . . . . . . . . . . . . . . . . 94
4.4.6. Retrospectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.4.7. Comentarios al Terminar Iteración . . . . . . . . . . . . . . . . 126
Conclusiones 153
Recomendaciones 155
Bibliografı́a 157
A. Anexos 173
A.1. Historia de la Agilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
A.1.1. Antes de 2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
A.1.2. Año 2001 - Manifiesto Ágil . . . . . . . . . . . . . . . . . . . . . 174
A.1.3. Después del 2001 . . . . . . . . . . . . . . . . . . . . . . . . . . 176
A.1.4. Agile es Una Mentalidad . . . . . . . . . . . . . . . . . . . . . . 177
A.2. Programación Extrema . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
A.2.1. Reglas de Programación Extrema . . . . . . . . . . . . . . . . . 178
A.2.2. Valores de XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
A.3. Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
A.3.1. Pilares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
A.3.2. Valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
xii
LISTA DE TABLAS
5.2. Preguntas Encuesta CSAT – Conocimiento del Cliente sobre sus Nece-
sidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.3. Resultados CSAT – Conocimiento de las Necesidades del Cliente por Rol 132
5.4. Consolidado de Medición CSAT de Conocimiento de las Necesidades del
Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.5. Resultados de Sobrecostos por Dı́a . . . . . . . . . . . . . . . . . . . . 140
5.6. Resumen de Preguntas CSAT del Producto, CVDepend . . . . . . . . . 142
5.7. Resultados de CSAT CVDepend por Dı́a, Fase y Rol . . . . . . . . . . 142
5.8. Resultados CSAT CVDepend Consolidados por Pregunta y Fase. . . . 144
5.9. Relación Propuesta CSAT de CVIndpend vs. CSAT de CVDepend . . 144
xiv
ÍNDICE DE FIGURAS
xviii
Lista de Abreviaturas
CI/CD Continuous Integration and Continous Deployment xvi, 118, 126, 147, 151
CSAT Customer Satisfaction Score xiii, xvi, 65, 66, 130–138, 141–145, 151, 152
GE General Electric 27
MVP Minimun Viable Product, se traduce como Producto Mı́nimo Viable. ix, xv, 55,
57, 59, 75, 81–85, 88–90, 92–94, 121, 128, 130, 132, 133, 137, 142, 144, 146, 147,
149
xix
Lista de Abreviaturas
TDD Test Driven Development, se traduce como Desarrollo guiado por pruebas. xiv–
xvi, 22, 61, 62, 106, 107, 109–112, 116, 126, 129, 147, 151, 191
UX User Experience 36, 40, 90, 94, 128, 129, 132, 136, 137, 140, 142, 144, 146
WEF El Foro Económico Mundial - The World Economic Forum, por sus siglas en
inglés. 50, 52
WIP Work In Progress ix, 60, 61, 64, 79, 80, 94, 100, 147, 192
1.1. Antecedentes
1
1.1. Antecedentes
Existen muchas razones por las cuales fracasan los emprendimientos de aplica-
ciones móviles, como lo resume Azorı́n (2019), la carencia de originalidad en medio de
tantas aplicaciones similares; una segunda causa es la falta de pruebas tanto de códi-
go como de usuario, es muy perjudicial lanzar una aplicación con errores; una tercera
razón es ofrecer una deficiente experiencia de usuario, no es suficiente que la aplica-
ción funcione sino que provea una experiencia agradable al usuario final; la cuarta se
vincula con la poca comprensión del sistema operativo donde se ejecuta la aplicación
que puede provocar pérdida de usuarios; finalmente problemas de comercialización y/o
distribución terminan por limitar de forma importante el éxito de una aplicación.
En consecuencia, es pertinente evaluar la metodologı́a, según el Diccionario de la
Real academia Española and Madrid (2001), metodologı́a es la ciencia del método. Por
tanto, aplicar o diseñar una metodologı́a significa estudiar y definir un modo ordenado
de ejecutar alguna tarea, en este caso desarrollar una aplicación móvil, lo cual conlleva
esencialmente a un autoanálisis, que en experiencia del autor del presente trabajo ocurre
muy pocas veces dentro de los equipos de desarrollo de software.
De otro lado de acuerdo con el Reporte de Competitividad Global elaborado por
Schwab (2019), el Perú descendió del puesto 63 al 65 en 2019, algunos indicadores
como el Pago y Productividad, Crecimiento de Empresas Innovadoras y Empresas que
Adoptan Ideas Disruptivas califican al paı́s en 3.5, 3.6 y 3.3 respectivamente de una
1.3. Justificación
proyecto fracasó, en tanto que una encuesta a cargo de Wellingtone Project Manage-
ment (2017), revela que solo el 37 % de los equipos en el Reino Unido informaron haber
completado los proyectos a tiempo con más frecuencia que los que dijeron que no, esto
sumado a que 46 % de las organizaciones encuestadas a nivel mundial utilizan o han
usado un enfoque ágil o hı́brido en los últimos 12 meses (Project Management Insti-
tute, 2018), y por su parte 85.9 % de 101 592 desarrolladores de software encuestados
en todo el mundo utilizan Agile en su trabajo (Stack Overflow, 2018), muestran una
creciente adopción de enfoques ágiles en el mundo como herramienta para enfrentar
las turbulencias de los mercados de nuestros dı́as y al mismo tiempo un importante
espacio para mejorar y aportar en este campo de estudio, dando relevancia a este tipo
de investigaciones.
El presente trabajo propone un marco de trabajo para desarrollar aplicaciones
móviles empresariales con el fin de enfrentar los principales problemas de su imple-
mentación, deficiencias en la ingenierı́a de requerimientos, demoras e insatisfacción del
cliente. Para la consecución de los objetivos, tomaremos como referencia un caso prácti-
co donde abordar las diferentes etapas y fases de proceso de desarrollo, desde el análisis
y presentación de propuesta técnica hasta el despliegue y distribución del producto fi-
nal, esta última de forma referencial; seguiremos una perspectiva técnica lo cual no
incluirá aspectos comerciales ni contractuales de la problemática.
Por otro lado, contaremos con la guı́a de un asesor de tesis, con amplia experiencia
académica y práctica en investigaciones de post grado, los recursos de cómputo del
tesista, el software empleado será libre en su mayor parte y el tiempo disponible que
permite la finalización de esta investigación.
Para emprender esta tarea, tomamos como referencia la propuesta de Modern
Agile, cuyos principios han demostrado buenos resultados, recoge las mejores expe-
riencias de las empresas más disruptivas de la industria, sobre investigaciones serias y
exitosamente aplicadas en la actualidad.
Vemos que es viable conseguir los objetivos de la propuesta, gracias a toda la
referencia teórica y práctica en la que se sustenta este trabajo, esto sumado a la expe-
riencia del tesista que se aboca a este tipo de proyectos en su labor profesional, permite
contar con casos reales y prácticos para aplicar y recoger el feedback necesario.
1.4. Objetivos
Indicador 1 : Costo de errores cometidos en cada fase del proceso, a partir de una
lista predefinida.
De acuerdo con los objetivos trazados, el presente trabajo será elaborado bajo
un planteamiento metodológico cualitativo: El investigador plantea un problema de
estudio delimitado y concreto sobre el fenómeno, aunque en evolución. Sus preguntas
de investigación versan sobre cuestiones especı́ficas (Hernández et al., 2014).
1.6. Población
contextos, situaciones) que interesan al investigador y que llegan a ofrecer una gran
riqueza para la recolección y el análisis de los datos”.
Sistematizaciones bibliográficas.
Entrevistas.
Cuestionarios.
Cédula de entrevista.
Dado que el objetivo del estudio será definir un modelo ágil de desarrollo de
aplicaciones móviles empresariales basado en los principios Modern Agile y su efecto
en la satisfacción del cliente, se recurrirá a un diseño no experimental que se aplicará
de manera transversal descriptiva.
De acuerdo con Hernández et al. (2014, p. 152) la investigación no experimental
“es la que se realiza sin manipular deliberadamente variables. Es decir, se trata de estu-
dios en los que no hacemos variar en forma intencional las variables independientes para
ver su efecto sobre otras variables. Lo que hacemos en la investigación no experimental
es observar fenómenos tal como se dan en su contexto natural, para analizarlos”. Estos
mismos autores señalan que los diseños de investigación transversales “recolectan datos
en un solo momento, en un tiempo único. Su propósito es describir variables y anali-
zar su incidencia e interrelación en un momento dado” (p. 154). y descriptivo porque
tiene “como objetivo indagar la incidencia de las modalidades o niveles de una o más
variables en una población” (p. 155).
11
2.2. Desarrollo de Software Ágil
Esas prácticas técnicas son esenciales y algo que no debes pasar por alto. (Agile
Alliance, 2015a)
Si Agile es una mentalidad, ¿qué dice eso sobre la idea de las metodologı́as ágiles?
Para responder a esta pregunta, puede resultarle útil tener una definición clara
de la metodologı́a.
Alistair Cockburn sugirió que una metodologı́a es el conjunto de conven-
ciones que un equipo acuerda seguir. Eso significa que cada equipo tendrá su
propia metodologı́a. Que será diferente, ya sea en forma pequeña o grande, de
la metodologı́a de cualquier otro equipo.
Ası́ que las metodologı́as ágiles son las convenciones que un equipo elige
seguir de una manera que sigue los valores y principios ágiles.
Probablemente se piensa que Scrum y XP eran metodologı́as ágiles, sin
embargo, Alistair aplicó el término marco a esos conceptos. Ciertamente, nacie-
ron de la metodologı́a de un solo equipo, pero se convirtieron en marcos cuando
se generalizaron para ser utilizados por otros equipos. Esos marcos ayudan a
informar dónde comienza un equipo con su metodologı́a, pero no deben ser
la metodologı́a del equipo. El equipo siempre necesitará adaptar su uso de un
marco para que se ajuste adecuadamente a su contexto. (Agile Alliance, 2015a)
2.3.2. Scrum
Figura 2.1
Resumen de Scrum
2.3.3. Kanban
ningún trabajo adicional puede ser iniciado. Cualquier nuevo trabajo debe esperar en
una cola hasta que una tarjeta esté disponible. Cuando algo de trabajo es completado,
una tarjeta es liberada y reciclada. Con una tarjeta ahora libre, una nueva pieza de
trabajo en la cola puede ser iniciada.
Si no hay un lı́mite explı́cito del trabajo en progreso y no hay señalización para
jalar nuevo trabajo a través del sistema, no es un sistema kanban.
La razón para usar un sistema kanban, es limitar el trabajo en progreso de un
equipo a una capacidad establecida y balancear la demanda sobre del equipo contra el
rendimiento de su trabajo liberado, haciendo que pueda alcanzar una paz sostenible.
Más detalles sobre Kanban se pueden revisar en el Anexo A.4.
Una aplicación móvil, más comúnmente conocida como app, es un tipo de soft-
ware de aplicación diseñado para ejecutarse en un dispositivo móvil, como un teléfono
inteligente o una tableta. Las Apps con frecuencia sirven para proporcionar a los usua-
rios servicios similares a los que se accede en las PC. Las aplicaciones son generalmente
pequeñas unidades de software individuales con funciones limitadas. Este uso del soft-
ware de la aplicación fue originalmente popularizado por Apple Inc. y su App Store,
que ofrece miles de aplicaciones para iPhone, iPad e iPod Touch.
Una aplicación móvil también puede conocerse como app, web app, app en lı́nea,
app para iPhone o app para teléfonos inteligentes. (techopedia, 2020)
rial para resolver los problemas de una empresa. En general, una aplicación empresarial
es una plataforma de software que es muy grande y compleja. Las aplicaciones móviles
empresariales se crean para combinarse o interactuar con otras aplicaciones móviles em-
presariales que utiliza la empresa. Además, las aplicaciones móviles empresariales están
diseñadas con la intención de implementarse en muchas redes, dispositivos y sistemas
operativos diferentes; sin embargo, aún se desarrollan con capacidades administrativas
de gestión y seguridad.
El Anexo A.5 es un estudio detallado de las aplicaciones móviles, las considera-
ciones y recomendaciones técnicas aplicadas en el presente trabajo.
trabajo (frameworks) adaptables a cada realidad. En ese orden de ideas, por ejemplo,
luego de revisar la Guı́a de Scrum de sus autores Schwaber and Sutherland (2017) en su
nota final “Los roles, eventos, artefactos y reglas de Scrum son inmutables y, aunque es
posible implementar solo partes de Scrum, el resultado no es Scrum. Scrum solo existe
como un todo y funciona bien como contenedor para otras técnicas, metodologı́as y
prácticas”. Denota un aspecto ciertamente contradictorio la “inmutabilidad” que no
está acorde con los valores Ágiles.
La Agile Alliance (2015b) refiere que al final de cada iteración, el equipo suma
estimaciones de esfuerzo asociadas con historias de usuarios que se completaron durante
esa iteración. Este total se llama velocidad.
Highsmith, Jim consultor ejecutivo de ThoughtWorks y autor de varios libros so-
bre desarrollo de software ágil en un extracto de su artı́culo ¡La Velocidad está matando
la Agilidad! (“Velocity is killing agility!”) explica:
El énfasis excesivo en la velocidad causa problemas debido a su amplio uso como
medida de productividad. El uso adecuado de la velocidad es como una herra-
mienta de calibración, una forma de ayudar a hacer una planificación basada en
la capacidad, como lo describe Kent Beck en “Programación extrema: Abrazar
el cambio”. Las medidas de productividad en general tienen poco sentido en el
trabajo de conocimiento. La velocidad también es una medida seductora porque
es fácil de calcular. Aunque los puntos de la historia por iteración se calculan
sobre la base de caracterı́sticas liberables, la velocidad en su núcleo se trata de
esfuerzo.
Si bien los equipos ágiles intentan centrarse en ofrecer caracterı́sticas de
alto valor, se desvı́an al informar sobre la productividad. Una y otra vez escucho
sobre comentarios de gerentes o propietarios de productos: “Su velocidad cayó
de 24 la última iteración a 21 esta vez, ¿qué pasa? Volvamos a subirlo o subamos
aún más”. En este escenario, la velocidad se ha movido de una herramienta de
calibración útil (¿cuál es nuestra capacidad para la próxima iteración?) A una
herramienta de medición de rendimiento (productividad). Esto significa que dos
cosas se modifican brevemente: la calidad de la experiencia del cliente (cantidad
de caracterı́sticas sobre la experiencia del cliente) y la mejora del motor de
entrega (calidad técnica). (Highsmith, 2011)
Abordar este tema es crucial en todo proyecto de software, Jeffries, Ron, uno de
los autores del Manifiesto Ágil, detalla conclusiones sobre su experiencia en un artı́culo
algunas ideas importantes fueron:
Los equipos que aplican ideas ágiles casi siempre obtienen alguna mejora. En
relación con Scrum, el enfoque ágil más popular, es aproximadamente un veinte
por ciento mejor que lo que estaban haciendo antes.
A algunos equipos les va mucho mejor, los equipos que están obteniendo
buenos resultados, pero no excelentes comparten algunos elementos comunes en
lo que hacen, que los están frenando.
Estos equipos están demasiado preocupados en:
Estimar lo que pueden hacer cada dos semanas y cumplir sus promesas.
Los puntos de historia o Story Points y los cálculos de velocidad ahora se con-
sideran partes de facto de la Agilidad, legitimadas por libros populares, integradas en
herramientas de planificación, verificadas en certificaciones y ampliamente practicadas
en la industria (Kerievsky, 2012).
No obstante, en propias palabras de Jeffries (2013), quien se atribuye la autorı́a
de la estimación usando puntos de historia de usuario, “Lo sé: Estuve allı́ cuando fueron
inventados. Pude que haya inventado Puntos, si lo hice lo siento ahora”.
Esta práctica pretende oscurecer el aspecto temporal de la estimación para que
de forma comparativa se pueda medir el esfuerzo y la cantidad de trabajo a completar
en cada iteración, sin embargo, ha venido en detrimento de la propia agilidad, como
veremos de acuerdo con las experiencias de Kerievsky (2012) tras varios años entrenan-
do equipos y dirigiendo proyectos de software ha experimentado y profundizado este
aspecto.
Cuando se tiene una velocidad promedio de Puntos por iteración se presenta una
tendencia por parte de los administradores de equipos y responsables de negocio a pedir
que los desarrolladores incrementen la velocidad con la errónea idea de que ası́ elevarán
la productividad del equipo, la consecuencia de ello es que los desarrolladores inflan sus
estimaciones para que aparenten ser más rápidos en términos de cantidad de Puntos
por iteración, esto se ha visto en equipos con amplia experiencia y bien entrenados en
estas técnicas.
Las técnicas como el desarrollo basado en pruebas (TDD por sus siglas en inglés)
y la refactorización son a menudo lo primero que se debe descartar cuando alguien
intenta “hacer su estimación”. Demasiados equipos sacrifican la calidad y enfrentan
una deuda técnica únicamente para hacer o superar sus estimaciones y mantener sus
gráficos de consumo aparentemente en orden.
Kerievsky (2012) también relata problemas de comparación entre equipos por
su velocidad en Puntos, como tendencia errónea porque la velocidad promedio de un
equipo es una medida relativa basada en la propia experiencia del equipo y es incorrecto
usarla como forma de comparar la “productividad” de equipos distintos.
Muchos justifican el uso de puntos de la historia porque dicen que los humanos
no son buenos para estimar usando el tiempo real, porque se está estimando el
tamaño del trabajo, en lugar del tiempo que lleva completarlo. De hecho, los
humanos no son muy buenos para estimar en general, independientemente de
Cómo usarlos.
Figura 2.2
Los Cuatro Principios de Modern Agile
Nota. Pretende ser un enfoque de agilidad que parte de principios y está libre de todo
marco de trabajo. Reproducido de Modern Agile, de Kerievsky J., 2015, moderna-
gile.org (https://modernagile.org/img/modernAgileWheel/modern_agile_wheel_
english.svg). CC BY-SA 4.0
Estos cuatro principios aclaran el propósito y guı́an hacia una mejor gestión de
riesgos, una mayor eficiencia de capital, una mayor empatı́a y una reducción del
trabajo pesado.
Luego de estudiar a chefs de tres estrellas Michelin como Massimo Bottura,
empresarios multimillonarios como Gary Vaynerchuk y organizaciones de clase
mundial como Alcoa, Amazon, Google y Etsy, se encuentran estos principios
operando.
Los principios de Modern Agile se establecen como imperativos porque son
vitales para el éxito a largo plazo. (Kerievsky, 2016)
Si bien Modern Agile no dice qué crear, sı́ establece que su propósito es hacer
que la gente sea impresionante. Esta idea está inspirada en los blogs, charlas y
libros de Kathy Sierra.
Sierra (2015) dice que no estamos aquı́ para hacer un gran producto o
una gran compañı́a, sino para hacer que nuestros clientes sean increı́bles en lo
que hacen con nuestros productos o servicios. Eso significa descubrir qué los
está frenando y hacer cambios esenciales para ayudarlos a lograr resultados
increı́bles.
Este consejo puede llevarnos lejos. Amazon ha hecho de “Customer Ob-
session” un principio rector desde 1997. Si se hace que los clientes sean geniales,
tienden a ser promotores naturales de sus productos o servicios. El trabajo o
negocio prosperará si sigue los consejos de Sierra.
Pero ¿qué pasa si usted está empeñado en hacer que los clientes sean increı́-
bles y su personal tenga condiciones de trabajo o relaciones laborales miserables?
Esa no es una receta para el éxito a largo plazo. Para hacer su mejor trabajo
y hacer que los clientes sean geniales, el personal también debe ser increı́ble.
Modern Agile sugiere que nos esforcemos por hacer que todos en nuestro ecosis-
tema sean increı́bles, incluidos aquellos que usan, fabrican, compran, venden o
financian nuestros productos y servicios.
Esa es una tarea difı́cil. De hecho, puede requerir luchar por innovaciones
disruptivas o grandes objetivos peliagudos y audaces. Reunir un equipo y definir
un futuro que tal vez no tenga idea de cómo lograr. Nicholas Negroponte dijo una
vez: “El incrementalismo es el peor enemigo de la innovación”. Hacer mejoras
incrementales es bueno (especialmente si se pueden ofrecer continuamente), pero
las grandes innovaciones a menudo requieren una forma diferente de pensar.
respeto. No en Google.
Como describe Laszlo Bock en su libro Work Rules, el ingeniero que co-
metió el error trabajó para Jeff Huber, vicepresidente sénior de anuncios y apli-
caciones. Jeff crea una cultura que permite a las personas admitir errores de
forma segura y aprender de ellos. Él convoca una sesión de “¿Qué aprendimos?”
En la que el equipo discute errores notables, corrige esos errores y discute qué
aprender de los errores.
Después de llevar a cabo una sesión de este tipo sobre el error de un
millón de dólares del ingeniero, Jeff le preguntó al equipo: “¿Obtuvimos más de
un millón de dólares en aprender de esto?” Cuando el equipo respondió que sı́, la
reunión concluyó y todos volvieron a trabajar con conocimientos más cruciales
que antes. De hecho, esa reunión ahorró más de un millón porque la toma de
riesgos y los nuevos descubrimientos que permiten las culturas seguras para
fracasar no tienen precio.
Otro ejemplo surge en 2012, cuando Charles Duhigg publicó su fantástico
libro The Power of Habit. Duhigg cuenta la historia de Paul O’Neill y el gigante
de aluminio, Alcoa. El Sr. O’Neill se convirtió en CEO de Alcoa en 1986, en un
momento en que la empresa de 100 años estaba en problemas. Los trabajadores
estaban descontentos, la calidad del aluminio era pobre, los sindicatos lucharon
ferozmente con la gestión de Alcoa y la innovación se estancó. El Sr. O’Neill
tuvo una idea inusual para solucionar todos estos problemas: centrarse en la
seguridad de los trabajadores.
El Sr. O’Neill no hizo de la seguridad una prioridad, ya que las prioridades
cambian con frecuencia. En cambio, autorizó a los trabajadores a hacer de la
seguridad un requisito previo. Los cambios fueron inmediatos y asombrosos. A
medida que los trabajadores hicieron cambios, el trabajo se volvió más seguro y
eficiente. La solución de los problemas llevó a los trabajadores a sugerir nuevas
ideas innovadoras y mejorar la calidad. Al hacer que la seguridad de los tra-
bajadores sea un requisito previo, Paul O’Neill habı́a abierto una puerta a la
excelencia.
En los 13 años durante los cuales el Sr. O’Neill fue CEO y mucho después
de su partida en 2000, las acciones de Alcoa tuvieron un desempeño espectacular,
las lesiones en el lugar de trabajo y los dı́as de trabajo perdidos se desplomaron
y los trabajadores y clientes de Alcoa estuvieron mucho más felices que antes.
Hacer que la seguridad sea un requisito previo significa establecer la segu-
ridad antes de realizar un trabajo potencialmente peligroso. Si no se mejora la
seguridad después de cada accidente o uno que casi ocurre, la excelencia será
elusiva. Por lo tanto, después de una falla o un fallo cercano, tomar medidas
para evitar que el problema vuelva a ocurrir.
Hacer que la seguridad sea un requisito previo requiere que las colabora-
ciones, productos y servicios sean seguros. Esforzarse por proteger el tiempo, el
dinero, la salud, la información, la reputación y las relaciones de las personas.
En lugar de decir tópicos corporativos vacı́os, como “Tomamos su seguridad en
serio”, tratar la seguridad como la puerta a la excelencia, una clave esencial para
hacer que la gente sea impresionante. (Kerievsky, 2016)
El vuelo propulsado por humanos fue una vez un problema sin resolver. En 1959,
un hombre de negocios rico ofreció una gran recompensa en efectivo a cualquiera
que pudiera pilotar un avión propulsado por humanos alrededor de un recorrido
de ocho kilómetros en una milla. Durante 18 años, nadie lo hizo. Entonces Paul
MacCready entró en el desafı́o. Consideró lo que se habı́a intentado y declaró:
“El problema es que no sabemos cuál es el problema”.
MacCready luego diseñó un proceso mediante el cual podrı́a iterar de ma-
nera segura y rápida sobre el problema del vuelo propulsado por humanos. Él y
su equipo utilizaron tubos de aluminio, Mylar (poliéster) y alambre para produ-
Tabla 2.1
Manifiesto Ágil vs. Principios Modern Agile.
Nota. Hace una comparación y paralelo entre los cuatro principios de Modern Agile y los
valores del Manifiesto de Desarrollo de Software Ágil. Traducido de An Introduction to Mo-
dern Agile, de Kerievsky, 2016, An Introduction to Modern Agile (https://www.infoq.com/
articles/modern-agile-intro/). Derechos de autor 2016 Kerievsky, Joshua.
Modern Agile consta de cuatro principios superpuestos que incluyen una docena
de métodos / prácticas superpuestas (Kerievsky, 2015a):
Figura 2.3
Diagrama de Principios, Métodos y Prácticas de modernagile
Nota. si bien Modern Agile está libre de cualquier marco de trabajo, no se limita
solo a los principios, sino que recomienda ciertas prácticas y métodos alineados a sus
cuatro principios y promueve el descubrimiento, recopilación e invención de otros de
acuerdo a cada situación. Adaptado de Modern Agile overlapping principles/practices,
de Kerievsky J., 2015, industriallogic.com (https://www.industriallogic.com/img/
blog/modernAgile.png). CC BY-SA 4.0.
Si se quiere crear usuarios increı́bles, se debe definir lo que eso significa. El Char-
tering ágil es una práctica ligera para que las comunidades de productos descubran y
se alineen en torno a una visión clara, misión y resultados comprobables. No es algo
que se hace una vez al comienzo de un proyecto: Chartering es un esfuerzo continuo
(de ahı́ el “ing” en Chartering). Un buen Charter es como una barandilla: impide salirse
de la carretera. Ainsley Nies y Diana Larsen, dos expertas en Charter, describen esta
importante práctica en su libro, Liftoff: Launching Agile Teams & Projects. (Kerievsky,
2015a)
Estrechamente relacionado con Lean StartUp está Lean UX, un enfoque rápido,
económico y basado en análisis para descubrir y producir una usabilidad sobresaliente.
Por ejemplo, la técnica Feature Fake (una de las muchas técnicas de Lean UX) de
Laura Klein, una figura destacada en la comunidad de Lean UX. Se puede obtener más
información sobre Lean UX de Jeff Gothelf y Josh Seiden en Lean UX: Applying Lean
Principles to Improve User Experience y de Laura Klein, UX for Lean Startups: Faster,
Smarter User Experience Research and Design. (Kerievsky, 2015a)
latı́n significa volver a ver (re-videre). Revisamos las cosas a medida que aprendemos
más, descubrimos defectos en nuestro trabajo anterior y nos esforzamos por mejorar el
diseño / legibilidad / simplicidad de nuestro código. Tanto las pruebas como la refac-
torización son esenciales para la velocidad de un equipo y, por lo tanto, son una parte
crı́tica de Modern Agile. Kerievsky (2015a)
(CI por sus siglas en inglés) mucho más allá de lo que los primeros agilistas habı́an
concebido al desplegarse de manera segura en producción muchas veces al dı́a. El dial
de CI habı́a sido girado a 11 (expresa que excede lo conseguido hasta el momento en
CI). El Despliegue Continuo (CD) potencia la experimentación temprana y rápida en
producción (por ejemplo, A/B testing) y le permite entregar de manera rápida y segura
lo que más necesitan los usuarios lo más rápido posible. Es una de las prácticas preferi-
das de influencia lean porque reduce drásticamente el ciclo “Concept to Cash”. Timothy
Fitz fue autor de un curso de eLearning en CD con Industrial Logic y actualmente está
escribiendo un libro sobre esta práctica Modern Agile. Jez Humble y David Farley son
expertos profundos en la práctica y autores de Continuous Delivery: Reliable Software
Releases through Build, Test, and Deployment Automation. (Kerievsky, 2015a)
Los principios de Modern Agile surgen como una “factorización” de las empresas
y organizaciones más exitosas de diversas industrias, busca explicar aquellos principios
comunes que hacen la diferencia en la gestión y logro de resultados.
Figura 2.4
Modern Agile como Analogı́a con una Función Matemática
Nota. De acuerdo a las observaciones de Joshua Kerievsky los resultados de clase mun-
dial en diferentes campos e industrias tienen en común la presencia de los principios
Modern Agile junto a sus propias particularidades. Adaptado de Media Kit, Kerievsky
J., 2015, modernagile.org (https://modernagile.org/img/mediaKit.svg). CC BY-
SA 4.0.
Tabla 2.2
Análisis de la Visión de Jeff Bezos vs. Los Principios Modern Agile
Nota. Inspirada en un análisis similar de una recopilación de las afirmaciones de Jeff Bezos,
que evidencian la presencia de los cuatro principios Modern Agile en Amazon, como parte
de su cultura y visión estratégica. Recuperado de Smart organizations scale principles, de
Kerievsky, 2017, Agile Prague Conference: Agile Prague Conference (https://agileprague.
com/slides/ap2017/modernAgilePrague2017.pdf). derechos de autor 2016 por Kerievsky,
Joshua
Todos los productos y servicios de Amazon son encaminados por esta visión que
los ha llevado a conseguir resultados extraordinarios.
Es la compañı́a que alcanzó $ 100 mil millones de ventas anuales más rápido, y
su servicio de software en la nube Amazon Web Services, alcanzó los $ 10 mil millones
en ventas anuales más rápido que amazon.com (Bezos, 2016).
b Éxito de sus clientes. Industrial Logic ha documentado sus casos de éxito más
representativos citamos algunos de sus clientes:
Ford
Cisco
Nokia
American Airlines
Nielsen
HP
Sciex
GE
Roche
Todos ellos vienen operando a la fecha del estudio y refieren resultados exitosos
de los servicios y herrameientas de Industrial Logic (2022).
Ası́ mismo cabe destacar que las empresas que son entrenadas por Industrial
Logic, también se benefician de practicar los cuatro principios y los métodos propuestos
en sus propios negocios adaptándolos a sus propias realidades.
(a) Principio: Haz que las Personas sean Geniales. Durante sus primeras comunica-
ciones como CEO de Microsoft, Nadella redactó un correo electrónico dirigido a
todos los empleados de la compañı́a donde comenta sobre su visión, “Microsoft es
la empresa que ofrece la plataforma y las herramientas de productividad para el
mundo, que prioriza la movilidad y la nube. Vamos a reinventar la productividad
para capacitar a todas las personas y organizaciones del planeta para que puedan
hacer más y conseguir más” (Nadella, 2017, p. 84).
E + V C + SF = C/t
E: Empatı́a
Otra de las medidas que adoptó la gestión de Nadella para estimular un cambio
hacia una cultura de aprendizaje en Microsoft fue crear una hackatón anual con
el fin de establecer conexiones, aprendizaje y colaboración, y se ha convertido en
una tradición para superar limitaciones y resolver problemas difı́ciles o aprovechar
oportunidades de forma creativa (Nadella, 2017, p. 109, 110).
(d) Principio: Entrega valor continuamente. Cuando (Nadella, 2017, p. 54) buscaba
llegar a acuerdos con las principales empresas tecnológicas para promocionar su
emergente motor de búsqueda, querı́a saber más sobre el modo que diseñaban
sus productos para mantener la frescura. Descubrió que la clave era la “agilidad,
agilidad, agilidad”.
Tenia que imprimir velocidad presteza y prontitud para conseguir que la expe-
riencia del consumidor fuera correcta, no solo una vez, sino cada dı́a. Establecer
constantes objetivos a corto plazo cumplirlos, y escribir código con un ritmo más
moderno y rápido (Nadella, 2017, p. 54).
Estrategı́as de este tipo han sido adoptadas ya desde hace varios años en Micro-
soft y le han permitido construir productos y plataformas de alta demanda con
resultados sobresalientes a nivel global, expresan lo importante que entregar valor
continuamente.
Perú
48
CAPÍTULO III. Diagnóstico Situacional
buenas por ejemplo en el 2017 el mercado de servicios de nube pública en nuestro paı́s
alcanzó US$ 98.7 millones, para el 2020, alcanzará un valor de US$ 273.89 millones,
según International Data Corporation (IDC) (Ochoa, 2019).
Respecto al papel del estado como promotor y facilitador de la innovación y
adopción tecnológica su apoyo es todavı́a incipiente comparado al de la región, donde los
paı́ses vecinos destinan alrededor del 1 % en innovación, el Perú está todavı́a lejos según
refiere el Ministerio de la producción (El Peruano, 2019). Cuyo objetivo es duplicar el
número de proyectos innovación cada año para al 2022 y llegar al 1 % de inversión en
innovación.
En el caso que nos ocupa de las aplicaciones móviles, los sectores que dinami-
zan la demanda por soluciones digitales son principalmente retail, consumo masivo,
finanzas entre otros. El desarrollo de aplicaciones móviles crece a ritmo de 50 % anual
y representará un mercado cercano a los S/ 50 millones el 2019, estimó la consultora
Perú Apps (Cruzado, 2018).
En los dos últimos años el desarrollo de webs y aplicativos en el paı́s ha sido
exponencial, con incrementos entre 200 % y 250 %, estima Diego Dueñas, fundador
de Gózzalo, Pero, la pandemia ha propulsado aún más estos emprendimientos, espe-
cialmente, los vinculados al comercio electrónico como retail, proyectos de tecnologı́a;
servicios logı́sticos (reparto y almacén); asesorı́as contables, consumo masivo, gastrono-
mı́a (delivery), empresas de taxi; marketplaces, pasarelas de pago y al rubro de belleza,
entre los principales. (Salas, 2020)
Para realizar un análisis de la situación del desarrollo y madurez de este sector
podemos hacerlo a través de los resultados del Reporte Global de Competitividad 2019
Schwab (2019), como medición exhaustiva y comparativa de cuán competitiva es una
economı́a de cara a la realidad global, este reporte busca responder a los desafı́os del
cambio tecnológico y la 4o Revolución Industrial, a través de 12 Pilares de la compe-
titividad agrupados en 4 categorı́as: Entorno habilitante, Capital humano, Mercados
y Ecosistema de Innovación. El Centro de Desarrollo Industrial: CDI (2018) hace un
resumen del reporte y resalta que el WEF (El Foro Económico Mundial - The World
Economic Forum, por sus siglas en inglés.) define que una economı́a exitosa en la 4a
Revolución Industrial debe ser ágil, resiliente, centrada en el ser humano e innovadora.
Perú ocupa la posición 65 dos por debajo del año anterior, entre 140 economı́as, el 4o
lugar en América de Sur y 6o en Latinoamérica y el Caribe. La principal fortaleza del
Perú es la Estabilidad Macroeconómica, se mantienen las principales debilidades en
indicadores de los pilares: Instituciones, Infraestructura, Adopción de Tecnologı́as de
la Información y Comunicación y Capacidad de innovación.
Para el análisis en este trabajo extraeremos los indicadores de mayor relevancia
para la tecnologı́a, innovación y productividad.
Figura 3.1
Categorı́as y Pilares del Índice de Competitividad Global
Nota. Estas categorı́as han servido de referencia durante el diagnóstico del presente
trabajo, ya que permiten hacer un estudio comparativo de las economı́as de diferentes
paı́ses incluido el Perú, interesan sobre todo en el estudio, los pilares 1, 3, 6, 7, 10,
11 y 12. Reproducido de The Global Competitiveness Index 4.0 2019, Schwab y World
Economic Forum, 2019, The Global Competitiveness Report 2019 (p. 18).
Figura 3.2
Resumen del Desempeño de Competitividad del Perú
Nota. El detalle de los pilares y su puntuación para el Perú. Reproducido de The Global
Competitiveness Index 4.0 2019, Schwab y World Economic Forum, 2019, The Global
Competitiveness Report 2019 (p. 474).
puesta
Los mismos que vienen a ser las variables independientes, y al mismo tiempo
constituyen los problemas a enfrentar en el presente trabajo, el grado de efectividad en
resolverlos o mitigar sus riesgos evidenciará la efectividad de la metodologı́a.
En ese sentido el Capı́tulo II, permite tener un contexto y visión más amplia de
dos aspectos fundamentales en esta investigación, primeramente, conocer la Agilidad
como repuesta a los grandes problemas del desarrollo de software, seguidamente aborda
los conceptos más importantes de las Aplicaciones Móviles Empresariales.
En consecuencia, continua con una crı́tica a la Agilidad para entender que la
adopción de metodologı́as ágiles tiene ciertos problemas producto de preconceptos,
prejuicios y errores que deben ser evaluados en virtud de los propios valores originales
de la Agilidad.
No obstante, al principio de este capı́tulo se ha establecido que el desarrollo de
aplicaciones móviles empresariales en el Perú en la mayorı́a de los casos requiere mejores
métodos o por los menos referencias y respuestas a fin de elevar la competitividad y
promover la innovación que demanda esta industria.
En ese orden de ideas es evidente que una metodologı́a de desarrollo de aplicacio-
nes móviles empresariales debe ser en primer lugar ágil fundamentalmente desde una
visión crı́tica, a razón de ello el marco teórico aborda Modern Agile ante la necesidad
de una agilidad genuina y constituye la referencia principal de la presente investigación.
caciones
54
CAPÍTULO IV. Propuesta Planteada
Figura 4.1
Metaproceso de la Metodologı́a
Nota. Propone un marco de referencia para definir una metodologı́a basada en Modern
Agile, con sus respectivas fases en el tiempo, partiendo del Inicio, Despegue, Cons-
trucción del MVP, seguida de incrementos continuos, no define un fin de proceso y
establece dos lı́neas de revisión: las priorizaciones sobre el producto en construcción y
las retrospectivas sobre la propia metodologı́a.
4.2.1. Inicio
Como se puede apreciar en la Figura 4.1, se busca establecer un inicio del producto
que permita tener un entendimiento inicial de los problemas a resolver.
En esta etapa se hace uso de la técnica User Story Map, propuesta por Patton
and Economy (2014), su objetivo es generar una descripción común para todos los
involucrados sobre el problema a abordar y su alcance, permite realizar priorizaciones
y otras funciones de mucha utilidad para la metodologı́a propuesta, donde a partir de
una entrevista con los involucrados, se construye un User Story Map con el próposito
de contar con una primera visión general y el posible alcance del proyecto.
Figura 4.2
Inicio para Establecer el Backbone del User Story Map.
4.2.2. Despegue
Figura 4.3
Despegue o Liftoff.
Nota. Consta de talleres que siguen un conjunto de lineamientos, a fin de que el equipo
responsable de la construcción del producto cuente con las herramientas necesarias para
mantenerse enfocado y alineado a sus objetivos durante todo el proceso. Adaptado de
Tree Elements of an Agile Charter, de Larsen and Nies, 2016, Liftoff: Start and Sustain
Successful Agile Teams (p. 42).
Figura 4.4
Split de Requerimientos de Negocio.
Nota. Implica tomar las necesidades del negocio, las que se dividen en historias de
usuario que tengan sentido para los usuarios y les aporten valor, seguidamente estas se
vuelven a dividir en tareas de desarrollo que confirmen unidades mı́nimas fácilmente
implementadas por el equipo de desarrollo que les permitan ser tratadas en un siste-
ma Kanban. Adaptado de A right-sized story from a business perspective is one that
helps a business achieve a business outcome, de Patton and Economy, 2014, User story
mapping: discover the whole story, build the right product (p.139).
Klein (2013).
Figura 4.5
Tratamiento Lean de las Tareas.
de versiones obedece a las decisiones de ı́ndole comercial bajo las demandas del negocio.
Figura 4.6
Tratamiento Kanban de las Tareas de Desarrollo.
Nota. Una vez definidas las tareas de desarrollo éstas ingresan al sistema Kanban, de
acuerdo a los lı́mites del WIP para ello cada una es catalogada en un tipo o nivel
de servicio, pasando por el análisis, desarrollo, pruebas y despliegue, este tratamiento
permite aprovechar de forma óptima los esfuerzos del equipo y los recursos disponibles.
Adaptado de What is a WIP limit?, Kissflow, 2021, (https://kissflow.com/hubfs/
WIP-limits.png). Derechos de autor 2022 por Kissflow Inc.
Por otro lado cada tarea de desarrollo se implementa siguiendo la técnica pro-
puesta por Beck (2003), Desarrollo Dirigido por Pruebas, Test Driven Development o
TDD por sus siglas en inglés, la cual implicada desarrollar primero las pruebas antes de
implementar cualquier funcionalidad invirtiendo completamente el ciclo de desarrollo,
a fin de encontrar un mejor diseño de software con la ventaja adicional de crear una
red de seguridad y control de calidad orgánico, tal como se aprecia en la Figura 4.7. Se
recomienda seguir dos niveles de TDD, uno de interfaz de usuario o aceptación y otro
nivel unitario.
Figura 4.7
TDD de Aceptación o UI y TDD Unitario.
Nota. Para la implementación se adopta la técnica TDD a dos niveles, un primer nivel de
aceptación conocido como pruebas de instrumentación o pruebas de UI donde primero
se implementa una prueba de aceptación fallida sobre una historia de usuario o funcio-
nalidad, y se satisface con pruebas unitarias en el segundo nivel TDD. En ambos casos
se siguen las fases de prueba fallida, pruebas satisfecha y refactorización. Adaptado de
fundamentals of testing, Google Developers, sf, Fundamentals of testing Android apps
| Android Developers [Gráfico] (https://clintpauldev.com/wp-content/uploads/
2021/01/tdd_architecture.png. CC BY 2.5.
Ası́ mismo para la implementación del código fuente es necesario seguir una ar-
quitectura de desarrollo de software, y se ha optado por implementar aquellas que han
sido catalogadas por Martin (2012), como una Arquitectura Limpia (Clean Architec-
ture), a fin de facilitar la construcción de una aplicación testeable, independiente de
frameworks, de la interfaz de usuario, de la base de datos, o de cualquier otro agente
externo.
Una vez implementada cada tarea o subtarea de desarrollo se opta por integrar-
Figura 4.8
Flujo de Desarrollo a través de Pipelines de CI/CD.
Nota. Cada tarea de desarrollo debe seguir un flujo completo desde su codificación
hasta su puesta en producción, empezando por el ambiente local de los desarrolladores,
sigue hacia un repositorio de control de versiones remoto, y cuando se mezcla con el
código de producción en la rama principal, se dispara automáticamente un pipeline de
Integración Continua o CI que ejecuta compilación, pruebas unitarias y de aceptación,
de ser exitosas desencadena un segundo pipeline de Despliegue Continuo o CD que lleva
el ejecutable de la app hasta la tienda de aplicaciones respectiva. Adaptado de What
do CI and CD mean?, Balajee, 2020, What is CI/CD Pipeline?. Derechos de autor por
Medium.
4.2.6. Priorización
4.2.8. Retrospectiva
Ası́ como se tiene una revisión periódica del producto en la Priorización, es nece-
sario contar con una revisión periódica del proceso que pudiera ser por ejemplo bise-
manal o quizás mensual, que consiste en una sesión donde el equipo en una ambiente
de seguridad psicológica llega a un consenso de tres puntos, que estuvo bien, que se
puede mejorar y los próximos pasos concretos a seguir para perfeccionar la metodolo-
gı́a actual, los beneficios de esta práctica son proveer una herramienta sencilla, pero
Para validar la propuesta, se toman las variables del presente trabajo, se establece
un artefacto para cada una de ellas, las mismas nos servirán de herramientas para
monitorear y gestionar constantemente los resultados y el enfoque de la propuesta, se
elabora la siguiente tabla de resumen:
Tabla 4.1
Artefactos de Validez para Variables Independientes
a Empresa
b Usuario
c Patrocinador
3. ¿Actualmente, que tanto comprende los resultados que dará la solución, a los
usuarios?, siendo 1 el menor y 5 el mayor grado.
Tabla 4.2
Artefactos de Validez para Variables Dependientes
a Empresa
b Usuario
c Patrocinador
3. ¿Cuál es el grado de satisfacción que tiene de los resultados que le permite alcanzar
el producto desarrollado?, siendo 1 el menor y 5 el mayor grado de satisfacción.
4. ¿Cuál es el grado de satisfacción que tiene del proceso de desarrollo del producto?,
siendo 1 el menor y 5 el mayor grado de satisfacción
Con el fin de observar los efectos causados por la aplicación de los principios y
métodos Modern Agile en un caso real, el autor ha seleccionado el caso de la aplicación
DondeParqueo que constituye un producto actualmente en desarrollo a cargo de la
empresa SmartWay que es una iniciativa del investigador.
a través de la aplicación.
Esta iniciativa B2C (Business to Consumer), se lleva a cabo aplicando los princi-
pios de Modern Agile teniendo la lista de stakeholders.
4.4.1. Inicio
Figura 4.9
Backbone o Columna Vertebral del Producto.
Nota. A la derecha se ha rotado el mapa por espacio, a la izquierda se divide para mejor
visualización, es un conjunto de tareas que describen el flujo narrativo de un User Story
Map, cuyo objetivo es entender el problema y establecer un alcance deseado por los
usuarios o clientes, esto genera un entendimiento compartido de todos los involucrados
sobre la problemática.
Escuela profesional de Ingenierı́a Informática y de Sistemas 69
4.4. Desarrollo del Producto DondeParqueo
Figura 4.10
Fragmento de Mapa Referente a Inscripción de Usuario.
Figura 4.11
Fragmento de Mapa Referente a Búsqueda de Parqueo.
Nota. El proceso de búsqueda consta de dos tareas, la búsqueda de parqueos por nombre
en caso de que el usuario conozca la dirección o nombre del establecimiento y también
la posibilidad de encontrar un parqueo por la cercanı́a a su ubicación actual.
Actualización de espacios. Se desea que las empresas que ofrecen sus estaciona-
mientos actualicen constantemente la disponibilidad de parqueos. Ya sea liberando u
ocupando espacios.
Figura 4.12
Fragmento de mapa Referente a Actualización de Espacios.
Nota. Constará de dos tareas el primer lugar ser capaz de liberar un espacio disponible
de estacionamiento para nuevos vehı́culos y de otro lado registrar su ocupación.
Figura 4.13
Fragmento de Mapa Referente a Empadronamiento de Empresas.
Nota. Las empresas se deben inscribir para ser parte del proceso del app, tomando en
cuenta las tareas de agregación, eliminación y también actualización.
Figura 4.14
Fragmento de Mapa Referente a la Revisión de Resultados.
Nota. Constará de un conjunto de reportes que los responsables de las empresas podrán
visualizar.
Esta primera aproximación al problema fue elaborada luego de una reunión con
los promotores del producto, donde en forma colaborativa se construyó el mapa de las
imágenes anteriores, y seguidamente como se hará durante todo el proceso se aplican
encuestas de verificación, en esta primera parte el cuestionario CVIndepend.
4.4.2.1. Validación
Tabla 4.3
Checklist Antes de Planificar Liftoff
Pregunta Respuesta
¿El producto tiene un patrocinador Si
comprometido y un gerente de producto
identificado?
¿Puede articular el caso de negocio? Si
¿Alguien ha asignado los fondos y Si
presupuestado para comenzar el
esfuerzo?
¿Tiene una intención clara de lo que Si
quiere que logre el equipo?
Nota. Adaptado de Are You Ready to Plan A Liftoff?, de Larsen and Nies, 2016, Liftoff: Start
and Sustain Successful Agile Teams (pos.183).
Dadas las condiciones se planifican las sesiones y elaboran los artefactos de esta
etapa.
Es importante planificar los detalles de estas sesiones para alcanzar los resultados
esperados y alinear al equipo lo mejor posible, en la planificación se define:
Durante el diseño explicado por Larsen and Nies (2016) se tomaron en cuenta
ciertos puntos, detallados a continuación:
Inicio. Se inicia con una dinámica donde los participantes se presentan en caso
de no conocerse.
Introducción del Patrocinador. Una breve reseña que exprese el apoyo a esta
sesión.
Agradecimientos.
Se deben construir los tres elementos de Agile Chartering, que son propósito,
alineamiento y contexto.
a Propósito
Test de Misión.
Antes del segundo mes probar en campo con una empresa de estacionamien-
to.
Antes del primer semestre contar una solución que conste de un flujo mı́nimo
B2C.
b Alineamiento
Reglas Simples.
Aprende a fallar bien, aprende de tus errores para innovar (Eric Schmidt).
Acuerdos de Trabajo.
c Contexto
Figura 4.16
Diagrama de Lı́mites e Interacciones del Equipo.
Nota. Desde la perspectiva del Equipo (al centro), se muestra la relación con su entorno,
arriba el patrocinador de quien reciben fondos y actualizaciones del caso de negocio
y le entregan reportes de progreso, abajo los grupos de usuarios de quienes reciben
feedback y les entregan demos, versiones del producto y les toman encuestas para medir
resultados.
Acceso a internet,
+1
Perdida de
-3 financiamiento
50% de
No pasará Improbable Probable Ocurrirá
posiblidad
Nota. Donde el eje vertical representa el impacto positivo o negativo, el eje horizontal la
probabilidad de ocurrencia, y en naranja los eventos ubicados en la matriz que permiten
visibilizar el impacto y establecer estrategias adecuadas.
Figura 4.18
Flujo de Trabajo Kanban a Implementar.
Nota. Se establecen los parámetros y recomendaciones Kanban como las colas de pro-
ceso con sus respectivos lı́mites las cuales definen que la capacidad total del sistema en
11 tareas, toda tarea pasa de izquierda a derecha por la cola de entrada, seguidamente
el análisis, desarrollo, compilación, Pruebas y finalmente es liberada en producción.
Los lı́mites del WIP están definidos de acuerdo con la capacidad del equipo de
desarrollo que será de dos desarrolladores por lo tanto formarán un equipo que puede
atender 11 ı́tems teniendo cada etapa del proceso su propia capacidad, del mismo modo
se establecen las clases de servicio:
Figura 4.19
Clases de Servicio.
Nota. En rojo servicios expeditos se puede atender una tarea urgente como máximo,
en morado servicios de fecha de entrega fija con un lı́mite de una tarea, en amarillo
un máximo de 7 tareas estándar, y finalmente en verde se tiene hasta 3 tareas como
servicios intangibles.
Durante una segunda reunión con los interesados se añaden más elementos al
Mapa de historias de usuario como se muestra en la figura.
Figura 4.20
User Story Map para el MVP.
Nota. A la derecha el mapa está rotado por espacio, a la izquierda se divide para
mejorar visualización. Se agregan las historias de usuario de arriba hacia abajo, luego
de determinar el backbone inicial a fin de ampliar el entendimiento del problema, estas
historias permiten cumplir cada una de las tareas del flujo narrativo.
El mapa con seguridad no será definitivo, ya que solo es una propuesta y debe
ser validada. Por lo pronto empezaremos priorizando las siguientes historias de usuario
que serán parte del MVP.
Figura 4.21
Priorización de MVP – Visión Completa.
Nota. A la derecha el mapa está rotado por espacio, a la izquierda un fragmento más
cerca para mejorar visualización. Encerrado en rojo el mı́nimo subconjunto de historias
de usuario que son indispensables para validar la hipótesis del producto, que a su vez
generen valor al usuario final y al negocio, todas las demás historias de usuario se
revisarán más adelante y no son necesarias en este momento.
Figura 4.22
Historias del MVP de Cerca.
Nota. Las actividades seleccionadas para ser parte del MVP son “Búsqueda de par-
queo” en azul, sus tareas de flujo narrativo son “Búsqueda De Parqueo por Cercanı́a”
y “Conocer parqueo”, y abajo sus respectivas historias de usuario “Mostrar Parqueos
Cercanos” ası́ como “Mostrar Detalle de Parqueo” y “Mostrar Ruta a parqueo”.
Tabla 4.4
Historia de Usuario Mostrar Parqueos en Mapa
Como conductor
Quiero Visualizar los estacionamientos más cercanos a una ubicación en el mapa
Para Ver la información de los estacionamientos
Escenario: Buscar a partir de un destino
Dado que ubica en centro del mapa un destino
Cuando el conductor presiona el botón de mostrar estacionamientos
Entonces el sistema agrega marcadores al mapa que representan los
estacionamientos más cercados en un radio de un kilómetro
Tabla 4.5
Historia de Usuario Mostrar Detalle de Parqueo
Como conductor
Quiero Ver información adicional del estacionamiento
Para tener más información en la decisión de qué estacionamiento usar
Escenario: Seleccionar estacionamiento desde el mapa
Dado que el usuario visualiza los estacionamientos en el mapa
Cuando el usuario presiona un marcador de estacionamiento del mapa
Entonces muestra la pantalla con información adicional como la dirección, precio,
horario y el botón de mostrar ruta.
Tabla 4.6
Historia de Usuario Mostrar Ruta a Parqueo
Como conductor
Quiero Ver la ruta óptima para llegar al estacionamiento
Para tener una idea de cómo llegar al estacionamiento
Escenario: Mostrar ruta
Dado que está visualizando el detalle de un estacionamiento
Cuando presiona el botón de mostrar ruta
Entonces el sistema muestra en el mapa la ruta más cercana y óptima desde su
ubicación actual hasta el estacionamiento.
Estas historias de usuario y sus criterios de aceptación son aprobados por los
clientes para iniciar su construcción en el presente trabajo se presentan como tablas
para mejor entendimiento, dado que se hace uso de una herramienta de administración
de proyectos, para su registro y seguimiento.
Ası́ mismo se elabora un flujo básico y un wireframe que permiten mostrar cuál
será la funcionalidad por construir.
Figura 4.23
Diagrama de Flujo Básico MVP DondeParqueo App.
Figura 4.24
Wireframe del MVP para Probar la Hipótesis.
Figura 4.25
Prototipo Mockup del MVP.
Tabla 4.7
Resumen de Dificultades de los Usuarios al Interactuar con el Mockup
Figura 4.26
Diagrama de Flujo Básico MVP, Versión 0.0.2.
Nota. Revisado en segunda iteración para reducir las dificultades de los usuarios durante
la validación temprana, ahora desde el splash (0) se muestran directamente los parqueos
más cercanos (1), para ver su detalle (2) y ruta (3), más abajo desde la pantalla (1) se
puede buscar por dirección (4), ver el detalle (5) y la ruta (3).
Una vez conseguidos los ajustes que se puede apreciar en la Figura 4.26, el flujo
básico se ha simplificado a fin de mostrar directamente los estacionamientos más cer-
canos reduciendo la dificultad de esta funcionalidad. Con ello se actualiza el wireframe
respectivo a continuación.
Figura 4.27
Prototipo Wireframe MVP, Versión 0.0.2.
Una vez disponible el wireframe se inicia una nueva etapa de pruebas con usuarios,
teniéndose el siguiente resultado al aplicar la validación temprana:
Tabla 4.8
Resumen de Dificultades de Usuarios al Interactuar con Prototipo Versión 0.0.2
Ahora que se dispone de una mejor experiencia de usuario UX, se tiene un mayor
conocimiento de sus necesidades, esto ha sido posible gracias a la aplicación de PDD en
favor de la eliminación de desperdicio, reducción de riesgos y costos; en consecuencia
mayor seguridad para el equipo de desarrollo.
Después de contar con el feedback de los usuarios durante la etapa anterior, ahora
se inicia la implementación, esto implica la planificación del WIP en el tablero Kanban.
Figura 4.28
Tablero Kanban Inicial – Backlog.
Tenemos las 3 historias de usuario (Figura 4.28), sin embargo, la forma más efi-
ciente de abordar esta implementación requiere dividir cada historia de usuario en
tareas más pequeñas y predecibles, proceso conocido como split y será a nivel de desa-
rrollo tomándose por ejemplo para la historia de usuario “Mostrar parqueos cercanos”
la opción de dividirls en dos actividades:
Figura 4.29
División de Historias de usuario en Tareas de Implementación.
Nota. A consecuencia del Split se divide la historia de usuario “Mostrar Parqueos” (us1)
en dos tareas de desarrollo “Mostrar parqueos desde mi ubicación” (ac.1.1) y “API de
parqueos cercanos” (ac1.2) para que sean factibles de procesar en la cola de entrada e
ingresar al sistema Kanban.
Con la intención de ilustrar un ejemplo del abordaje de estas tareas tomaremos las
dos primeras que se encuentran pendientes en la cola de entrada, “Mostrar parqueos
URL Ambiente
https://dondeparqueo-mock-api- Testing
26aec.web.app
https://dondeparqueo-dondeparqueo- Producción
backend.34.72.54.109.nip.io
endpoint Parking
Tabla 4.10
Lista de Métodos de la Aplicación
Método Tipo
parking Post
1 {
2 " locationQuery " : {
3 " lat " : " - 1 2 . 0 5 5 2 8 " ,
4 " lon " : " - 7 6 . 9 8 1 6 1 3 3 "
5 },
6 " parkings " : [ ]
7 }
Tabla 4.11
Diccionario de Datos Request Método Parking
1 {
2 " content " : [
3 {
4 " id " : 1 ,
5 " code " : " ChIJo_CowR 7 HBZERBibmeGO - DJo " ,
6 " description " : " Cochera Guadalupe " ,
7 " lat " : " - 1 2 . 0 5 5 2 6 6 6 " ,
8 " lon " : " - 7 6 . 9 8 3 8 4 7 2 " ,
9 " type " : 1 ,
10 " address " : null ,
11 " reference " : " Jiron virgen de Guadalupe Mz . M 2 ,
Cercado de Lima " ,
12 " price " : "" ,
13 " unit " : null ,
14 " phoneNumber " : null
15 }
16 ],
17 " message " : null ,
18 " code " : 0
19 }
Tabla 4.12
Diccionario de Datos Response del Método Parking
Figura 4.30
Arquitectura Limpia del App Móvil.
Nota. Perspectiva de dependencias, Cejas (sf), el sentido de la fecha indica que las
dependencias van desde las capas externas a las internas, las capas más externas en
celeste representan frameworks o bibliotecas especı́ficas, por ejemplo interfaces de
usuario o base de datos, seguidamente en amarillo, adaptadores de interfaz viewModels
en Android, en verde se tiene las reglas de negocio representadas en casos de uso y en
naranja la lógica de dominio que consta de clases de entidades al centro. Reproducido de
Clean Architecture, de Cejas, sf, Android-CleanArchitecture-Kotlin (https://github.
com/android10/Sample-Data/raw/master/Android-CleanArchitecture-Kotlin/
architecture/clean_architecture_reloaded_main.png). derechos de autor 2022
por Cejas, Fernando.
Figura 4.31
Capas de Arquitectura del App Móvil Perspectiva Hexagonal
Figura 4.32
Eje Funcional dentro de Arquitectura Limpia Perspectiva Hexagonal.
Figura 4.33
Eje Funcional dentro de Arquitectura Limpia Perspectiva de Dependencia.
Figura 4.34
Esquema de Split de las Funcionalidades.
Figura 4.35
Estructura de Arquitectura en Proyecto Android de App Móvil.
Nota. Desde un punto de vista del IDE Android Studio se aprecian los paquetes que
son parte del split “Funcionalidad Core”, con las clases y utilidades necesarias para
construir las demás, por ejemplo la gestión de datos (data), inyección de dependen-
cias (di), excepciones, programación funcional, clases base de casos de uso (interac-
tor.implementation), navegación y extensiones de plataforma (platform); a continua-
ción las demás funcionalidades especı́ficas como la “Funcionalidad Búsqueda” con sus
respectivas capas independientes de datos, dominio y presentación, y más abajo la
sección de pruebas, primero las pruebas de aceptación o instrumentación y abajo las
pruebas unitarias.
Figura 4.36
Dos Ciclos del Desarrollo Iterativo Impulsado por TDD.
ción móvil del presente trabajo ilustrados desde la Figura 4.31 a la Figura 4.7, tomando
como referencia las recomendaciones de Beck (2003) y DevTernity (Productor) (2017),
se establece que las pruebas deben incorporarse solo en las interfaces de las capas del
proyecto de software, en ese sentido tendrı́amos el siguiente gráfico para explicarlo:
Figura 4.37
Pruebas Dentro de Arquitectura de App Móvil.
Figura 4.38
Interfaz de Usuario a Probar en ac1.1.
Nota. Muestra la búsqueda de parqueos por cercanı́a, en naranja los marcadores que
representan parqueos y al medio en celeste y negro la ubicación actual del usuario, abajo
a la derecha los botones “E” para mostrar los paqueos cercanos y el botón inferior de
ubicación en el mapa para actualizar la posición del usuario en el mapa.
Figura 4.39
Código Fuente de Test de Aceptación para ac1.1.
Nota. Se puede apreciar dos secciones la primera “Esperar carga de Mapa”, en la cual
se espera que aparezcan en pantalla los botones de búsqueda y ubicación, durante
3000 milisegundos, para seguidamente presionar el botón de búsqueda y esperar los
resultados durante 3000 milisegundos. Finalmente abajo la sección “Mostrar resultados”
donde se verifica que la barra de proceso ya no sea visible lo que implica que los
resultados ya están disponibles en el mapa.
Figura 4.40
Diseño Propuesto durante Implementación bajo TDD, Capa de Presentación.
impedido tener una base de código funcional y completamente testeada y que mantiene
las cualidades que esperamos en una arquitectura limpia.
Continuando con las capas pendientes, se abordará la capa de dominio que es
responsable de la lógica de negocio del sistema, es ası́, que mostramos una imagen para
describir su construcción.
Figura 4.41
Diseño Propuesto durante Implementación bajo TDD, Capa de Dominio.
Nota. La funcionalidad de búsqueda del botón “E” consta de un caso de uso para su
implementación en la capa de dominio, se construye siguiendo TDD a partir de GetClo-
seParkingTest a la derecha cuyo ciclo permite añadir el caso de uso GetCloseParkings
que hace uso de dos interfaces de repositorios LocationRepository y ParkingRepository.
1 @Test
2 fun ‘ Should g et P a r k i n g s c l o s e l o c a t i o n a v a l i a b l e ‘ ( ) {
3 val p a r k i n g s = l i s t O f <Parking >(
4 Parking (
5 1,
6 "c1" ,
7 "Parqueo␣1" ,
8 "1" ,
9 "2" ,
10 "di" , "re" , "1" , "un" , " 45435435 "
11
12 ),
13 Parking (
14 2,
15 "code2" ,
16 "Parqueo␣2" ,
17 "2" ,
18 "2" ,
19 "di" , "re" , "1" , "un" , " 45435435 "
20 )
21 )
22 val locationQuery =
23 LocationQuery (
24 " -12" ,
25 " -77"
26 )
27
28 every {
29 l o c a t i o n R e p o s i t o r y . g et ( )
30 } returns ( locationQuery )
31
32 every {
33 p a r k i n g R e p o s i t o r y . p a r k i n g s ( eq ( l o c a t i o n Q u e r y ) )
34 } r e t u r n s ( E i t h e r . Right ( p a r k i n g s ) )
35
36 runBlockingTest {
37 g e t C l o s e P a r k i n g s . run ( UseCase . None ( ) ) . f o l d (
38
39 fnL = {
40 i t shouldBe n u l l
41 },
42 fnR = {
43 i t ‘ s h o u l d not be ‘ n u l l
44 i t . g et ( 0 ) . i d shouldBe 1
45 i t . g et ( 1 ) . i d shouldBe 2
46 i t . g et ( 0 ) . d e s c r i p t i o n shouldBe "Parqueo␣1"
47 i t . g et ( 1 ) . d e s c r i p t i o n shouldBe "Parqueo␣2"
48 })
49 }
50
51 v e r i f y ( e x a c t l y = 1){
52 p a r k i n g R e p o s i t o r y . p a r k i n g s ( eq ( l o c a t i o n Q u e r y ) )
53 }
54 v e r i f y ( e x a c t l y = 1){
55 l o c a t i o n R e p o s i t o r y . g et ( )
56 }
57 }
Nota. Ubicado en la capa de dominio, el código fuente representa la prueba unitaria para
recuperar parqueos cercanos a una ubicación, como indica el nombre de la función. Primera-
mente se instancia una lista de objetos de la clase Parking que representarán los resultados
que son elementos externos que consume el caso de uso, seguidamente se invoca el método
“run” del caso de uso en GetCloseParkings que se esta probando, cuyo resultado se valida a
través de assets de tal forma que contenga los valores esperados inicialmente, finalmente más
1 c l a s s GetCloseParkings
2
3 @Inject constructor (
4 dispatcherProvider : DispatcherProvider ,
5 private val parkingRepository : ParkingRepository ,
6 private val locationRepository : LocationRepository )
7 : UseCase<L i s t <Parking >, UseCase . None>
8 ( dispatcherProvider ) {
9
10 o v e r r i d e suspend fun run ( params : None ) :
11 E i t h e r <F a i l u r e , L i s t <Parking>> {
12 v a l l o c a t i o n Q u e r y = l o c a t i o n R e p o s i t o r y . g et ( )
13 ? : return E i t h e r . L e f t ( F a i l u r e . L o c a t i o n E r r o r )
14 return p a r k i n g R e p o s i t o r y . p a r k i n g s ( l o c a t i o n Q u e r y )
15 }
16 }
Nota. Representación del código fuente del caso de uso que permite recuperar los parqueos
implementa el método “run”, donde primero recupera la ubicación actual desde locationRe-
pository y a partir de esta busca los parqueos cercanos gracias a la función “parkings” de
parkingRepository. La función “run” devuelve un objeto Either que envuelve dos posibles va-
lores Right (derecho) que serı́a una lista de parqueos o Left (izquierdo) Failure que representa
Una vez concluida la capa de dominio, estarı́a pendiente concluir con la capa de
datos, hasta este punto en la capa de dominio se ha establecido la necesidad de contar
con dos interfaces de acceso a datos LocationRepository y ParkingRepository; para
el ejemplo se mostrará la implementación de se segunda interfaz, tal como se puede
observar en gráfico que sigue.
Figura 4.42
Diseño Propuesto durante Implementación Bajo TDD en la Capa de Datos.
Permite tender una red de pruebas que validan constantemente todo el código
Figura 4.43
Diagrama General de Flujos CI/CD de la Aplicación Móvil.
En tanto que si se presenta algún problema o error en cualquier paso del pipeline,
se detiene el proceso y dicho problema debe ser resuelto a la brevedad.
Ahora revisaremos los pasos o steps que están contenidos en cada pipeline, co-
menzando por el de CI.
Figura 4.44
Diagrama de Pasos del Flujo CI de la Aplicación Móvil.
Nota. De izquierda a derecha los pasos del flujo de CI de la aplicación móvil, primero se
prepara o actualiza el ambiente virtual para compilar apps Android (ensureContainer
o updateContainer ), para luego proceder con la compilación (Build ) sea en modo de-
puración (buildDebug) o modo productivo (buildRelease), pasando luego a las pruebas
unitarias (Test - testDebug) y finalmente las pruebas de aceptación (AcceptanceTest)
en dispositivos virtuales.
El gráfico nos muestra una serie de pasos de color verde lo cual indica que fueron
exitosos mientras que si estuvieran de color rojo presentarı́an algún fallo deteniendo
todo el flujo.
El pipeline consta de cuatro pasos, primero Environment para preparar el am-
biente donde se ejecutarán todos los trabajos, Build, en el cual se compila la aplicación,
seguido de Test donde se corren todas las pruebas unitarias y finalmente Acceptancetest,
que corre pruebas de aceptación en dispositivos virtuales o reales en la nube.
En los siguientes puntos se describen con mayor detalle los trabajos que se ejecu-
tan en cada paso:
Figura 4.45
Diagrama de Pasos de CD de la Aplicación Móvil.
Nota. Se muestran los ambientes por los cuales pasa la aplicación móvil dentro del flujo
de CD, empezando por Internal donde un grupo de usuarios prueba la nueva versión de
la aplicación móvil, seguidamente Alpha donde el grupo de usuarios crece, pasando a
las pruebas Beta donde usuarios invitados pueden ver la última versión y si las pruebas
son exitosas se promueve al ambiente de producción para su disponibilidad al público
en general a través la tienda de aplicaciones Google Play.
En este caso se puede notar que existen cuatro pasos para el despliegue continuo,
luego de los cuales la aplicación móvil es desplegada en la tienda de aplicaciones Google
Play:
Beta, publica la aplicación y la hace visible en la tienda de Google Play solo para
cierto grupo de usuarios.
Al finalizar la atención de las tareas que se han explicado, bajo el flujo de trabajo
Kanban, estas han pasado por las colas de Build Ready, Test, Release Ready y ahora se
encuentran consideradas como Done o terminadas, lo que significa que estan disponibles
para los usuarios finales.
Ası́ mismo se procede a aplicar los instrumentos de medición CVIndepend y
CVDepend a nivel interno.
Cabe mencionar que durante el presente trabajo se han implementado otras tareas
para conseguir la construcción del MVP, en ese sentido lo que se ha buscado es explicar
a forma de ejemplo la aplicación de los métodos y técnicas más importantes de Modern
Agile con el objetivo de completar una tarea especifica.
Es importante destacar que la metodologı́a propuesta busca un enfoque integral
no solamente en la gestión y análisis, sino también detallar aspectos más técnicos,
porque la construcción de productos digitales es un proceso en el que cada etapa tiene
una repercusión en los resultados que se pretenden conseguir.
Estos resultados nos permiten hacer una comparación objetiva, entre el IPDD
durante la validación temprana es decir los dos primeros mockups y el IPDD de la
aplicación en producción, ver Tabla 4.14 a continuación.
Tabla 4.14
Comparación de IPDD Mockups vs. App en Producción
Figura 4.46
Evolución de IPDD para la Funcionalidad de Encontrar Parqueos Cercanos.
Nota. El IPDD comienza con un valor de 4.3 al inicio (1), se reduce a 0 al final de la
“validación temprana” (2) y se confirma dicha reducción cuando se vuelve a medir en
producción (3).
4.4.6. Retrospectiva
Preparar para contar con los implementos necesarios como una pizarra (puede
ser virtual en caso de realizarse de forma remota), post-its y cronómetro.
Predisponer el escenario, de tal forma que todos tengan una actitud abierta y en
confianza para aportar, se ha optado por recordar una frase de Kerth (2013) que
resume lo que se espera promover en los miembros del equipo aquı́ se consigna
una traducción del autor: “Sin importar lo que descubramos, entendemos y verda-
deramente creemos que todos hicieron el mejor trabajo que pudieron, dado lo que
conocı́an en ese momento, sus destrezas y habilidades, los recursos disponibles y
la situación actual”. Ası́ mismo se pide total atención durante la sesión dejando
los equipos computo o teléfonos móviles para evitar distracciones.
¿Qué fue bien?, se hace esta pregunta para que cada miembro en un tiempo de 5
minutos apunte su respuesta de forma puntual, seguidamente mostrar a todos las
notas, durante 5 minutos compartir lo más destacado y 10 minutos para entender
algunos puntos por explicar.
Próximos pasos, finalmente durante los próximos 10 minutos determinar las ac-
ciones, responsables y plazos para concretar lo que se necesita mejorar.
Próximos pasos
Reunión diaria de 5 a 10 minutos de revisión a las 9:00 AM, para absolver dudas
sobre las prácticas y comentarios sobre los cambios a integrar,
puesta
pend
127
5.2. Resultados de Variable Independiente con CVIndepend
El patrocinador de la aplicación,
Los errores son defectos encontrados en las diferentes etapas del proceso, consi-
derando que el presente trabajo abarca hasta la primera iteración del MVP.
Figura 5.1
Gráfica de Comportamiento de Errores en el Tiempo.
Nota. El eje horizontal representa el tiempo en dı́as, el eje vertical representa la cantidad
de errores, como se aprecia los métodos y prácticas aplicados permiten una reducción
temprana de la cantidad de errores desde 5 a los 6 dı́as, a 4 a los 9 dı́as hasta 1 a los
13 dı́as ya en producción.
Figura 5.2
Gráfica Comparativa de Errores vs. Tiempo y Fases del Proceso.
Nota. El eje horizontal representa el tiempo donde se delimitan las etapas desde inicio a
la izquierda hasta validación de iteración a la derecha, el eje vertical indica la cantidad
de errores, las barras en azul son los dı́as transcurridos hasta conseguir el MVP, la lı́nea
en naranja muestra la cantidad de errores. El gráfico expresa el resultado conseguido
al guiarse por los principios Modern Agile que son reducir la cantidad de errores de
forma temprana a media que se construye y validar la aplicación móvil.
En el caso del conocimiento de las necesidades del cliente por parte del propio
cliente y del equipo, se aplicó una encuesta detallada en la Subsección 4.2.9 donde se
mide el ı́ndice de satisfacción de cliente CSAT aplicado a los cinco involucrados en
diferentes momentos del proceso, consta de cinco preguntas, a ser valoradas de 1 a 5:
Tabla 5.2
Preguntas Encuesta CSAT – Conocimiento del Cliente sobre sus Necesidades
Tabla 5.3
Resultados CSAT – Conocimiento de las Necesidades del Cliente por Rol
Para hacer un análisis del comportamiento del ı́ndice CSAT se evidencia su ten-
dencia en las figuras 5.3, 5.4, 5.5 y 5.6, que se muestran a continuación.
Figura 5.3
CSAT de Conocimiento de las Necesidades del Cliente por Fase, Rol Patrocinador.
Nota. Abajo se delimitan las fases del proceso desde inicio hasta implementación del
MVP de izquierda a derecha, en naranja el conocimiento de las necesidades del cliente
en otras experiencias y en azul el conocimiento de las necesidades del cliente por parte
del patrocinador en el caso de estudio, se evidencia un incremento temprano positivo
bajo la presente propuesta.
Figura 5.4
CSAT de Conocimiento de las Necesidades del Cliente por Fase para el Rol Equipo.
Figura 5.5
CSAT de Conocimiento de las Necesidades del Cliente por Fases, Rol Empresa.
Nota. Abajo delimitadas las fases del proceso y los dı́as transcurridos de izquierda a
derecha, para la empresa cuando se trata de otras experiencias el conocimiento de las
necesidades del cliente se mantiene casi constante (en verde), mientras que crece desde
el inicio de forma temprana desde 2 hasta 5 para el caso de estudio (en azul).
Figura 5.6
CSAT de Conocimiento de las Necesidades del Cliente por Fases, Rol Usuario.
Nota. A partir de la validación de UX, se muestran abajo delimitadas las fases y los dı́as
transcurridos de izquierda a derecha, donde se evidencia un comportamiento constante
cuando se trata de otras experiencias (en marrón) a diferencia del caso de estudio que
expresa un crecimiento temprano de 4 a 5 (en azul).
Tabla 5.4
Consolidado de Medición CSAT de Conocimiento de las Necesidades del Cliente
Figura 5.7
Evolución de CSAT de Conocimiento de las Necesidades del Cliente por Fase.
Nota. El eje horizontal representa las fases y dı́as transcurridos desde el inicio hasta
la implementación del MVP, en vertical CSAT del conocimiento de las necesidades del
cliente, la curva en azul hace notar un comportamiento favorable tras la aplicación de
la metodologı́a basada en Modern Agile, partiendo de aproximadamente 2 hasta 5 en
promedio.
Figura 5.8
Evolución de CSAT de Conocimiento de las Necesidades del Cliente por Dı́a.
Nota. El eje horizontal representa los dı́as transcurridos y en el eje vertical se mide
el ı́ndice del conocimiento de las necesidades del cliente en promedio, se aprecia una
incidencia positiva, temprana y favorable durante la aplicación de la metodologı́a pro-
puesta.
1. Sobrecostos
Del mismo modo que con las variables independientes se realizó la medición en
las diferentes etapas del proceso a través de encuestas a los cinco involucrados que son
patrocinador, desarrolladores de software, cliente y usuario.
5.2.3.1. Sobrecostos
Donde:
Tabla 5.5
Resultados de Sobrecostos por Dı́a
Figura 5.9
Gráfica de Relación Cantidad de Errores y Sobrecostos.
Con la Figura 5.9 se explica la relación directa que existe entre la cantidad de
errores y los sobre costos, por tanto, reducir los errores reduce directamente los sobre-
costos.
En este caso se han tomado encuestas a los involucrados en las etapas del pro-
ceso de desarrollo midiendo el CSAT respecto en primer lugar al producto como tal y
también al proceso de desarrollo con una valoración de 1 a 5.
Tabla 5.6
Resumen de Preguntas CSAT del Producto, CVDepend
Tabla 5.7
Resultados de CSAT CVDepend por Dı́a, Fase y Rol
Figura 5.10
Gráfico de Barras del Comportamiento CSAT CVDepend por Dı́a, Rol y Fase.
Nota. Abajo las fases delimitadas por dı́as transcurridos, mientras que el eje vertical
representa el CSAT de la variable dependiente, las barras representan los roles involu-
crados, en azul el patrocinador, en gris el equipo de desarrollo en celeste la empresa y en
azul los usuarios de la aplicación. Se expresa una incidencia positiva tras la aplicación
de la metodologı́a propuesta desde las primeras etapas.
Tabla 5.8
Resultados CSAT CVDepend Consolidados por Pregunta y Fase.
La satisfacción del producto crece con el tiempo incluso al tratarse de fases tem-
pranas del proceso de desarrollo, y del mismo modo los involucrados ya pueden obtener
resultados a través de la solución lo cual permite recopilar el feedback respectivo te-
niendo la capacidad de validar el conocimiento adquirido y saber si se debe mantener
la propuesta o realizar ajustes y/o cambios.
De otro lado el proceso va siendo mejor comprendido en relación con el tiempo
incidiendo en su valoración por parte de los involucrados cuando se evalúa el grado de
influencia de la metodologı́a sobre el producto final.
Con la finalidad de observar y proponer una relación entre las variables indepen-
dientes y dependientes como consecuencia de la aplicación de los métodos y prácticas
guiadas por los principios Modern Agile, se resumen los hallazgos en la Tabla 5.9.
Tabla 5.9
Relación Propuesta CSAT de CVIndpend vs. CSAT de CVDepend
Figura 5.11
Relación Propuesta CVIndepend vs. CVDepend.
Nota. La gráfica muestra en el eje horizontal el CSAT del conocimiento de las nece-
sidades del cliente y en el eje vertical CSAT del producto, la curva en azul expresa
una relación positiva entre ambas variables como consecuencia de poner en práctica
las recomendaciones de la metodologı́a propuesta, maximizando la satisfacción de los
involucrados durante todo el proceso.
6.1. Ventajas
Para sustentar este punto se parte de la definición del MVP en función del negocio
y en colaboración con los involucrados (Subsección 4.4.4 y Figura 4.21).
146
CAPÍTULO VI. Evaluación de la Propuesta
Es ası́ que el presente trabajo versa justamente sobre el proceso del autor para
encontrar una metodologı́a que le sirva en el contexto especı́fico de su caso de
estudio, y esto sea un modelo o referencia para otros esfuerzos similares tal como
se busca en el objetivo general (Subsección 1.4.1).
Dentro de Modern Agile esta implı́cito considerar en todas las prácticas y méto-
dos un pensamiento lean, donde se busca eliminar todo desperdicio en el diseño
y construcción del producto digital, véase Subsección 4.4.4, Subsección 4.2.3 y
Figura 4.6.
Dirige los esfuerzos del equipo para generar el mayor impacto posible con la
menor cantidad de recursos disponibles, maximizando el valor entregado a los
usuarios e involucrados.
6.2. Requisitos
hacer un cambio de mentalidad hacia lo que se conoce como Agile Mindset, expuesto
detalladamente por Denning (2019) en su artı́culo publicado en Forbes.
Partiendo de aceptar que la tendencia de los equipos es mantener la forma tradi-
cional, intuitiva o “convencional” de llevar a cabo la construcción de productos digitales.
Ası́ mismo que las opiniones y puntos de vista del equipo o responsables de la implemen-
tación son limitadas y tendrán dificultades para estar en sintonı́a con las necesidades
reales de los usuarios.
Seguidamente llegar a entender que la razón de ser un producto digital debe
ser, mejorar la vida de sus usuarios de forma concreta. Es cuando cobra relevancia la
propuesta de Modern Agile que permite conseguirlo partiendo de un enfoque cientı́fico.
Una vez asumidas estas premisas, es crucial tener conciencia que la disciplina es
indispensable para que los resultados sean sostenibles en el tiempo, los cuales deben
ser medidos, evaluarlos y perfeccionados continuamente.
Se debe indicar primeramente que al tratarse de una metodologı́a sus costos varı́an
según las herramientas y la forma de aplicación especifica en cada caso, sin embargo,
para el ejemplo del presente trabajo, se especifican las herramientas usadas.
Tabla 6.1
Costos de Licencias Usadas en Propuesta
6.4. Beneficios
Los beneficios más importantes están relacionados con los resultados obtenidos
durante la medición de las variables dependientes e independientes.
Mejora en la compresión de las necesidades del cliente, por parte de los invo-
lucrados.
153
6.4. Beneficios
155
6.4. Beneficios
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M.,
Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin,
R. C., Mellor, S., Schwaber, K., Sutherland, J., and Thomas, D. (2001). Manifesto
for agile software development.
157
BIBLIOGRAFÍA
DevTernity (Productor) (2017). Devternity 2017: Ian cooper - TDD, where did it all
go wrong [video]. https://www.youtube.com/watch?v=EZ05e7EMOLM.
Duhigg, C. (2016). Smarter faster better: The secrets of being productive. Random
House.
Española, R. A. and Madrid, E. (2001). metodologı́a, volume 22. Real academia espa-
ñola Madrid.
Grech, S. (2014). Onion architecture, NTier, IOC, blog, incredible web, web develop-
ment. https://www.incredible-web.com/blog/the-onion-architecture/.
Kerievsky, J. (2018). YOW! 2017 joshua kerievsky - modern agile #YOW [video].
https://www.youtube.com/watch?v=CKu8vjnlaCk&t=810s.
Klein, L. (2013). UX for lean startups: Faster, smarter user experience research and
design. .O’Reilly Media, Inc.”.
Larsen, D. and Nies, A. (2011). Liftoff: Launching Agile Teams & Projects. Onyx Neon
Press, Hillsboro, OR.
Larsen, D. and Nies, A. (2016). Liftoff: Start and Sustain Successful Agile Teams.
Pragmatic Bookshelf.
Patton, J. and Economy, P. (2014). User story mapping: discover the whole story, build
the right product. .O’Reilly Media, Inc.”.
Ries, E. (2011). The lean startup: How today’s entrepreneurs use continuous innovation
to create radically successful businesses. Currency.
Slesar, M. (s.f.). How to choose the right tech stack for a mobi-
le application - part i. https://alternative-spaces.com/blog/
how-to-choose-the-right-tech-stack-for-a-mobile-application-part-i/.
A/B testing También conocido como split testing, se refiere a un proceso de experi-
mentación aleatorio en el que dos o más versiones de una variable (página web,
elemento de página, etc.) se muestran a diferentes segmentos de visitantes del si-
tio web al mismo tiempo para determinar qué versión deja el máximo impacto. e
impulsa las métricas comerciales. Traducido de https://vwo.com/ab-testing/
40, 64
anzeneer Una nueva palabra derivada de anzen (que significa seguridad en japonés) e
ingenierı́a. Traducido de https://www.industriallogic.com/blog/anzeneering/
38
asset Se traduce com aserciones, y son mayormente para la validación de los casos de
pruebas. 115
backend Parte de un sistema informático, pieza de software, etc., donde los datos se
almacenan o procesan en lugar de las partes que el usuario ve y usa directamen-
te. Traducido de https://dictionary.cambridge.org/dictionary/english/
back-end xi, xii, 40, 76, 96, 116, 117, 199, 200, 210, 215, 218, 220, 221
164
Glosario de Términos
burn-up chart Gráfico que roporciona una representación visual del trabajo comple-
tado de un sprint en comparación con su alcance total. Ofrece información sobre
el progreso de un proyecto, ası́ como también ofrece advertencias para ayudar a
mantener la salud de un proyecto; puede identificar instantáneamente problemas
como la desviación del alcance o una desviación de la ruta planificada del pro-
yecto. Traducido de https://support.atlassian.com/jira-software-cloud/
docs/view-and-understand-the-burnup-chart/ 39
commit Comando git que captura una instantánea de los cambios realizados actual-
mente en el proyecto. Las instantáneas comprometidas se pueden considerar co-
mo versiones “seguras” de un proyecto: Git nunca las cambiará a menos que
se lo solicite explı́citamente. Traducido de https://www.atlassian.com/git/
tutorials/saving-changes/git-commit 118
Design Thinking Ün enfoque para el desarrollo de software que enfatiza las habilidades
de codificación de los desarrolladores de software. Traducido de https://www.
interaction-design.org/literature/topics/design-thinking 41
endpoint Extremo de un canal de comunicación. Cuando una API interactúa con otro
sistema, los puntos de contacto de esta comunicación se consideran endpoints
(puntos finales). Para las API, un endpoint puede incluir una URL de un servidor
o servicio. Cada uno es la ubicación desde la cual las API pueden acceder a
los recursos que necesitan para llevar a cabo su función. Traducido de https:
//smartbear.com/learn/performance-monitoring/api-endpoints/ xii, 96
feature branch flujo de desarrollo en Git donde caracterı́sticas debe tener lugar en
una rama dedicada en lugar de la rama principal. Traducido de https://www.
atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
118
fullstack Un desarrollador web de pila completa es una persona que puede desarrollar
software de cliente y de servidor. Traducido de https://www.w3schools.com/
whatis/whatis_fullstack.asp 76
historia de usuario Las historias de usuario son fragmentos del comportamiento de-
seado de un sistema de software. Se utilizan ampliamente en enfoques de soft-
ware ágiles para dividir una gran cantidad de funcionalidad en piezas más pe-
queñas con fines de planificación. También escucha el mismo concepto referi-
do a una caracterı́stica, pero el término ”historia” o ”historia de usuario” se ha
vuelto predominante en los cı́rculos ágiles en estos dı́as. Traducido de https:
//martinfowler.com/bliki/UserStory.html xv, 2, 18, 22, 62, 94, 95, 99
intraemprendedor Persona que forma parte de una empresa y cuya función princi-
pal es la generación de ideas, propuestas e iniciativas concretas dentro de es-
ta organización. Fuente https://cincodias.elpais.com/cincodias/2015/04/
25/emprendedores/1429965899_681473.html 41
lean (De organizaciones, etc.) fuertes y eficientes porque evitan desperdicios en sus pro-
cesos y no tienen más empleados de los necesarios. Traducido de https://www.
oxfordlearnersdictionaries.com/definition/english/lean_2 xiv, 3, 24, 35,
36, 40, 59, 106, 148
Lean StartUp Método que enseña cómo impulsar una startup: cómo dirigir, cuándo
girar y cuándo perseverar, y hacer crecer un negocio con la máxima aceleración.
Traducido de http://theleanstartup.com/principles 35, 36, 39, 41, 58, 59,
64, 74, 81, 89, 146, 147
main En Git, es una convención de nomenclatura para una rama. Después de clonar
(descargar) un proyecto desde un servidor remoto, el repositorio local resultante
tiene una única rama local: la llamada rama “master”. Esto significa que “master”
puede verse como la rama “predeterminada” de un repositorio. 118
merge Permite tomar las lı́neas de desarrollo independientes creadas por git branch e
integrarlas en una sola rama. Traducido de https://www.atlassian.com/git/
tutorials/using-branches/git-merge 118
release Permitir que algo se muestre en público o esté disponible para su uso. Traducido
de https://dictionary.cambridge.org/dictionary/english/release 120
response Una vez que el servidor ha recibido y procesado la solicitud, éste debe devolver
un mensaje de respuesta HTTP hacia el cliente. Fuente https://sites.google.
com/site/conceptoprogramacion/request-response xii, xviii, 98, 99
Software Craftsmanship Un enfoque para el desarrollo de software que enfatiza las ha-
bilidades de codificación de los desarrolladores de software. Traducido de https:
//en.wikipedia.org/wiki/Software_craftsmanship 41
splash Pantalla inicial, usada para presentar una app o tambión para ayuda al usuario
a esperar al carga de recursos iniciales de la aplicación. 88, 89, 92, 93
split Dividir en dos o más partes, especialmente a lo largo de una lı́nea en particu-
lar. Traducido de https://dictionary.cambridge.org/dictionary/english/
split xiv, xv, 58, 95, 103–105, 107, 117, 118, 128, 132, 137, 142, 144, 147
User Story Map Ordenación las historias de los usuarios a lo largo de dos dimensiones
independientes. El “mapa” organiza las actividades del usuario a lo largo del eje
horizontal aproximadamente en el orden en que el usuario realizarı́a la tarea.
Abajo en el eje vertical, las historias de usuario están ordenadas por prioridad
y/o sofisticación creciente de la implementación. Dado un mapa de la historia
ası́ dispuesto, la primera fila horizontal representa un “esqueleto andante”, una
versión básica pero utilizable del producto. Trabajar a través de filas sucesivas
desarrolla el producto con funcionalidad adicional. Traducido de https://www.
agilealliance.org/glossary/storymap xiv, xv, 55–57, 68, 69, 81, 82, 146, 147,
151
y priorizar las funciones, y cómo pretenden que los usuarios interactúen con su
producto o sitio web.Traducido de https://www.productplan.com/glossary/
wireframe/ xv, 64, 87–89, 92, 93, 151
173
A.1. Historia de la Agilidad
Figura A.1
Manifiesto por el Desarrollo Ágil de Software 2001.
Nota. Recuperado de Manifesto for Agile Software Development, de Beck et al., 2001,
Manifesto for Agile Software Development (https://agilemanifesto.org/iso/es/
manifesto.html). derechos de autor 2001 por Ward Cunningham
En última instancia, Agile es una mentalidad informada por los valores conte-
nidos en el Manifiesto Agile y los 12 principios detrás del Manifiesto Agile. Esos
valores y principios brindan orientación sobre cómo crear, responder al cambio
y cómo lidiar con la incertidumbre. Se podrı́a decir que la primera oración del
Manifiesto Ágil resume toda la idea: “Estamos descubriendo mejores formas de
desarrollar software al hacerlo y ayudar a otros a hacerlo”.
Cuando se enfrenta la incertidumbre, intentar algo que crea que podrı́a
funcionar, obtener retroalimentación y realizar los ajustes necesarios.
Tener en cuenta los valores y principios cuando se haga esto. Dejar que
el contexto guı́e los marcos, prácticas y técnicas para colaborar con el equipo y
ofrecer valor. (Agile Alliance, 2015a)
Para una explicación de los conceptos más importantes de XP, el autor hace una
traducción del contenido del sitio web extremeprogramming.org de Wells.
organización.
Este diagrama de flujo muestra cómo las reglas de programación extrema
trabajan juntas. Los clientes disfrutan de ser socios en el proceso del software,
los desarrolladores contribuyen activamente sin importar el nivel de experiencia
y los gerentes se concentran en la comunicación y las relaciones. Las actividades
improductivas se han recortado para reducir los costos y la frustración de todos
los involucrados. (Wells, 2013)
A.2.1.1. Planificación
A.2.1.2. Gestión
A.2.1.3. Codificación
Propiedad colectiva
A.2.1.4. Diseño
Simplicidad
Solución Espiga, Programas muy simples para explorar posibles soluciones y re-
ducir el riesgo.
A.2.1.5. Pruebas
Pruebas unitarias Todo el código debe pasar todas las pruebas unitarias antes de
que pueda ser liberado
A.2.2. Valores de XP
es realmente un conjunto de reglas, sino una forma de trabajar en armonı́a con los
valores personales y corporativos. Comenzar con los valores de XP enumerados aquı́,
luego agregar los propios reflejándose en los cambios que se realice en las reglas, de
acuerdo con lo que postula Wells (1999b).
A.2.2.1. Simplicidad
Hacer lo que sea necesario y pedido, pero no más. Esto maximizará el valor
creado para la inversión realizada hasta la fecha. Dar pequeños pasos simples a la meta
y mitigar las fallas a medida que ocurran. Crear algo de lo que se esté orgulloso y
mantenerlo a largo plazo por costos razonables. (Wells, 1999b)
A.2.2.2. Comunicación
Como explica Wells (1999b), todos son parte del equipo y se comunican cara a
cara todos los dı́as. Trabajar juntos en todo, desde los requisitos hasta el código. Crear
la mejor solución para el problema que se pueda juntos.
A.2.2.3. Retroalimentación
A.2.2.4. Respeto
Todos dan y sienten el respeto que merecen como un miembro valioso del equipo.
Todos aportan valor incluso si es simplemente entusiasmo. Los desarrolladores respetan
la experiencia de los clientes y viceversa. La gerencia respeta el derecho de aceptar
responsabilidad del equipo y recibir autoridad sobre el propio trabajo. (Wells, 1999b)
A.2.2.5. Coraje
A.3. Scrum
A fin de profundizar en los conceptos de Scrum con mayor detalle y citar fuentes
de primera mano, se incorpora en esta sección fragmentos de la guı́a de Scrum, Schwaber
and Sutherland (2017), es decir los creadores de Scrum.
A.3.1. Pilares
Scrum está soportado por tres pilares (Schwaber and Sutherland, 2017).
A.3.1.1. Transparencia
Los aspectos significativos del proceso deben ser visible por todos los involucrados
de acuerdo a Schwaber and Sutherland (2017).
A.3.1.2. Inspección
Con el fin de evitar variaciones indeseadas los usuarios de Scrum deben inspec-
cionar frecuente y diligentemente los artefactos y el progreso hacia un objetivo, con la
suficiente frecuencia como para no interferir en el trabajo. (Schwaber and Sutherland,
2017)
A.3.1.3. Adaptación
A.3.2. Valores
Del tal modo que Scrum promueve para su éxito la adopción de valores que son
compromiso, coraje, foco, apertura y respecto (Schwaber and Sutherland, 2017).
Ordenar los elementos en la Lista del Producto para alcanzar los objetivos
y misiones de la mejor manera posible;
Es una única persona cuyas decisiones deben ser respetadas, para realizar
cambios se debe hacer a través de su gestión y no puede ser reemplazado por
un comité. (Schwaber and Sutherland, 2017)
Los Equipos de Desarrollo son multifuncionales, esto es, como equipo cuen-
tan con todas las habilidades necesarias para crear un Incremento de pro-
ducto;
Para la organización:
Todos los eventos son bloques de tiempo (time-boxes), de tal modo que todos
tienen una duración máxima. Una vez que comienza un Sprint, su duración es fija y
no puede acortarse o alargarse. Los demás eventos pueden terminar siempre que se
alcance el objetivo del evento, La falta de alguno de estos eventos da como resultado
una reducción de la transparencia y constituye una oportunidad perdida de inspección
y adaptación. (Schwaber and Sutherland, 2017)
A.3.4.1. Sprint
Reunión para planificar el trabajo a realizar durante el Sprint, tiene una duración
de máximo ocho horas para un Sprint de un mes, responde las preguntas, ¿Qué
puede entregarse en el Incremento resultante del Sprint que comienza? Y ¿Cómo
se conseguirá hacer el trabajo necesario para entregar el Incremento?
La entrada a esta reunión está constituida por la Lista de Producto, el úl-
timo Incremento de producto, la capacidad proyectada del Equipo de Desarrollo
para el Sprint y el rendimiento pasado del Equipo de Desarrollo. El número de
elementos de la Lista de Producto seleccionados para el Sprint depende única-
mente del Equipo de Desarrollo. Solo el Equipo de Desarrollo puede evaluar qué
es capaz de lograr durante el Sprint que comienza.
Durante la Planificación del Sprint, el Equipo Scrum también define un
Objetivo del Sprint (Sprint Goal). El Objetivo del Sprint deberı́a lograrse duran-
te el Sprint a través de la implementación de la Lista de Producto y proporciona
Identificar y ordenar los elementos más importantes que salieron bien y las
posibles mejoras; y,
A.4. Kanban
En este caso se usa un sistema kanban virtual para limitar el trabajo en progreso.
Aunque “kanban” significa “tarjeta de señal”, y hay tarjetas en la mayorı́a de las im-
plementaciones en desarrollo de software, estas tarjetas no hacen realmente la función
de tarjetas de señal para jalar más trabajo. En lugar de eso, ellas representan ı́tems de
trabajo. Por lo tanto, el término “virtual”, porque no son tarjetas de señales fı́sicas. La
señal para jalar nuevo trabajo es inferida de la cantidad visual de trabajo en progreso
sustraı́da de algún indicador del lı́mite (o capacidad). Algunas personas han imple-
mentado kanban fı́sicos usando técnicas comotarjetasas adhesivas o ranuras fı́sicas en
un tablero. La mayorı́a de las señales es generada por un software de seguimiento de
trabajo. Sin embargo, si no hay un lı́mite explı́cito del trabajo en progreso y no hay
señalización para jalar nuevo trabajo a través del sistema, no es un sistema kanban.
(Anderson, 2010)
La razón para usar un sistema kanban, para Anderson (2010), es limitar el trabajo
en progreso de un equipo a una capacidad establecida y balancear la demanda sobre
del equipo contra el rendimiento de su trabajo liberado, haciendo que puedan alcanzar
una paz sostenible.
El método Kanban propone una serie de pasos para transformar de forma gradual
a un equipo de desarrollo de software y llevarlo al éxito (Anderson, 2010).
A través de:
Inspección de código.
(Anderson, 2010)
A.4.2.2. (2) Reducir Trabajo en Progreso (WIP, Work-in progress) y (3) Entregar
frecuentemente
Si los tres primeros pasos fueron implementados, código de alta calidad está
llegando frecuentemente, los tiempos de entrega deben ser relativamente cortos,
a medida que el trabajo en progreso es limitado. Nuevo trabajo debe ser jalado
para su desarrollo a medida que la capacidad es liberada al completarse trabajo
existente. En este punto la atención puede girar optimizar el valor entregado
más que meramente la cantidad de código entregado. Existe un detalle en poner
atención a la priorización cuando no existe predictibilidad en la entrega, ¿Por qué
desperdiciar esfuerzo tratando de ordenar la entrada cuando no hay confiabilidad
en el orden de entrega?, hasta que no se corrija esto, el tiempo de gestión es mejor
usado en enfocarse en mejorar ambos la habilidad de entregar y la predictibilidad
de entrega. Se debe pasar a ordenar la prioridad una vez que se conozca que se
puede en realidad entregar cosas en aproximadamente el orden en que fueron
requeridas.
La priorización no debe ser controlada por la organización de ingenierı́a,
si no por el dueño del producto, patrocinador del negocio, departamento de
marketing o similares, para cambiar su comportamiento, a lo mejor, la adminis-
tración de ingenierı́a solo puede buscar influir en cómo se hace la priorización.
Para ello se requiere un nivel de confianza que solo se puede conseguir con la
aplicación de los pasos anteriores. Considerando que el fin principal es entregar
valor al negocio en lugar de ser veloces en el desarrollo de software, llegar a
ello requiere un grado de madurez y un proceso gradual que parte de ir paso a
paso construyendo primero las habilidades básicas antes de los grandes desafı́os.
(Anderson, 2010)
Figura A.3
Diagrama de Construcción de Madurez Kanban.
Ambos, los efectos de la variabilidad y como reducirla dentro del proceso son
temas avanzados, se requiere que los trabajadores de conocimiento cambien la
forma en que trabajan para aprender nuevas técnicas y cambien su comporta-
miento personal, constituye un nivel de madurez mayor en la organización. La
variabilidad resulta en más trabajo en progreso y alarga los tiempos de entre-
ga, crea una mayor necesidad de holgura en los recursos que no constituyen un
cuello de botella con el fin de hacer frente al reflujo y flujo de trabajo ya que
sus efectos se manifiestan en el flujo de trabajo a través de la cadena de valor.
La variabilidad en el tamaño de los requerimientos y la cantidad de esfuerzo
Una aplicación móvil, más comúnmente conocida como app, es segun (techopedia,
2020) un tipo de software de aplicación diseñado para ejecutarse en un dispositivo
móvil, como un teléfono inteligente o una tableta. Las Apps con frecuencia sirven
para proporcionar a los usuarios servicios similares a los que se accede en las PC. Las
aplicaciones son generalmente pequeñas unidades de software individuales con funciones
limitadas. Este uso del software de la aplicación fue originalmente popularizado por
Apple Inc. y su App Store, que ofrece miles de aplicaciones para iPhone, iPad y iPod
Touch.
Una aplicación móvil también puede conocerse como app, web app, app en lı́nea,
app para iPhone o app para teléfonos inteligentes (techopedia, 2020).
Las apps móviles empresariales y en general las apps son desarrolladas bajo una
arquitectura cliente/servidor, porque actualmente es casi imposible concebir una apli-
cación sobre todo de negocio que no requiera interactuar con servicios y/o sistemas
externos, para maximizar sus funcionalidades y aprovechas la capacidad de cómputo y
almacenamiento del lado del servidor, es ası́ como Goedvolk (1995) desarrolla los tipos
de arquitectura de acuerdo con sus capacidades.
Figura A.4
Cinco tipos Diferentes de Arquitectura Cliente / Servidor.
Para este tipo de cliente/servidor los DBMS deben ser compatibles con una base
de datos distribuida.
De todas estos tipos de arquitecturas explicadas por Goedvolk (1995), la más con-
veniente para las aplicaciones móviles en general es de la Lógica de aplicación distribuida
donde ciertas funcionalidades se distribuyen en la aplicación cliente de forma local y
otras requieren la interacción de un servidor de aplicaciones que hoy en dı́a se conoce
como backend estos conceptos se mantienen vigentes, solamente se han modernizado
los conceptos y tecnologı́as pertinentes tanto el lado cliente y servidor.
De acuerdo con la experiencia del autor, cuando se abordan proyectos de apps em-
presariales, se asume que el alcance contiene tanto el frontend y backend entendiéndose
por frontend a la app propiamente como componente que se ejecuta en algún disposi-
tivo móvil (o navegador web en muchos casos) y el backend la toda la infraestructura
remota de servicios en el lado servidor aquı́ podemos hablar a servidores web, servicios
en la nube, servicios serverless, etc., presentándose algunos escenarios:
El alcance del proyecto incluye todo el backend incluso aplicaciones web de gestión
Aunque todas estas arquitecturas varı́an algo en sus detalles, son muy
Figura A.5
Diagrama Resumen de Clean Architecture.
apuntar hacia adentro. Nada en un cı́rculo interno puede saber nada acerca de
algo en un cı́rculo externo. En particular, el nombre de algo declarado en un
cı́rculo externo no debe mencionarse en el código del cı́rculo interno. Eso incluye,
funciones, clases. Variables, o cualquier otra entidad de software nombrada.
Del mismo modo, los formatos de datos utilizados en un cı́rculo externo
no deberı́an ser utilizados por un cı́rculo interno, especialmente si esos formatos
son generados por un framework en un cı́rculo externo. No queremos que nada
en un cı́rculo externo afecte a los cı́rculos internos. (Martin, 2012)
Las entidades encapsulan las reglas comerciales de toda la empresa. Una entidad
puede ser un objeto con métodos, o puede ser un conjunto de estructuras y
funciones de datos. No importa mientras las entidades puedan ser utilizadas por
muchas aplicaciones diferentes en la empresa.
Si no tiene una empresa y solo está escribiendo una sola aplicación, estas
entidades son los objetos comerciales de la aplicación. Encapsulan las reglas más
generales y de alto nivel. Son los menos propensos a cambiar cuando algo externo
cambia. Por ejemplo, no esperarı́a que estos objetos se vean afectados por un
cambio en la navegación de la página o la seguridad. Ningún cambio operativo
en una aplicación particular deberı́a afectar la capa de entidad. (Martin, 2012)
poco esperamos que esta capa se vea afectada por cambios en las externalidades,
como la base de datos, la interfaz de usuario o cualquiera de los marcos comunes.
Esta capa está aislada de tales intereses.
Sin embargo, esperamos que los cambios en el funcionamiento de la apli-
cación afecten los casos de uso y, por lo tanto, el software de esta capa. Si los
detalles de un caso de uso cambian, entonces cierto código en esta capa cierta-
mente se verá afectado. (Martin, 2012)
No, los cı́rculos son esquemáticos. Es posible que necesite más que solo estos
cuatro. No hay una regla que diga que siempre debes tener solo estos cuatro. Sin
embargo, la regla de dependencia siempre se aplica. Las dependencias del código fuente
siempre apuntan hacia adentro. A medida que avanza, aumenta el nivel de abstracción.
El cı́rculo más externo es un detalle concreto de bajo nivel. A medida que avanza, el
software se vuelve más abstracto y encapsula polı́ticas de nivel superior. El cı́rculo más
interno es el más general. (Martin, 2012)
Tı́picamente, los datos que cruzan los lı́mites son estructuras de datos simples.
Puede usar estructuras básicas u objetos simples de transferencia de datos si lo
desea. O los datos pueden ser simplemente argumentos en llamadas a funciones.
O puede empaquetarlo en un hashmap, o construirlo en un objeto. Lo importante
es que las estructuras de datos simples y aisladas se pasan a través de los lı́mites.
No queremos engañar y pasar Entidades o filas de la Base de datos. No queremos
que las estructuras de datos tengan ningún tipo de dependencia que viole la
Regla de dependencia.
Por ejemplo, muchos frameworks de bases de datos devuelven un formato
de datos conveniente en respuesta a una consulta. Podrı́amos llamar a esto un
RowStructure. No queremos pasar esa estructura de fila hacia adentro a través
de un lı́mite. Eso vioları́a la Regla de dependencia porque forzarı́a a un cı́rculo
Figura A.6
Hexagonal Architecture.
Nota. Define claramente un núcleo de lógica de negocio que se debe mantener in-
dependientes de los demás componentes y es accesible a través de puertos en ro-
jo, que puede ser conectados con adaptadores externos en azul. Reproducido de An
overview of Ports-And-Adapters, de Bergen, sfb, Ports and Adapters, Hexagonal Ar-
chitecture [Gráfico] (https://www.dossier-andreas.net/software_architecture/
ports-and-adapters.png). derechos de autor s.f. por Bergen, P.
Bergen (sfa) propone que son la API principal de la aplicación. Son llamados por
los adaptadores principales que forman el lado del usuario de la aplicación. Ejemplos de
puertos primarios son funciones que le permiten cambiar objetos, atributos y relaciones
en la lógica central.
Son las interfaces para los adaptadores secundarios. Son llamados por la lógica
central. Un ejemplo de un puerto secundario es una interfaz para almacenar objetos
individuales. Esta interfaz simplemente especifica que se cree, recupere, actualice y
elimine un objeto. No le dice nada sobre la forma en que se almacena el objeto. (Bergen,
sfa)
Un adaptador es un puente entre la aplicación y el servicio que necesita la apli-
cación. Se adapta a un puerto especı́fico (Bergen, sfa).
Es una pieza de código entre el usuario y la lógica central, tai como explica
Bergen (sfa). Un adaptador podrı́a ser una función de prueba unitaria para la lógica
central. Otra podrı́a ser una función similar a un controlador que interactúa tanto con
la interfaz gráfica de usuario como con la lógica central. El adaptador primario llama
a las funciones API de la lógica central.
Es una implementación del puerto secundario (que es una interfaz). Por ejemplo,
puede ser una clase pequeña que convierte las solicitudes de almacenamiento de aplica-
ciones en una base de datos determinada y devuelve los resultados de la base de datos
en un formato solicitado por el puerto secundario. También puede ser un objeto de base
de datos simulado necesario para las pruebas unitarias de ciertas partes de la lógica
central. La lógica central llama a las funciones del adaptador secundario. De acuerdo
a definción de Bergen (sfa).
Las Ventajas de esta arquitectura son:
Es fácil reemplazar los servicios por otros que sean más adecuados en vista de los
requisitos cambiantes.
Se ha elegido la arquitectura Onion por ser más resumida y propicia para im-
plementar servicios REST que se traducen por lo general en Requests desde la parte
móvil al lado servidor.
Figura A.7
Onion Architecture.
Nota. Delimita claramente la lógica de negocio al centro la que manipula los datos
solo a través de repositorios de interfaz, y es accesible únicamente desde interfaces
de servicios, con el fin de que elementos externos como clientes de UI, pruebas, re-
positorios de infraestructura, otros servicios web, etc.; puedan integrarse. Reprodu-
cido de ONION-IZING YOUR MULTI-TIER ARCHITECTURE, de Grech, 2014,
Onion Architecture, NTier, IOC, Blog, Incredible Web, Web Development (https:
//www.incredible-web.com/media/1047/onion-arch.jpg). Derechos de autor 2014
por Onion Architecture, NTier, IOC, Blog, Incredible Web, Web Development.
la programación orientada a objetos, y pone los objetos por encima de todos los demás.
En el centro mismo vemos el Modelo de dominio, que representa la combinación
de estado y comportamiento que modela la verdad para la organización, según define
Palermo (2008). Alrededor del modelo de dominio hay otras capas con más comporta-
miento.
La externalización de la base de datos puede ser un gran cambio para algunas
personas acostumbradas a pensar en las aplicaciones como “aplicaciones de bases de
datos”. Con Onion Architecture, no hay aplicaciones de bases de datos. Hay aplicaciones
que pueden usar una base de datos como servicio de almacenamiento, pero solo a través
de un código de infraestructura externa que implementa una interfaz que tiene sentido
para el núcleo de la aplicación. Desacoplar la aplicación de la base de datos, sistema de
archivos, etc., reduce el costo de mantenimiento durante la vida útil de la aplicación.
(Palermo, 2008)
movilidad de las empresas. El enfoque de TI bimodal define dos caminos paralelos: uno
es el enfoque de TI tradicional y el otro es un enfoque experimental y ágil para crear
aplicaciones que se pueden implementar rápidamente y centrarse más en funcionalida-
des intuitivas.
Las apps empresariales también deberı́an centrarse en el enfoque bimodal. En
un extremo, deben ser inteligentes y estar preparados para el futuro, mientras que en
el otro; deberı́an ser más fáciles de integrar en sistemas heredados. Las aplicaciones
deben consistir en herramientas y caracterı́sticas funcionales ágiles y omnipresentes
que se centren tanto en la previsibilidad futura como en la exploración innovadora para
obtener los mejores resultados. (Patrick, 2018)
Las empresas modernas explica Patrick (2018) tienen que tratar con cientos de
partes interesadas, administrar miles de procesos y ocuparse de cientos de ofertas en-
focadas en cualquier momento. En una sobrecarga de información tan masiva, cada
empresa busca análisis de datos en tiempo real para tomar mejores decisiones para el
crecimiento futuro.
A través de la conectividad en tiempo real, una aplicación puede capturar datos
Se debe construir como refiere Patrick (2018) una infraestructura segura y mode-
rada centralmente para una solución de movilidad empresarial. Esto mejora la confianza
al tiempo que garantiza que los datos comerciales crı́ticos siempre estén seguros. En
la era de la información, los datos son el producto más valioso y la pérdida de datos
comerciales puede ser la mayor pérdida para cualquier empresa comercial.
Hay varios ejemplos que destacan la importancia del soporte inteligente para
el éxito de una aplicación móvil de acuerdo a los conceptos de Patrick (2018), los
principales son Google Allo, Ozlo y Sherpa. Todas estas aplicaciones aprovecharon el
potencial de la IA para ayudar a los usuarios a encontrar respuestas relevantes a sus
problemas con la mı́nima molestia.
Figura A.8
Capas de Tecnologı́a de Aplicaciones Móviles.
Nota. Desde tres perspectivas a la izquierda análisis y diseño, las capas de descubri-
miento de Requerimientos, diseño de experiencia de usuario y diseño de interfaces de
usuario; al medio desde la perspectiva del lado del cliente, capas de UI, lógica de nú-
cleo y comunicaciones, y a la derecha desde el lado del servidor, los servicios web,
la lógica de Servidor y los datos. Reproducido de Mobile Application Technology La-
yers, de Slesar, sf, How to Choose the Right Tech Stack for a Mobile Application
- Part I (https://alternative-spaces.com/blog/wp-content/uploads/2018/12/
Stack1a.jpg). Derechos de autor s.f. por Mila Slesar.
Se deberı́an elegir una pila tecnológica que pueda acomodar el futuro cre-
cimiento horizontal y vertical de la aplicación. Una vez que se haya identificado
una tecnologı́a prospectiva, revisen juntos una lista de verificación:
¿La tecnologı́a tiene una API para permitir flexibilidad al otro lado?
Figura A.9
Diagrama Genérico de Stack de Tecnologı́as de Apps Móviles.
Nota. A la izquierda lado del servidor, en la base el servidor fı́sico, encima el sistema
operativo, sobre el cual corren el servidor web, la base de datos y se sirve de algún
lenguaje de programación para implementar web frameworks. A la derecha del lado
cliente pude optarse por un stack web sobre el navegador o uno nativo. Reproducido
de mobile app backend stack, de Slesar, sf, How to Choose the Right Tech Stack for a
Mobile Application - Part I (https://alternative-spaces.com/blog/wp-content/
uploads/2018/12/fullstack.jpg). Derechos de autor s.f. por Mila Slesar.
“Lado del servidor” y “backend” son términos generales para la capa donde la
lógica empresarial y los datos se unen para ofrecer la funcionalidad principal de la
aplicación móvil. El servidor responde a las solicitudes de los usuarios, accede a la base
de datos. (Slesar, sf)
La lista de las pilas de tecnologı́a más populares incluye, pero no se limita a:
más cerca de los usuarios de aplicaciones móviles. De esta manera, CDN asegura
una respuesta y descargas más rápidas para una mejor experiencia de usuario.
(Slesar, sf)
Arquitecturas Severless. Roberts (2018) desarrolla estos conceptos donde las ar-
quitecturas sin servidor son diseños de aplicaciones que incorporan servicios “Backend
as a Service” (BaaS) de terceros y/o que incluyen código personalizado ejecutado en
contenedores administrados y efı́meros en una plataforma de “Funciones como servicio”
(FaaS). Al utilizar estas ideas y otras relacionadas, como las aplicaciones de una sola
página, tales arquitecturas eliminan gran parte de la necesidad de un componente de
servidor tradicional siempre activo. Las arquitecturas sin servidor pueden beneficiarse
de un costo operativo significativamente reducido, complejidad y tiempo de entrega
de ingenierı́a, a un costo de mayor dependencia del proveedor y servicios de soporte
relativamente inmaduros.
Cuanto más grande y complejo sea el proyecto, mayor será la pila de tecnologı́a
móvil que utiliza. La elección de las tecnologı́as puede depender del tipo de producto,
sus requisitos de carga y seguridad, plazos de mercado, competencia, preocupaciones
regulatorias, accesibilidad y asequibilidad de los desarrolladores, base de conocimiento
del equipo existente, herramientas de desarrollo disponibles, costo de licencias y soporte,
el objetivo las preferencias de la audiencia, el tamaño y la edad de la empresa, etc. El
equipo de desarrollo también debe tener en cuenta si ya construye o mantiene servicios
web, la existencia de bases de datos o datos que deben migrarse, o sistemas heredados
que deben transferirse al nuevo sistema. (Roberts, 2018)
Las apps empresariales empoderan a los trabajadores de campo, que están cam-
biando la naturaleza de los paisajes corporativos con su adopción de dispositivos
inteligentes, especialmente tabletas.