Como afirmaron DeMarco y Lister en Peopleware hace unos 20 años, la gran mayoría de los proyectos de software fallidos fracasan no debido a desafíos técnicos, sino a problemas sociológicos . Esto no ha cambiado en las últimas décadas, sin importar cuánto hayan mejorado nuestras herramientas.
Mala gestión, expectativas poco realistas, no conseguir a las personas adecuadas para el trabajo, y / o no dejarlos hacer su trabajo, por lo tanto, no mantenerlos; lugares de trabajo y herramientas que no son adecuados para el trabajo de desarrollo de SW; conflictos personales no manejados; la política ; Estos son solo algunos de los problemas típicos que pueden hacer que un proyecto esté condenado desde el principio.
¿Por qué escribir un buen código es más difícil?
No estoy muy convencido de que sea realmente más difícil escribir un buen código ahora que hace décadas. De hecho, en comparación con el código de máquina o el ensamblaje, todo lo que tenemos ahora en la corriente principal es mucho más fácil de manejar. Es posible que necesitemos producir más.
¿Es solo por los factores mencionados, el tiempo y la complejidad?
Sí, la complejidad alcanzable ciertamente ha aumentado (y continúa aumentando) a medida que aumenta el poder de nuestras herramientas. En otras palabras, seguimos empujando los límites. Lo que para mí se traduce de manera que es igualmente difícil resolver los mayores desafíos de hoy como lo fue hace 30 años para resolver los mayores desafíos de ese día.
OTOH ya que el campo ha crecido enormemente, ahora hay muchos más problemas "pequeños" o "conocidos" que hace 30 años. Estos problemas son técnicamente (no deberían) (ser) un desafío más, pero ... aquí ingresa la máxima anterior :-(
También el número de programadores ha crecido enormemente desde entonces. Y al menos mi percepción personal es que el nivel promedio de experiencia y conocimiento ha disminuido, simplemente porque hay muchos más jóvenes que llegan continuamente al campo que personas mayores que podrían educarlos.
¿Es que las metodologías no se practican correctamente?
En mi humilde opinión, no. DeMarco y Lister tienen algunas palabras duras sobre las metodologías big-M. Dicen que ninguna Metodología puede hacer que un proyecto tenga éxito, solo las personas del equipo pueden hacerlo. OTOH, las pequeñas metodologías que elogian están bastante cerca de lo que ahora conocemos como "ágil", que se está extendiendo ampliamente (en mi humilde opinión, por una buena razón). Sin mencionar las buenas prácticas como las pruebas unitarias y la refactorización, que hace apenas 10 años no eran ampliamente conocidas, y hoy en día incluso muchos graduados lo saben.