• No se han encontrado resultados

Plan de releases

In document DeFying Loans (página 94-99)

4. Metodología de Trabajo

4.4 Plan de releases

94 Por último, resta explicar la gestión del fin del release. Como mencionaremos en la siguiente sección (Plan de releases) dividimos el proyecto completo en cuatro releases.

Al final de cada release, realizábamos entrevistas con expertos y encuestas y pruebas alfa con usuarios típicos para mostrarles el avance y obtener feedback. Además, en todos los sprints del release que estaba terminando, registrábamos métricas internas como, por ejemplo: la satisfacción del equipo con la usabilidad del proceso, la desviación de la estimación de velocidad y esfuerzo, entre otras. Todos estos resultados eran utilizados para monitorear los objetivos del proyecto y ajustar lo que fuese necesario en el próximo release en caso de notar una desviación en los valores esperados de las métricas.

También realizábamos Release Retrospective Meetings con la misma metodología y herramienta que utilizábamos para las Sprint Retrospective Meetings.

95 (dinero solicitado, cantidad de cuotas a pagar, tasa de interés) y transferir un NFT de su propiedad para que actúe como garantía del mismo.

• Conexión con Metamask: la aplicación debe integrarse con la extensión de navegador Metamask para poder realizar transacciones en la Blockchain Ethereum en nombre del usuario que interactúa con la misma.

• Explorar préstamos: ventana pensada para los usuarios prestamistas en la que ellos pueden explorar todas las solicitudes de préstamos y elegir una que se adecúe a sus preferencias.

Elegimos implementar estas funcionalidades en el primer release del proyecto porque están entre las funcionalidades centrales de la aplicación y, en el flujo del desarrollo de los préstamos, son las primeras que el usuario realiza.

Primero los usuarios deben poder registrarse y conectarse con Metamask para interactuar con Ethereum. Si el usuario es un prestatario, lo primero que debe hacer es solicitar el préstamo. En cambio, si se trata de un prestamista, su deseo va a ser poder visualizar de manera sencilla las opciones que tiene para poder invertir su dinero.

Conclusiones:

• Nuestro entendimiento de todo lo relacionado a Blockchain y Solidity aumentó exponencialmente, por lo que decidimos incrementar el alcance planificado para la tesis. En conjunto nos dimos cuenta que habíamos ganado confianza y decidimos que era posible que el alcance propuesto inicialmente quedara terminado para el fin del segundo release (es decir, en la mitad del tiempo planificado). De esta forma, podíamos dejar el tercer y el cuarto release para elegir alguna de las funcionalidades complejas, implementarlas y así aumentar aún más el nivel del producto.

• Es imprescindible tener un ambiente de desarrollo local para poder realizar las pruebas de las funcionalidades con mayor agilidad. En este release, en lo que refiere a Solidity y Blockchain, desarrollamos “en producción” dado que no conocíamos la existencia de Blockchains locales. Esto implicaba la necesidad de tener criptomonedas de una testnet para poder desplegar el contrato y probar sus funcionalidades, lo cual hacíamos con cada cambio realizado. Este proceso se

96 volvió tedioso y es por eso que decidimos en el siguiente release, dedicar un sprint a investigar sobre entornos de desarrollo locales e implementar uno.

Release 2: 10/09/22 - 11/11/22 Funcionalidades:

• Aceptar préstamo: un usuario prestamista debe poder aceptar una solicitud de préstamo que le interese para poder hacer rendir su dinero.

• Pago de las cuotas: una vez que se inicializa el préstamo, el prestatario debe poder pagar las cuotas antes de la fecha límite y el prestamista debe poder retirar ese dinero de la plataforma.

• Transferencia del NFT al usuario correcto: en caso de que el préstamo se desarrolle de forma correcta hasta el pago de la última cuota, entonces el NFT que se utilizó como garantía debe poder ser retirado por el prestatario. En cambio, si el préstamo se termina prematuramente por impago, entonces el prestamista es quien debe adueñarse de la garantía.

• Visualizar el estado del préstamo: todos los usuarios que participen en un préstamo de nuestra plataforma deben poder visualizarlo en cualquier momento para obtener información del mismo. Por ejemplo: saber cuántas cuotas quedan por pagar y cuál es la fecha límite del pago.

• Implementación de un sistema de notificaciones: este sistema, separado de la plataforma de préstamos, se encarga de escuchar los eventos del contrato inteligente y enviar a los usuarios que se registran (de forma opcional) notificaciones por mail.

Implementamos estas funcionalidades en el release 2 porque, en conjunto con las implementadas en el release 1, son la base funcional de nuestra aplicación y ese era el objetivo que nos habíamos propuesto. Queríamos desarrollar todas las funcionalidades básicas en los primeros 2 releases y generar MVPs para probarlos con usuarios con el fin de dedicar los últimos 2 releases a la optimización del producto y desarrollo de funcionalidades no centrales que le agreguen valor en base al feedback obtenido.

97 La siguiente imagen representa gráficamente nuestra filosofía de desarrollo a lo largo de los releases:

Ilustración 4.11: Filosofía de desarrollo

Conclusiones:

• Al navegar por otras plataformas nos dimos cuenta de un detalle en el cual no habíamos reparado hasta el momento. Con el fin de mantener el pseudo anonimato que caracteriza al ecosistema cripto y no obligar a ningún usuario a poner sus datos, los usuarios nunca se registran en la plataforma, sino que inician sesión a través de la conexión con su billetera electrónica. Decidimos que esto era una funcionalidad interesante e importante para implementar. De todas formas, como nuestra plataforma ofrece un servicio de notificaciones, los usuarios que desean recibirlas sí deberán proporcionar sus datos. Sin embargo, cómo es opcional el hecho de recibir notificaciones, quienes no quieran rellenar sus datos tampoco deberán hacerlo con este nuevo sistema.

• Luego de la ronda de entrevistas del final del release, obtuvimos como insight que las condiciones del préstamo eran demasiado rígidas. A algunos usuarios les parecía raro un modelo de negocios en el que el prestatario pusiera todas las condiciones del préstamo y el prestamista tuviese que simplemente adaptarse a

98 ellas. A raíz de esto fue que decidimos que en el siguiente release la funcionalidad compleja que implementaríamos (debido al incremento en el alcance decidido al final del release 1) sería la posibilidad de que el prestamista realice ofertas a las solicitudes de préstamo con condiciones que para él/ella sean más convenientes.

Release 3: 12/11/22 - 15/01/23 Funcionalidades:

• Ofertas de los prestamistas a las condiciones de los préstamos: para brindar mayor flexibilidad a las condiciones de los préstamos, permitimos que los prestamistas realicen ofertas de modificación de las mismas. Por ejemplo, un prestamista puede realizar una oferta bajando la tasa de interés de un 4% a un 3% y manteniendo el resto de los parámetros iguales. El prestatario puede aceptar o ignorar estas ofertas.

• Autenticación con Metamask: reemplazamos nuestro método de autenticación tradicional ya que no era compatible con la Blockchain Ethereum. Lo cambiamos por el uso de transacciones firmadas con Metamask: la propia billetera digital es la que identifica al usuario en nuestra plataforma.

La posibilidad de que los prestamistas puedan realizar ofertas a las condiciones originales de los préstamos fue la funcionalidad que más gustó entre los usuarios y expertos consultados. Por otra parte, los expertos recomendaron que por motivos de seguridad reemplazáramos la autenticación tradicional por autenticación con Metamask ya que era el estándar en la industria.

Conclusiones:

• La experiencia de usuario y la interfaz gráfica son lo más importante para facilitar el uso de una tecnología tan innovadora como Blockchain, por lo que decidimos en el siguiente release dedicarle tiempo a mejorar ambas.

99 Release 4: 16/01/23 - 27/03/23

Funcionalidades:

• Optimizar la experiencia de usuario: realizamos una gran cantidad de cambios en la interfaz gráfica de la plataforma con el fin de mejorar la experiencia de usuario.

Algunos de estos cambios fueron: utilizar una única fuente de texto para toda la aplicación, estandarización de estilos de los componentes, poder realizar las funcionalidades más importantes sin necesidad de scrollear, borrar contenido que no aporta valor al usuario, entre otras.

• Optimizar el costo de las operaciones del contrato inteligente: dependiendo de la implementación de las distintas funcionalidades que modifican el estado de la Blockchain (escriben o modifican información), la cantidad de ETH que se debe pagar por ejecutarlas cambia. Realizamos un refactor del contrato, siempre que fue posible, con el fin de disminuir estos costos al máximo posible

Conclusiones:

• El resultado obtenido es un MVP del cual el equipo está orgulloso y siente no solo que es una prueba de concepto completa, sino que además tiene diferenciales que le dan un valor agregado con respecto a otras plataformas similares. Todos los expertos y usuarios típicos que vieron el resultado final se mostraron muy contentos y satisfechos con el mismo. El “look and feel” de la plataforma fue particularmente elogiado.

In document DeFying Loans (página 94-99)