¿Por qué el desarrollo ágil de software no se practica en los programas de pregrado de CS en los Estados Unidos?

Los profesores son informáticos que a veces escriben código para respaldar su investigación, no trabajan en la industria donde lo hacen a diario y el proceso es más crítico debido a órdenes de magnitud de software más grandes y duraderas. Algunos también sienten que la universidad no es capacitación vocacional y evitan los problemas prácticos.

Agile tiene muchas realizaciones, donde Test Driven Development es especialmente relevante para proyectos individuales independientemente de su tamaño. La tasa de aprobación en las clases que involucran codificación (como se deben enseñar las Estructuras de datos) sería mayor si alguien animara a los estudiantes a usarlo porque los haría pensar en casos límite y hacer que funcionen correctamente.

Ese estímulo podría manejarse con scripts que miren los repositorios de código de los estudiantes para implementaciones progresivas con conjuntos de casos de prueba en expansión, y los estudiantes fallarían si no aplicaran la metodología.

En mi escuela fallamos si no automatizamos nuestras compilaciones y usamos un software de control de revisión porque sin ellas nuestro código no se ejecutaría contra los conjuntos de pruebas desarrollados por el asistente de enseñanza responsables de la mayor parte de nuestra calificación. Eso produjo graduados que podían escribir software, y algo similar relacionado con el proceso del software crearía estudiantes de matrícula aún mejores.

Porque Agile es un sistema de gestión de equipo, no un sistema de programación. Un sistema de gestión particularmente adecuado para el desarrollo de software, tal vez, debe organizarse principalmente para equipos que trabajan en un solo proyecto. Y los estudiantes de CS rara vez se organizan en equipos que dedican una jornada laboral completa a un solo proyecto durante, por ejemplo, dos meses o más. Por lo tanto, hay poca necesidad u oportunidad para Agile.

Porque la informática no tiene nada que ver con las diversas formas que los programadores eligen usar para organizar sus esfuerzos. Realmente ni siquiera están relacionados. Ágil merece tal vez una mención, y posiblemente una conferencia en una clase de ingeniería de software, eso es todo.