Cómo utilizamos la inteligencia artificial en Baufest para desarrollar productos digitales

In Blogfest, Data & Applied AI by Baufest

La inteligencia artificial (IA) está teniendo un rol muy relevante como habilitador y acelerador de procesos dentro de las organizaciones más innovadoras dentro de distintas verticales.

martes 8 - agosto - 2023
Baufest
Hombre realizando desarrollo de software con apoyo de la Inteligencia Artificial

Por ejemplo, en Baufest apelamos a esta tecnología para optimizar algunos aspectos de nuestras actividades diarias y esto nos permite ganar tanto en velocidad como en calidad. Además, favorece la innovación tecnológica y la mejora continua. Y esto repercute en nuestra capacidad para efectuar desarrollos diferenciales para nuestros clientes. 

Uno de los campos en que más advertimos la influencia de esta tecnología es en el desarrollo de software, especialmente durante la etapa de entrega, así como también para generar, probar, implementar y depurar el código. En esta área las herramientas de automatización mejoran la eficiencia y ayudan a eliminar tareas repetitivas que de otra forma nos consumirían un tiempo valioso. También nos permiten reducir errores que retrasan los procesos. Estas soluciones tecnológicas de desarrollo asistido por IA como, por ejemplo, GitHub Copilot de Microsoft, o Amazon CodeWhisperer, de AWS, claramente no reemplazan el rol de los desarrolladores, pero les ayudan a ser más eficientes y productivos. 

Por ejemplo en una experiencia controlada que se efectuó con una herramienta de IA generativa el grupo de desarrolladores que tenía acceso al programador de pares de IA completó la tarea un 55,8% más rápido que el grupo de control. Si bien no hemos hecho una comparación de este tipo puertas adentro de la organización, hemos notado un aumento notable en la productividad de los programadores.

Codificación y más allá

Las herramientas de IA no solo colaboran con la instancia de codificación: también ayudan a nuestros especialistas en diseño de UX a construir interfaces de usuario y a crear recorridos de clientes de manera más efectiva. Además, facilitan las integraciones de API y la verificación de implementaciones, así como también acortan el tiempo necesario para implementar funciones. 

Por otra parte, contamos con soluciones tecnológicas de IA que están siendo especialmente entrenadas para detectar los “bugs”, es decir, para encontrar errores de software. En este caso se trata de modelos de aprendizaje profundo que mejoran la capacidad de detectar fallas y corregirlas, algo que puede ser difícil y costoso para las empresas desarrolladoras. De todas formas, como estas herramientas aún están en proceso y, por ejemplo, todavía marcan demasiados falsos positivos o errores que en realidad no son tales, todo es rechequeado por profesionales de nuestro staff. 

Pruebas automatizadas

Otra forma en que la inteligencia artificial nos ayuda en la optimización de procesos de desarrollo es mediante las pruebas automatizadas. ¿Qué son estas pruebas? Se trata de una técnica que automatiza el proceso de validación de la funcionalidad del software y asegura que cumpla con los requisitos antes de ser lanzado a producción. 

En realidad, cada entorno de prueba debe configurarse manualmente; pero las pruebas automatizadas pueden aportar valor para casos repetitivos; con ellas una organización puede ejecutar testeos específicos a un ritmo más rápido, sin evaluadores humanos. Por eso estamos combinando la automatización con las pruebas manuales para acelerar el proceso. 

La automatización de pruebas impulsada por herramientas de IA nos ofrece los siguientes beneficios: 

  • Ahorro de tiempo.
  • Permite prevenir errores en los procesos y aumentar la precisión.
  • Simplifica la ejecución de la prueba (ya que la IA puede crear casos de prueba complejos en horas). 
  • Fácil mantenimiento de las pruebas.

Datos sintéticos

La inteligencia artificial interviene en otro punto relacionado con las pruebas de software, ya que en el testing de aplicaciones hoy utilizamos datos sintéticos. Este tipo de datos son información fabricada artificialmente para imitar conjuntos de datos reales. Es decir que son datos falsos o ficticios que se crean algorítmicamente y que en el caso del testing se usan como sustitutos para conjuntos de datos de prueba. ¿Por qué razón? Ocurre que en este campo no se puede probar con datos reales de los usuarios porque hay temas de cumplimiento a los que se debe responder. Es decir que los datos sintéticos se usan para reemplazar información sensible a la privacidad o para satisfacer necesidades específicas o ciertas condiciones que pueden no encontrarse en los datos de producción.

Entonces con IA se pueden generar datos sintéticos para hacer las pruebas de una aplicación, o de lo que se esté desarrollando, Estos datos generados por IA responden a los mismos parámetros que tiene la base de datos original. Y este recurso permite acelerar y optimizar las actividades de testing

En este caso la IA hace un aporte importante, ya que la tecnología de datos sintéticos permite a los usuarios generar datos de forma rápida, fácil y digital en la cantidad que deseen y personalizados según sus necesidades específicas. Sin embargo, hay que asegurarse que la automatización de la generación de datos sintéticos se pueda ajustar de acuerdo con los requisitos comerciales cambiantes.

Ciberseguridad con IA

En las prácticas de seguridad informática también estamos utilizando IA para detectar y mitigar el número creciente de ciberamenazas en un contexto en el que además falta talento humano especializado. 

Las soluciones basadas en IA utilizan algoritmos de aprendizaje automático que pueden detectar y responder a amenazas conocidas y desconocidas en tiempo real. Para eso, los entrenamos utilizando grandes cantidades de datos, incluidos datos históricos de amenazas y datos de la red y los puntos finales, para identificar patrones que son difíciles de ver para los humanos y que pueden ser indicativos de una ciberamenaza. Además, están diseñadas para aprender y adaptarse continuamente en un escenario donde todo el tiempo surgen nuevas amenazas

En este campo la IA se utiliza en la detección de malware, de phishing, para monitorear las redes en busca de actividades anómalas y para controlar la actividad de las terminales (endpoints). También la empleamos en el análisis de vulnerabilidades y en la gestión de parches, y para predecir el riesgo de incumplimiento, autenticar usuarios, filtrar correo no deseado, identificar bots, analizar comportamientos y detectar fraudes.

Las herramientas nos aportan mayor eficiencia, escalabilidad y precisión, automatizan tareas rutinarias y así permiten liberar a los analistas de seguridad informática para que se concentren en tareas más complejas y críticas, como la respuesta a incidentes. Además, ayudan a avanzar hacia un enfoque más proactivo de la ciberseguridad, al permitir que se refuercen las mejores prácticas y se minimice la superficie de ataque, en lugar de estar continuamente atentos a la actividad maliciosa. También colaboran para que podamos detectar nuevas amenazas y para que nos adaptemos a un panorama en constante cambio, en una época en que los ataques evolucionan rápidamente y no es sencillo mantenerse al día. Sobre todo, porque los mismos ciberdelincuentes están aprovechando la tecnología de IA para sofisticar sus técnicas y ejecutar ataques más avanzados.

En un informe tres de cada cuatro ejecutivos encuestados dijeron que la IA permitía que su organización respondiera más rápido a las infracciones y el 69% dijo que la IA era necesaria para responder a los ciberataques. 

En la gestión de datos 

Ya señalamos que los algoritmos de aprendizaje automático pueden analizar grandes cantidades de datos para hacer predicciones o identificar patrones. Esto nos resulta útil también en el desarrollo de un producto de software para predecir el comportamiento del usuario, mejorar el rendimiento del sistema y automatizar determinadas tareas.

En lo que hace específicamente a la gestión de datos, la IA nos sirve para la clasificación, la catalogación y la mejora de la calidad (reducción de errores en los datos). Y nos ayuda a integrar los datos (es decir, a crear «listas maestras»). 

La analítica de datos impulsada por IA nos permite analizar información de manera más ágil y eficiente, al tiempo que nos da la posibilidad de obtener información sobre sus datos más rápidamente para que puedan tomar mejores decisiones, optimizar sus estrategias de planificación, conseguir mayor eficiencia y productividad a nivel de sus procesos y operaciones y mejorar la experiencia del cliente (customer experience)

En Baufest estamos muy satisfechos con cómo mejoramos y aceleramos nuestros procesos de desarrollo de productos digitales con la IA. Por ejemplo, utilizamos datos sintéticos para acelerar el testing, recurrimos a la IA generativa para tareas de desarrollo de código, y también aprovechamos las herramientas de machine learning para crear mejores algoritmos para tareas de analítica de datos.

En el caso del desarrollo de software, por ejemplo, utilizamos el producto Copilot, que ayuda a crear código y acelera la construcción de soluciones, junto con otras herramientas propias de Baufest. Y por ejemplo también estamos organizando un catálogo de casos de estudio con ChatGPT: lo empleamos como si fuese un asistente comercial para apoyar la presentación de soluciones digitales a los nuevos clientes.

Es decir que más allá de las diversas maneras en que podemos ayudar a nuestros clientes a hacer cosas con IA, esta tecnología también aporta ventajas para nuestros propios procesos y prácticas. Y al utilizar nosotros mismos estas herramientas, podemos generar productos digitales de manera más veloz, de mayor calidad y más seguros. 

La IA, claramente es una Tecnología Habilitadora, y como tal es el enfoque que le damos, va en línea con la mirada que tenemos desde Baufest de poner a las personas en el centro y poder maximizar el potencial de ellas en los distintos aspectos de una organización. Pensamos la Inteligencia Artificial como una especie de “exoesqueleto de digital”, y por eso buscamos desarrollar soluciones de IA que hagan mejores a las personas y les faciliten sus tareas, pero no que las reemplacen. ​