Actuar con prudencia : Como manejar la deuda técnica dentro de los proyectos informáticos — Parte 2
Esta es la segunda parte y final de Actuar con prudencia: Como manejar la deuda técnica dentro de los proyectos informaticos — Parte 1. En este artículo, voy a hablarles sobre los 3 puntos que deje pendiente del artículo anterior. Los puntos eran :
- ¿Cómo impacta la deuda técnica en el tiempo?
- Ejemplos y casos donde se expone la deuda técnica
- Estrategias para manejar la deuda técnica
Partamos revisando el primer punto
¿Cómo impacta la deuda técnica en el tiempo?
Analicemos un poco las dos palabras mas importante de esta pregunta: Impacto y Tiempo.
Cada acción dentro de las organizaciones debe tener cuantificado su impacto(Lo que no se mide, no se puede mejorar) en diferentes frentes : Procesos, Sistemas, Personas, entre las otras variables que gestiona una organización. La deuda técnica, hoy en dia en un mundo tan globalizado, impacta en todas las aristas que tiene una empresa, por lo que descuidarla puede salir más caro que si no se considera desde un principio cierto esfuerzo de medición.
Respecto al tiempo, nos encontramos en una época en donde si uno no entrega valor pronto a sus clientes, otras empresas cubrirán las necesidades de ellos. Se entiende con lo anterior, que las áreas comerciales deben estar muy pendientes de ir ofreciendo nuevos productos y servicios, con el objetivo de satisfacer esas necesidades y aumentar su participación para mantenerse viva en el mercado. Pero, entonces nos surge otro dilema
¿Como la deuda técnica se relaciona con la entrega de valor y cubrir las necesidades de los clientes?
En mi opinión, la deuda técnica es aliada de las áreas comerciales, ya que dentro de sus planes de creación de nuevos productos y servicios la variable tiempo siempre está conectada con el time-to-market, lo cual hace que se considere realizar desarrollos con el menor tiempo posible dejando de lado muchas cosas que impactaran en un mediano plazo. La entrega de valor es necesaria para que un negocio viva, pueda hacer frente a sus competidores y cumplir con las necesidades de los clientes, por lo que en un principio si es justificada una pequeña deuda técnica.
Para concluir respecto a esta pregunta ¿Cómo impacta la deuda técnica en el tiempo?
El impacto será menor si le damos importancia a tiempo, así que considera siempre ir pagando tus deudas tan pronto como sea posible. Pasemos al segundo punto de nuestro artículo.
Ejemplos y casos donde se expone la deuda técnica
A continuación, les voy a contar casos de usos relacionados a los 4 tipos diferentes de deuda técnica:
- Infraestructura: está asociada a la obsolescencia tecnológica que existe en infraestructura y redes, según la forma en la que se aprovisionan y escalan capacidades de cómputo. Ejemplo : Una empresa que trabaja con servidores propios, llámese hoy en dia nube privada, y quiere potenciar el desarrollo de nuevos productos y servicios, se verá enfrentada a tener problemas con la deuda técnica si no proyectan bien cuál será la demanda de tráfico de sus sitios, por lo que debe tener presente no deteriorar la calidad de servicio entregada a sus clientes.
- Aplicaciones: hace referencia a la deuda generada por prácticas técnicas, códigos, documentación y seguridad de las aplicaciones. Ejemplo: Un equipo de desarrollo de software tiene para el siguiente incremento de valor construir un modelo de datos que pueda satisfacer la entrega de cupones de descuentos en sus flujos de ventas. Durante la instancia de refinamiento, donde se discuten temas referentes a cómo se implementará la solución, se evalúa el usar una base de datos. El equipo de desarrollo le dice al dueño del producto que el hacer el modelo de datos y crear el script para la construcción de las tablas se demoran 4 semanas considerando realizar pruebas del modelo. Por otro lado el dueño del producto les dice al equipo de desarrollo que el área comercial tiene destinado en sacar una campaña comercial en las próximas 2 semanas y enviar correos masivos a los clientes para que ellos puedan usar el cupón de descuento en sus flujos de ventas. El equipo ofrece una solución donde en 1 semana pueden usar un archivo excel en donde registren las transacciones usadas para esa campaña, pero advierten que el siguiente incremento de valor deben destinar el tiempo necesario para construir la nueva base de datos y que tambien es necesario tiempo para hacer una migración de las transacciones a la nueva base de datos. El dueño del producto conversa con sus superiores y están de acuerdo con la propuesta que el equipo sugiere y se toman las decisiones planteadas. Moraleja : Si vas a entregar valor a tus clientes y debes generar deuda técnica ADELANTE, hazlo y levanta de inmediato que se destine tiempo para hacer la solución definitiva en el próximo incremento de valor.
- Comercial: este tipo de deuda se relaciona a los tipos de contratos de licenciamiento manejados en la organización, los cuales deben permitir tener flexibilidad, acceder a nuevas tecnologías y crecer o decrecer según las necesidades de negocio. Ejemplo: Un caso de uso para este tipo de deuda técnica es uso del software de proveedores de terceros. Entendamos que cada proveedor entrega planes con precios establecidos, por lo que es imperativo elegir el plan que se acomode a lo que necesite la empresa en un horizonte determinado, es decir, el plan estratégico de la organización debe estar alineado con una estrategia tecnología.
- Datos: la deuda técnica de los datos se refiere a los costos de almacenamiento, el respaldo adecuado y la seguridad de los datos e información de la compañía. Ejemplo: En este punto vuelvo a mencionar la comparación entre servidores propios(nube privada) y servidores externos(nube pública). El hecho de que un negocio administre bien sus datos y pueda tener la información siempre disponible ante fallas o catástrofes, condiciona a las empresas a estar pendientes de caer en el uso de sistemas que no sean escalables y que no tengan alta disponibilidad.
Llegamos al punto final de nuestro artículo, el cual consiste en conocer las estrategias para manejar la deuda técnica.
Estrategias para manejar la deuda técnica
Dentro del mundo empresarial, el pensar en estrategias nos da una tranquilidad para que a posteriori actuemos con prudencia. A continuación presentare algunas estrategias bien acotadas que en mi vivir como ingeniero de software veo y creo que deben seguirse para un flujo armonioso del ciclo de desarrollo de software :
Estrategia Número 1
Objetivo : Alinee los equipos de operaciones y de negocio.
Métrica : La calidad de los requerimientos funcionales.
Plan : Incluir tanto las operaciones de TI como los equipos de negocio en la planificación del proyecto.
Metodología : Cada semana, específicamente el dia lunes y viernes, los equipos de operaciones y negocio se juntan para ir definiendo con que se avanzara en la semana, como tambien verificar la calidad del como se avanzó.
Estrategia Número 2
Objetivo : Vuélvase ágil.
Métrica : Nivel de colaboración del equipo y liberaciones a producción en un periodo de 1 mes.
Plan : Realizar entregables de manera iterativa y no usando alguna estrategia tipo Big Bang en donde especifica desarrollar durante un periodo largo y liberar al mercado una solución.
Metodología : Cada dos semanas se debe planificar, diseñar, construir y probar el trabajo realizada, con el objetivo de entregar una funcionalidad.Cada 1 mes se debe hacer una liberación a producción de un paquete reducido de funcionalidades que aporte valor al cliente.
Estrategia Número 3
Objetivo : Generar un presupuesto de reserva ante eventualidades.
Métrica : Los costos y plazos extendidos del proyecto
Plan : Realizar el trabajo según el plan acordado y si existen eventualidades actuar con prudencia y aplicar deuda técnica prudente y deliberada. Para comprender mas sobre el punto anterior, Martin Fowler explica en el siguiente articulo el cuadrante de la deuda tecnica (https://martinfowler.com/bliki/TechnicalDebtQuadrant.html)
Metodología : Cada dos semanas, luego de que se avance en los pendientes del proyecto, se debe conversar sobre el manejo del presupuesto de reserva y ver que su uso sea el menor posible.
Estrategia Número 4
Objetivo : Evite la tecnología obsoleta.
Métrica : Vulnerabilidades de seguridad
Plan : Evaluar en el mercado el uso de tecnología que cumpla con un rendimiento superior al promedio, considerando criterios de precio por uso, escalabilidad, seguridad, alta disponibilidad y tolerancia a fallas. Además, tener en considerado buscar talento para administrar aplicaciones previas, basadas en código complejo u obsoleto y las nuevas aplicaciones que serán construidas usando la nueva tecnología.
Metodología : Cada vez que se construyan nuevas funcionalidades se debe priorizar usar las nuevas tecnologías por sobre las obsoletas. La persona o área encargada de administrar las tecnologías debe cada cierto tiempo ir monitoreando que las tecnologías nuevas tienen cada vez un mayor uso dentro de la organización.
¿Qué es lo que sigue ahora?
Lo que sigue ahora es Actuar con Prudencia y aplicar en gran medida alguna estrategia descrita más arriba para lograr reducir a su mínima expresión la deuda técnica. TU tienes el potencial para entregar el máximo valor a las personas que consumen tus productos y servicios, pero tambien tienes la GRAN RESPONSABILIDAD de levantar los RIESGOS que estimes convenientes. De lo último es donde las empresas deben minimizarlos para asegurar su operación y mantenerse activas en este mundo. Muchas gracias.