Impacto de la Programacion y la Inteligencia Artificial

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

Ventajas y desventajas de las herramientas HTML5

El éxito de las aplicaciones para dispositivos móviles depende de llegar al público de destino independientemente del dispositivo que usen....