Con el auge de la IA se acerca el punto de inflexión para la ejecución de proyectos de software como los conocemos hoy, entendiendo los motivos del fracaso, exploremos una visión de como los modelos de inteligencia artificial pueden potenciar el éxito en los proyectos de software.
Empecemos con algunos datos:

Cientos de tecnologías y emprendimientos aparecen cada día, es abrumador (e ineficiente) tratar de estar actualizados. Pero a pesar de cada nueva tecnología y de cada nueva herramienta en tendencia, los proyectos de software siguen teniendo cifras muy por debajo de lo aceptable en cuanto a éxito y eficiencia. El fracaso de proyectos de software es algo con lo que hemos lidiado siempre, no es nuevo, y la industria ha empleado diferentes estrategias para procurar mejores resultados, hemos pasado por herramientas de desarrollo, lenguajes de programación, marcos de ejecución de proyectos, desagregación extrema de roles, complejos sistemas de gestión de requerimientos, abstractas capas de arquitectura, redundantes niveles de gerencias y administración, inmersión en conceptos de negocio, casos de prueba de amplia cobertura, automatización en todos los niveles del proceso, ingeniería social, enfoques cognitivos asociados a la experiencia de usuario…etc; y podemos asegurar que un alto grado de entes divinos y supernaturales son incluidos por los equipos en cada proyecto. Pero las cifras no mienten, los proyectos de software siguen fracasando y la industria está realmente lejos de la convergencia, cada organización es una isla y cada isla esta sectorizada y desagregada en un sin número de componentes ensimismados.
La IA apareció en el escenario, creando pánico, esperanza, expectativa y frustración. Implementaciones muy interesantes de modelos de inteligencia artificial empiezan a proliferar por todos los rincones del planeta, disrupciones sin control que saturan aún más el panorama de la industria del software, el trasfondo continúa, divergencia absoluta, cada modelo busca solucionar necesidades específicas de igual manera a como hoy cada plataforma o aplicación de software busca el mismo fin.
Muchos CEOs, gurús y expertos han vaticinado la abolición de una buena parte de la fuerza laboral, la humanidad ya vivió algo parecido con la revolución industrial, parte del temor es cierto, pero más que abolir, estas disrupciones transforman los roles y estructuras laborales. Y respecto a la industria del software, de alguna manera es inocente imaginar que la IA va a solucionar la problemática asociada al fracaso de los proyectos, es más, muchos lanzan recomendaciones para que las nuevas generaciones dejen el aprendizaje en programación y habilidades afines, argumentando que la IA va realizar en un futuro cercano estas actividades sin intervención humana, pero la problemática principal de los proyectos de software no tiene que ver del todo con la parte ingenieril, los principales problemas son de índole psicosocial/psicoempresarial.
Empecemos por definir las razones más comunes para el fracaso de proyectos de software en unas pocas palabras: priorización, requerimientos, metas y comunicación; estas palabras tienen todo que ver con el ámbito humano y poco que ver con el ámbito técnico solucionable por los modelos generativos de la IA. Ver la industria de software desde la necesidad del ser humano no es nuevo, la industria avanzó mucho en este campo en la última década, centrándose en los problemas, la industria dio pasos valiosos para sacar el software de las corporaciones y ponerlo al servicio de toda la población, pero inevitablemente la proliferación de soluciones trajo consigo divergencia, y claro, hace parte del negocio, atender necesidades sin monopolizar el mercado (bueno, en teoría) es una excelente contribución a la economía. Los éxitos son muy sonoros, los unicornios son el santo grial para los emprendedores, pero el camino es complejo y no nos enteramos de todos los fracasos, la cifra no es consensuada por que no es fácil medir las debacles, sin embargo se estima que entre un 60% y 70% de los proyectos de software fracasan parcial o totalmente (fracasos asociados a costos, tiempos, uso, desuso, etc). Esto haciendo números muy ligeros para un país como Colombia que en el 2021 exportó software a razón de US299 millones implica que al menos US200 millones de forma directa o indirecta se botaron literalmente a la basura por el fracaso en los proyectos de software. Los porcentajes en el resto del planeta son similares, al margen de los ámbitos económicos, la industria convive con los fracasos, muchos autores y líderes de la industria los toman como parte del ecosistema, y el mantra preferido es iterar/fracasar, iterar/triunfar; claro está, triunfar después de mucho iterar.
Pero bueno, regresemos a lo que nos interesa en esta serie de artículos, qué tiene la IA que aportar para disminuir el porcentaje de fracaso en los proyectos de software?. Iniciemos por un concepto clave en todo esto, la divergencia. Hace unos párrafos hablamos de la índole psicosocial/psicoempresarial relacionada con el fracaso de los proyectos, visto desde una perspectiva macro, la divergencia causa que las islas independientes (éxitos o fracasos) no se aporten entre si. No se aportan entre si estrategias, tecnologías, resultados ni experiencias; mucho menos información de negocio ni metainformación del mismo. En otra palabras, los US200 millones perdidos en los intentos de éxito solo suman débiles anécdotas que no explotan el componente humano del fracaso; las lecciones aprendidas son menospreciadas y se pueden encontrar resumidas en cualquier literatura de gestión de proyectos.
Lo anterior nos deja deducir algo obvio, modelos de IA que tomen metadata de los proyectos con variables psicosociales/psicoempresariales para encontrar correlaciones entre perfilamientos de los miembros del proyecto (clientes, proveedores, desarrolladores, administradores, etc), los factores de fracaso y los factores de éxito. Algunos acercamientos parciales a esto podemos encontrarlos de manera esporádica en artículos técnicos de varias universidades auque sin un uso práctico aún, de tal manera que la cuestión no tan obvia es como llevar a la práctica esto en nuestra industria de forma realista en un corto y mediano plazo.
En los próximos artículos, compartiremos varias ideas de casos prácticos para incluir en el argot de nuestros equipos de desarrollo de software el concepto de convergencia, viendo la IA como facilitadora para llevar esto a la realidad.