viernes, agosto 25, 2023

El Impacto Transformador de la Inteligencia Artificial Generativa en el Desarrollo de Productos Digitales

Ejecuté los prompts del artículo y estos son los resultados:


Product Discovery

La Visión

Elaborar la visión para un producto digital "Billetera virtual que facilitan el pago electrónico con tarjetas o códigos QR, sin necesidad de efectivo o plástico":

Crear una solución innovadora, segura y conveniente que permita a los usuarios realizar transacciones financieras desde sus dispositivos móviles, sin depender de medios físicos de pago. El producto ofrecerá una experiencia de usuario ágil, sencilla y personalizada, que se adapte a las necesidades y preferencias de cada cliente. El producto también contribuirá a la inclusión financiera, al facilitar el acceso a servicios bancarios y comerciales a personas que no cuentan con ellos. El producto aspira a convertirse en una referencia en el mercado de las billeteras virtuales, por su calidad, confiabilidad y satisfacción al cliente.

Business Model Canvas

Elaborar el Business Model Canvas para el producto digital "Billetera virtual que facilitan el pago electrónico con tarjetas o códigos QR, sin necesidad de efectivo o plástico"
  • Segmento de clientes: personas que buscan una forma segura, rápida y conveniente de pagar por bienes y servicios, sin usar efectivo o tarjetas físicas.
  • Propuesta de valor: ofrecer una billetera virtual que permite realizar pagos electrónicos con tarjetas o códigos QR, desde el celular o cualquier dispositivo conectado a internet.
  • Canales: aplicación móvil, sitio web, redes sociales, publicidad online y offline, alianzas con comercios y bancos.
  • Relación con los clientes: atención al cliente personalizada, soporte técnico, programa de fidelización, incentivos y promociones.
  • Fuente de ingresos: comisión por transacción, venta de datos de consumo, publicidad en la plataforma, servicios adicionales (recargas, transferencias, etc.).
  • Recursos clave: plataforma tecnológica, equipo humano, base de datos de clientes y comercios, seguridad informática, marca y reputación.
  • Actividades clave: desarrollo y mantenimiento de la plataforma, gestión de las operaciones financieras, captación y retención de clientes y comercios, cumplimiento legal y regulatorio, innovación y mejora continua.
  • Socios clave: proveedores de servicios financieros (bancos, emisores de tarjetas, procesadores de pagos), comercios afiliados, entidades gubernamentales, medios de comunicación.
  • Estructura de costos: costos fijos (personal, infraestructura, licencias, etc.), costos variables (comisiones a socios, marketing, etc.), costos de oportunidad (inversión en I+D).
Fuente: https://en.wikipedia.org/wiki/Business_Model_Canvas


Las Diez Funcionalidades más Importantes

Identificar y priorizar 10 funcionalidades del producto digital "Billetera virtual que facilitan el pago electrónico con tarjetas o códigos QR, sin necesidad de efectivo o plástico"
  • Permitir el registro y la verificación de los usuarios mediante el escaneo de documentos de identidad y la validación de datos biométricos.
  • Integrar una pasarela de pago segura que acepte diversas fuentes de financiación, como tarjetas de crédito, débito, prepago o cuentas bancarias.
  • Generar códigos QR únicos y dinámicos para cada transacción, que se puedan escanear con la cámara del dispositivo móvil o con un lector externo.
  • Mostrar el historial de transacciones realizadas y recibidas, con detalles como fecha, hora, monto, concepto y destinatario o emisor.
  • Enviar notificaciones instantáneas por correo electrónico o SMS cada vez que se realice o reciba un pago, con un resumen de la operación y un enlace para consultar más información.
  • Ofrecer la posibilidad de crear y gestionar tarjetas virtuales, que se puedan usar para realizar compras en línea o en comercios físicos que acepten pagos sin contacto.
  • Facilitar el envío y la solicitud de dinero entre contactos, ya sea por número de teléfono, correo electrónico o código QR.
  • Implementar un sistema de recompensas y beneficios para los usuarios, que les permita acumular puntos, descuentos o cashback por cada pago realizado o recibido.
  • Incorporar un chat de atención al cliente dentro de la aplicación, que resuelva las dudas y los problemas de los usuarios de forma rápida y eficiente.
  • Añadir una opción de seguridad que permita bloquear o desbloquear la billetera virtual en caso de pérdida o robo del dispositivo móvil.

Product Development

Las Historias de Usuario Asociadas a una Épica (o Feature)

Identificar las historias de usuario de la funcionalidad "Generar códigos QR únicos y dinámicos para cada transacción, que se puedan escanear con la cámara del dispositivo móvil o con un lector externo":
  • Como usuario, quiero generar un código QR único y dinámico para cada transacción que realice, para que pueda identificarla fácilmente y evitar fraudes.
  • Como usuario, quiero escanear el código QR de una transacción con la cámara de mi dispositivo móvil, para que pueda acceder a los detalles de esta y confirmarla o rechazarla.
  • Como usuario, quiero escanear el código QR de una transacción con un lector externo, para que pueda realizar el pago sin necesidad de usar mi dispositivo móvil.
  • Como comerciante, quiero generar un código QR único y dinámico para cada transacción que reciba, para que pueda verificar la identidad del cliente y el monto a cobrar.
  • Como comerciante, quiero mostrar el código QR de una transacción en una pantalla o en un papel, para que el cliente pueda escanearlo con su dispositivo móvil o con un lector externo.
  • Como comerciante, quiero recibir una confirmación o un rechazo de la transacción una vez que el cliente escanee el código QR, para que pueda finalizar la venta o cancelarla.

Una Historia de Usuario con Criterios de Aceptación

Escribir la historia de usuario y los criterios de aceptación de " - Como comerciante, quiero mostrar el código QR de una transacción en una pantalla o en un papel, para que el cliente pueda escanearlo con su dispositivo móvil o con un lector externo." 

Historia de usuario: Como comerciante, quiero mostrar el código QR de una transacción en una pantalla o en un papel, para que el cliente pueda escanearlo con su dispositivo móvil o con un lector externo.
Criterios de aceptación:
    • El sistema debe generar un código QR único para cada transacción, que contenga la información necesaria para validar el pago.
    • El sistema debe mostrar el código QR en una pantalla o imprimirlo en un papel, según la preferencia del comerciante.
    • El sistema debe permitir al cliente escanear el código QR con su dispositivo móvil o con un lector externo, y redirigirlo a una página de confirmación del pago.
    • El sistema debe notificar al comerciante cuando el pago se haya realizado correctamente.


Una Historia de Usuario con Criterios de Aceptación escritos usando BDD

Escribir la historia de usuario y criterios de aceptación usando behavior driven development de " - Como comerciante, quiero mostrar el código QR de una transacción en una pantalla o en un papel, para que el cliente pueda escanearlo con su dispositivo móvil o con un lector externo.":

Como comerciante, quiero mostrar el código QR de una transacción en una pantalla o en un papel, para que el cliente pueda escanearlo con su dispositivo móvil o con un lector externo.

Criterios de aceptación:

Dado que el comerciante ha iniciado una transacción, 
cuando ingresa el monto y confirma el pago, 
entonces se genera y muestra un código QR en la pantalla o se imprime en un papel.
 
Dado que el cliente tiene un dispositivo móvil o un lector externo, 
cuando escanea el código QR de la transacción, 
entonces se verifica y procesa el pago.
 
Dado que el pago se ha procesado correctamente, 
cuando el comerciante y el cliente reciben la confirmación, 
entonces se finaliza la transacción.



Casos de Prueba de una Historia de Usuario

Escribir 10 casos de prueba para la historia de usuario anterior: - 
  • Caso de prueba 1: El comerciante inicia una transacción, ingresa el monto de 100 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla. El cliente escanea el código QR con su dispositivo móvil y se verifica y procesa el pago. El comerciante y el cliente reciben la confirmación y se finaliza la transacción.
  • Caso de prueba 2: El comerciante inicia una transacción, ingresa el monto de 50 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla. El cliente escanea el código QR con un lector externo y se verifica y procesa el pago. El comerciante y el cliente reciben la confirmación y se finaliza la transacción.
  • Caso de prueba 3: El comerciante inicia una transacción, ingresa el monto de 200 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla. El cliente intenta escanear el código QR con su dispositivo móvil, pero el código QR es ilegible o inválido. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 4: El comerciante inicia una transacción, ingresa el monto de 150 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla. El cliente escanea el código QR con su dispositivo móvil, pero el pago falla por falta de fondos o por algún otro motivo. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 5: El comerciante inicia una transacción, ingresa el monto de 300 pesos y confirma el pago. Se genera y imprime un código QR en un papel. El cliente escanea el código QR con su dispositivo móvil o con un lector externo y se verifica y procesa el pago. El comerciante y el cliente reciben la confirmación y se finaliza la transacción.
  • Caso de prueba 6: El comerciante inicia una transacción, ingresa el monto de 250 pesos y confirma el pago. Se genera y imprime un código QR en un papel. El cliente intenta escanear el código QR con su dispositivo móvil o con un lector externo, pero el código QR es ilegible o inválido. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 7: El comerciante inicia una transacción, ingresa el monto de 400 pesos y confirma el pago. Se genera y imprime un código QR en un papel. El cliente escanea el código QR con su dispositivo móvil o con un lector externo, pero el pago falla por falta de fondos o por algún otro motivo. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 8: El comerciante inicia una transacción, pero no ingresa ningún monto o ingresa un monto inválido. No se genera ni se muestra ningún código QR en la pantalla ni se imprime en un papel. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 9: El comerciante inicia una transacción, ingresa el monto de 500 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla o se imprime en un papel, pero antes de que el cliente pueda escanearlo, se pierde la conexión a internet o se apaga el sistema. Se muestra un mensaje de error y se cancela la transacción.
  • Caso de prueba 10: El comerciante inicia una transacción, ingresa el monto de 350 pesos y confirma el pago. Se genera y muestra un código QR en la pantalla o se imprime en un papel. El cliente escanea el código QR con su dispositivo móvil o con un lector externo, pero antes de que se pueda verificar o procesar el pago, se pierde la conexión a internet o se apaga el sistema. Se muestra un mensaje de error y se cancela la transacción.



lunes, julio 24, 2023

Podcast - Hormigas Agilistas - EP102 — Antipatrones de OKRs con Cristhian Arias Venturo

¿Y qué pasó con la Definition of Ready y la Definition of Done?¿Pasaron de moda?

 





Hola a todos,

Hace rato no escribía, lo cierto es que sigo avanzando en diferentes proyectos con mi gran amigo Lucho Salazar, pero si algunos me siguen asiduamente, saben que continúo compartiendo notas, podcast y videos; pues este aprender y compartir es en doble vía, y siento un deber trabajar con la comunidad ágil para crecer y progresar juntos.

Bueno, quiero compartirles una disfunción que he visto emerger en muchos equipos Scrum y organizaciones ágiles, que uno supondría que está mitigada, pues en ellas se insiste insistentemente en los entrenamientos de Scrum y en los diferentes marcos de escalamiento que lo usan (y que también existe en el mundo Kanban (1)), y que por lo que estoy observando esta siendo ignorada o minimizada su importancia por los Scrum Masters, Facilitadores, Agile Coaches; y como lo "spoilié" con el título del artículo es: el no cumplir con la Definition of Ready (DoR) y la Definition of Done (DoD).

Continuamente en diversos escenarios, Product Owners y gerentes de área se me quejan de que sus equipos scrum no están funcionando, y para entender el contexto hago unas preguntas de rigor, como las del litmus test de la agilidad, y adicional incluyo estas cinco (entre muchas otras según me va llevando la conversación):
  1. ¿Tienen Definition of Ready?
  2. ¿La están cumpliendo?
  3. ¿Tienen Definition of Done?
  4. ¿La están cumpliendo?
  5. ¿Y cada cuánto actualizan la Definition of Done? 
Siendo estas últimas en las que estoy encontrando mayor reincidencia, y casi todas teniendo como causa raiz la presión del negocio por entregar a como de lugar. Como se pueden imaginar, en estos escenarios de falla y queja, si se incumple en cualquiera de las primeras cuatro preguntas se esta incurriendo en errores de calidad que terminan pagando el producto, el cliente, el equipo y toda la organización, generando retrasos y reprocesos e inconformidad en todos los involucrados en el proceso Scrum; y si se incurre en la última pregunta, se tiene un equipo que no mejora sus estándares con el tiempo y en consecuencia se está desactualizando.


 



A continuación, comparto un listado de consecuencias de fallar en estos cinco aspectos:


Consecuencias de no tener o no cumplir la Definition of Ready

En Scrum, "Definition of Ready" (Definición de Listo) (2) es un criterio utilizado para determinar si un elemento del Backlog del Producto está en un estado adecuado para ser planificado y abordado en una próxima iteración o Sprint. Aunque ni en tradicional, ni en cascada, ni en ágil, Scrum o Kanban, etc., se recomienda trabajar con requisitos inestables o no definidos, pues¡No tiene sentido! ¡Es desperdicio de comienzo a fin!, veamos algunas consecuencias de no contar ni cumplir con la DoR


"Caminar sobre el agua y desarrollar software basado en especificaciones es fácil si ambos están congelados" - Edward V. Berard

  • Entregas inconsistentes: El equipo puede encontrarse trabajando en elementos que no están bien preparados, lo que lleva a resultados inconsistentes y posiblemente de baja calidad.
  • Ambigüedad en las expectativas: Si los elementos del Backlog del Producto no están claramente definidos antes de comenzar el trabajo, puede haber confusión en cuanto a las expectativas y los criterios de finalización, lo que puede llevar a malentendidos y retrabajos.
  • Mayor tiempo de Sprint Planning: La falta de definición puede conducir a discusiones prolongadas durante la planificación del Sprint, ya que el equipo debe aclarar los requisitos y detalles de cada elemento.
  • Riesgo de incluir elementos poco relevantes: Si los elementos no están bien definidos, existe la posibilidad de que se planifiquen tareas que no aporten un valor significativo al producto final.
  • Acumulación de elementos no terminados: Si el equipo acepta elementos no preparados en el Sprint, existe una mayor probabilidad de que no puedan completarlos dentro del marco de tiempo del Sprint, lo que resulta en elementos no terminados y afecta la capacidad de entrega. Es frecuente ver que el Product Owner resuelve las inconsistencias o dudas durante el sprint y el equipo al estimarlas o trabajar desbordan la capacidad del equipo impactando otros elementos del sprint backlog o incluso el objetivo del sprint..
  • Desperdicio de tiempo y esfuerzo: Trabajar en elementos no preparados puede dar lugar a un desperdicio de tiempo y esfuerzo, ya que el equipo podría descubrir problemas o requisitos faltantes durante el Sprint.
  • Falta de transparencia: Una Definition of Ready clara es esencial para mantener la transparencia en el proceso de desarrollo. Sin ella, puede ser difícil para las partes interesadas y el equipo comprender el progreso y el estado del proyecto.
  • Frustración y desmotivación del equipo: Si el equipo se ve constantemente lidiando con elementos mal definidos, esto puede llevar a la frustración y la desmotivación, lo que afecta negativamente la moral y la productividad.
  • Frustración de los interesados: Se genera un producto de baja calidad y no se tienen claras las reglas de interacción con el equipo, generando expectativas que no son cumplidas frecuentemente.
Para evitar estas consecuencias, se sugiere:
  • que el equipo Scrum y los interesados trabajen juntos para establecer una Definition of Ready 
  • cumplir estrictamente la DoR y actualizarla cuando se observe pertinente.
  • que los próximos elementos candidatos a ser sumados al sprint backlog se encuentren correctamente refinados y definidos.
  • se realicen sesiones de refinamiento previas a la sprint planning.
  • las dependencias con otros componentes sean resueltas y construidas al menos con un sprint de antelación.
  • se trabajen en ítems de backlog pequeños (historias de usuario), pues esto permite la fácil identificación de áreas, escenarios, o criterios de aceptación, evitando áreas grises o no resueltas en el sprint planning.
  • no incluir historias por presión del negocio que no complan la DoR.

Consecuencias de no tener o no cumplir con la Definition of Done

 La "Definición de Terminado" (3)(4) es un conjunto de criterios acordados que establece cuándo un incremento del producto se considera terminado y listo para ser entregado. Algunas de las consecuencias de no tener o no cumplir con esta definición son las siguientes:

"Cuando algo esta DONE, no me tengo que volver a preocupar de ello" - Alan Cyment

  • Entregas de baja calidad: Si el equipo no cumple con los criterios de la "Definición de Terminado", es probable que los incrementos entregados no cumplan con los estándares de calidad requeridos. Esto puede llevar a problemas de funcionamiento, errores y dificultades para el usuario final.
  • Acumulación de deuda técnica (6): Si se permite que el equipo entregue incrementos que no están completamente terminados, es probable que se acumule deuda técnica. La deuda técnica representa trabajo adicional que se requerirá más adelante para resolver problemas y mejorar la calidad del producto.
  • Retraso en la entrega: La falta de cumplimiento con la "Definición de Terminado" puede llevar a retrasos en la entrega de incrementos completos y funcionales. Esto puede afectar la confianza del cliente y la capacidad del equipo para cumplir con los plazos establecidos.
  • Dificultades en la planificación: Si el equipo no puede estimar con precisión el tiempo necesario para completar los incrementos debido a la falta de una "Definición de Terminado" clara, la planificación de futuros Sprints puede volverse complicada y menos confiable.
  • Dificultades en la revisión del Sprint: Durante la revisión del Sprint, los incrementos se evalúan para determinar si cumplen con los criterios de la "Definición de Terminado". Si no se cumple, se pueden generar discusiones y conflictos innecesarios entre los interesados.
  • Falta de transparencia: Una "Definición de Terminado" clara es esencial para mantener la transparencia en el proceso de desarrollo. Sin ella, puede ser difícil para las partes interesadas y el equipo comprender el progreso y el estado real del producto.
  • Desmotivación del equipo: Si el equipo se ve obligado a entregar incrementos que no cumplen con los estándares de calidad, es probable que se sientan desmotivados y frustrados por no poder ofrecer un trabajo de alto nivel.
  • Problemas de integración: Incrementos que no cumplen con la "Definición de Terminado" pueden generar problemas de integración con otros componentes del sistema, lo que dificulta el progreso general del desarrollo.
  • Desconfianza de los interesados en el equipo y en el proceso Scrum: Al observar que el equipo Scrum no cumple entregando con calidad, se pierde confianza en el equipo y el proceso Scrum.
Para evitar estas consecuencias, se sugiere:
  • que el equipo Scrum adopte y cumpla la DoD de la organización.
  • en su defecto, el equipo Scrum la defina y todos responsablemente la promuevan, comenzando por el Scrum Master como agente de cambio.
  • no contar como Done, algo que no fue finalizado.
  • usar la retrospectiva como fuente de indagación para comprender por qué no se cumplió la DoD.
  • por presión de agenda o del negocio, evitar a toda costa declarar como DONE algo que no lo es. 

Consecuencias de no actualizar la Definition of Done


"Entre más maduro y DevOps sea un equipo, más robusta es su Definition of Done" - Jorge Abad

    No revisar y mejorar con cierta frecuencia la "Definición de Terminado" como lo sugiere la guía de Scrum puede tener varias consecuencias negativas que afectan al equipo de desarrollo y al producto final a lo largo del tiempo. Aquí están algunas de las consecuencias de no realizar revisiones y mejoras periódicas:

    • Estancamiento de la calidad: Si la DoD no se revisa y actualiza regularmente, es probable que la calidad del producto se estanque. Los criterios pueden volverse obsoletos o insuficientes para mantener el nivel de calidad deseado.
    • Deuda técnica: La falta de revisión puede conducir a la acumulación gradual de deuda técnica. A medida que el producto se desarrolla sin mejoras en la DoD, es más probable que se tomen atajos y se sacrifique la calidad para cumplir con los plazos, lo que crea deuda técnica que debe abordarse más adelante.
    • Mayor incidencia de errores: Si la DoD no se ajusta a las necesidades cambiantes del producto o del cliente, es más probable que se produzcan errores y problemas que afecten negativamente la experiencia del usuario.
    • Dificultades en la entrega: Si la DoD no se actualiza para reflejar las nuevas expectativas o requisitos del cliente, el equipo puede tener dificultades para cumplir con las demandas cambiantes del mercado.
    • Conflictos con los interesados: Si la DoD no se revisa en función del feedback de los interesados, puede haber conflictos y desacuerdos sobre el nivel de calidad aceptable para el producto.
    • Pérdida de transparencia: Si la DoD no se revisa y comunica de manera efectiva, puede haber una falta de transparencia en el proceso de desarrollo, lo que dificulta que los interesados comprendan el estado real del producto.
    • Desmotivación del equipo: La falta de revisión y mejora puede llevar a que el equipo se sienta frustrado y desmotivado, ya que pueden enfrentar problemas recurrentes y dificultades para cumplir con los objetivos de calidad.
    • Estancamiento en la mejora continua: La revisión y mejora de la DoD son esenciales para la mejora continua del equipo. Sin esta práctica, el equipo puede dejar de buscar oportunidades para optimizar su proceso de desarrollo y entregar un producto de mayor calidad.
    • Trabajar en un producto obsoleto: Sin el ejercicio de revisión frecuente de la DoD, se puede incurrir en trabajar en un producto que se va desactualizando y quedando obsoleto con el tiempo.
    Para evitar estas consecuencias, se sugiere:
    • que el equipo Scrum revise con cierta cadencia su DoD, al menos una vez cada trimestre en una retrospectiva.
    • revisar el entorno del mercado (realizar vigilancia tecnológica) para identificar mejoras al producto, prácticas o proceso que deban ser incluidas en la DoD.
    • identificar qué prácticas de calidad se encuentran al final del proceso de desarrollo (por ejemplo: prebas especializadas previos a la salida a producción) que puedan ser includias tempranamente (shift-left) para mejorar la velocidaddel equipo y del producto.


    Cerrando

    Scrum tiene dos puntos de control de calidad clave, que son: la entrada de lo que se quiere construir y la salida o increments; el compromiso del equipo Scrum en hacer cumplir la DoR y la DoD, garantizan la calidad del producto, menos errores, mayor velocidad, más transparencia, menos deuda técnica, mejor satisfacción de todos los involucrados, planeaciones y ejecuciones más efectivas, en consecuencia un mejor Scrum y una entrega de calidad de impacta positivamente la generación de valor.

    Deteriorar el cumplimiento de la DoR y la DoD generará, como lo vimos, desconfianza en el producto, el equipo y el proceso; consecuentemente deteriora el entorno de agilidad que se quiere construir.

    "Agilidad sin calidad, son incrementos de desperdicio entregados en ciclos cortos" - Jorge Abad
    Volver a lo básico e insitir sobre lo esencial, garantizará una mejor agilidad y desempeño de los equipos construyendo productos exitosos.


    Saludos ágiles.

    Jorge Abad.



    Referencias, notas, aclaraciones y comentarios

    1. En el mundo Kanban, la Definition of Ready y la Definition of Done conocen como Politicas y consiste en que una tarjeta no mueve hacia la derecha (o en la dirección del flujo) si las políticas no se cumplen.
    2. Definition of ready (scrumbook) - https://scrumbook.org/value-stream/product-backlog/definition-of-ready.html
    3. Definition of done (scrumbook) - https://scrumbook.org/value-stream/definition-of-done.html
    4. Definition of done (Scrum guide)- https://scrumguides.org/scrum-guide.html.
    5. Deuda Técnica - http://www.lecciones-aprendidas.info/search/label/deuda%20t%C3%A9cnica
    6. Algunos textos acá presentados fueron curados utilizando IA.

    viernes, julio 07, 2023

    Lo complejo vende más


    “La simplicidad es una gran virtud, pero lograrla requiere trabajo duro y educación para apreciarla. Y para hacer las cosas peor: la complejidad vende mejor”.  

     - Edsger W. Dijkstra



    __