Impacto en el ciclo de desarrollo
A continuación listamos algunas de las posibilidades de la inteligencia artificial aplicada al desarrollo de software:
Rápidamente convertir una idea en código. Tomar una idea de
negocio e implementarla en código de software sigue siendo un gran
problema, a pesar de las mejoras que ha habido en esta área gracias a
los métodos ágiles y prácticas de análisis de negocio. Imaginemos que un
equipo de desarrollo pudiera simplemente describir una idea en lenguaje
natural y que el sistema la entendiera y la convirtiera en código
ejecutable? Aunque eso todavía es ciencia ficción, sí es posible que por
medio de procesamiento de lenguaje natural y sistemas expertos se
pueden sugerir cambios y mejoras a una aplicación. La IA enriquecerá los
modelos de requerimientos y casos de prueba con un reconocimiento de
texto más sofisticado, resultando en mejores generadores de código.
Mejorar la precisión de estimaciones. La estimación de
proyectos de software sigue siendo una actividad complicada y con baja
precisión, en la cual es necesario involucrar expertos con amplio
conocimiento del contexto. Imaginemos una solución para estimar software
que analice datos históricos de proyectos anteriores de la empresa para
encontrar estadísticas y correlaciones, y utilice analítica predictiva y
reglas de negocio para proveer estimaciones más precisas de tiempo y
esfuerzo.
Acelerar la detección de defectos y soluciones. Cuando un
sistema presenta fallas en producción, los equipos dedican gran cantidad
de tiempo y esfuerzo a poder reproducir dichas fallas para poder
localizarlas y corregirlas, y en la mayoría de los casos el equipo que
hizo el desarrollo ya no se encuentra disponible. Por medio de IA se
podría analizar las habilidades de la persona que escribió el código
original y localizar a alguien disponible con un perfil similar.
Automatizar las decisiones de qué construir y probar a
continuación. Una IA podría analizar los patrones de uso de una
aplicación en producción y en base a ello decidir qué requerimiento(s)
del backlog deben tener mayor prioridad, o implementarse primero. Este
análisis del comportamiento de uso también se podría utilizar para
generar scripts de pruebas automatizadas.
Impacto en las aplicaciones
A nuestras computadoras, teléfonos y dispositivos está
llegando una nueva generación de aplicaciones que puede hablar,
escuchar, sentir, razonar, pensar y actuar. La lista de empresas
construyendo aplicaciones enriquecidas con IA crece rápidamente.
Están son algunas capacidades en las aplicaciones de nueva generación que son posibles gracias a la IA:
Interacción natural con humanos. A lo largo de la historia
del cómputo hemos tenido que interactuar con las computadoras por medio
de interfaces no naturales: tarjetas perforadas, teclados, mouse, formas
de captura, etcétera. La IA está habilitando que las computadoras
puedan ver y escuchar a sus usuarios, además de contestar por medio de
voz en lenguaje natural.
Sistemas expertos. Codificar políticas y reglas de negocio
de un dominio específico a través de lenguajes de programación
tradicional es una actividad compleja e intensiva en esfuerzo. La
inteligencia artificial da la opción de construir sistemas expertos
enfocados a un dominio específico que puedan dar soporte a novatos en
una actividad o ayudar a los gerentes en su toma de decisiones. Aunque
los sistemas expertos no son nada nuevo, hasta ahora comenzaremos a ver
que se hacen populares, además de que serán enriquecidos por medio de
deep learning.
Imitar capacidades humanas típicas. Una empresa brasileña
de minería buscaba automatizar su proceso de inventario y para ello
requería poder identificar correctamente una gran cantidad de vagones de
tren. Inicialmente consideró poner etiquetas RFID en cada vagón. Sin
embargo, se dio cuenta que todos los vagones ya están identificados de
forma visual con letreros, así que fue mejor solución utilizar
reconocimiento óptico de caracteres.
Software que aprende por sí mismo. El aprendizaje profundo
combinado con big data es una de las tecnologías que provocará mayor
disrupción en las aplicaciones que construimos. Será muy interesante ver
qué aplicaciones estaremos construyendo próximamente cuando el
aprendizaje no supervisado esté al alcance de todos.



No hay comentarios.:
Publicar un comentario