En su artículo titulado The Five Laws of SE for AI (Cinco leyes de la Ingeniería de Software para la Inteligencia Artificial), Tim Menzies reflexiona sobre el papel que desempeña o puede desempeñar la Ingeniería de Software en el desarrollo y la globalización de la Inteligencia Artificial (IA).
Menzies plantea cinco leyes que resumen los principales principios que regirán la evolución futura de este campo. A continuación, resumiré brevemente estas cinco leyes:
-
EL SOFTWARE DE IA NO TIENE MUCHO DE IA: La mayoría de los principios y prácticas de la Ingeniería de Software son directamente aplicables al desarrollo de aplicaciones de Inteligencia Artificial. La parte "inteligente" es solo una pequeña fracción del código total de la aplicación. Estas aplicaciones requieren gestión de acceso, configuración de servidores, procesamiento y limpieza de datos, visualizaciones, y otras tareas similares.
-
LA IA NECESITA INGENIEROS DE SOFTWARE: Todo el software, ya sea inteligente o no, necesita instalación, configuración, mantenimiento, interacción con otros componentes, pruebas, certificación, soporte al usuario, mejoras en la usabilidad y distribución. El futuro del software no es una elección entre Ingeniería de Software o Inteligencia Artificial, sino una combinación explosiva que puede surgir de combinar las ideas y capacidades de ambas disciplinas.
-
LA IA SUFRE CUANDO SE IGNORA LA INGENIERÍA DE SOFTWARE: Todo software inteligente sigue siendo software, por lo que las malas prácticas de Ingeniería de Software conducen a aplicaciones de IA de baja calidad. Después de décadas de experiencia en la construcción de software de calidad, no tiene sentido descartar todo ese conocimiento al desarrollar aplicaciones de IA. Los ingenieros de IA también deben estudiar Ingeniería de Software como parte fundamental de su formación.
-
LA IA MEJORA CUANDO SE SIGUEN LOS PRINCIPIOS DE LA INGENIERÍA DE SOFTWARE: Lo contrario también es cierto: cuanto más mejore la Ingeniería de Software, mejor será para la IA. Esto incluye el movimiento de código abierto, que facilita la colaboración para mejorar paquetes estadísticos y redes neuronales, que son componentes fundamentales de la mayoría del software de IA.
-
LA INGENIERÍA DE SOFTWARE TAMBIÉN NECESITA LA IA: Si bien las leyes anteriores se centran en cómo la Ingeniería de Software puede ayudar a la IA, la dirección inversa también es relevante. Sin embargo, no es tan sencillo como utilizar cualquier herramienta genérica de IA y ponerla a colaborar con el equipo de programadores. Se deben tener en cuenta factores humanos y sociales, y generalmente se requiere volver a entrenar la IA para que comprenda adecuadamente un dominio tan específico como el desarrollo de software. La mayoría de estas herramientas inteligentes se entrenan utilizando corpus genéricos, como la Wikipedia, y, por lo tanto, no tienen conocimiento específico sobre temas de desarrollo.
En resumen, la Ingeniería de Software desempeña un papel esencial en el desarrollo de aplicaciones de Inteligencia Artificial. Ambas disciplinas se benefician mutuamente, y seguir los principios de la Ingeniería de Software puede mejorar la calidad y el rendimiento de la IA
Image by vectorjuice on Freepik