stringtranslate.com

Sin bala de plata

" No Silver Bullet—Essence and Accident in Software Engineering " es un artículo ampliamente discutido sobre ingeniería de software escrito por el ganador del Premio Turing Fred Brooks en 1986. [1] Brooks sostiene que "no existe un desarrollo único, ni en tecnología ni en técnica de gestión, lo que por sí solo promete incluso una mejora de un orden de magnitud [diez veces] dentro de una década en productividad, confiabilidad y simplicidad". También afirma que "no podemos esperar ver ganancias dobles cada dos años" en el desarrollo de software, como ocurre en el desarrollo de hardware ( ley de Moore ).

Resumen

Brooks distingue entre dos tipos diferentes de complejidad: complejidad accidental y complejidad esencial. Esto está relacionado con la clasificación de Aristóteles . La complejidad accidental se relaciona con problemas que los ingenieros crean y pueden solucionar. Por ejemplo, los lenguajes de programación modernos han abstraído los detalles de escribir y optimizar el código ensamblador y han eliminado los retrasos causados ​​por el procesamiento por lotes , aunque persisten otras fuentes de complejidad accidental. La complejidad esencial es causada por el problema a resolver y nada puede eliminarlo; Si los usuarios quieren que un programa haga 30 cosas diferentes, entonces esas 30 cosas son esenciales y el programa debe hacer esas 30 cosas diferentes.

Brooks afirma que la complejidad accidental ha disminuido sustancialmente y que los programadores actuales dedican la mayor parte de su tiempo a abordar la complejidad esencial. Brooks sostiene que esto significa reducir todas las actividades accidentales a cero no proporcionará la misma mejora de orden de magnitud que intentar disminuir la complejidad esencial. Si bien Brooks insiste en que no existe una solución mágica , cree que una serie de innovaciones que ataquen la complejidad esencial podrían conducir a mejoras significativas. Una tecnología que había logrado mejoras significativas en el área de la complejidad accidental fue la invención de lenguajes de programación de alto nivel , como Ada . [1]

Brooks aboga por el "crecimiento" del software de forma orgánica mediante un desarrollo incremental. Sugiere diseñar e implementar los programas principales y subprogramas desde el principio y completar las subsecciones de trabajo más adelante. Él cree que programar de esta manera entusiasma a los ingenieros y proporciona un sistema que funciona en cada etapa del desarrollo.

Brooks continúa argumentando que existe una diferencia entre "buenos" diseñadores y "grandes" diseñadores. Postula que como la programación es un proceso creativo, algunos diseñadores son intrínsecamente mejores que otros. Sugiere que existe una diferencia hasta diez veces mayor entre un diseñador corriente y uno excelente. Luego aboga por tratar a los diseñadores estrella igual de bien que a los directivos estrella, proporcionándoles no sólo la misma remuneración , sino también todas las ventajas de un estatus superior: oficina grande, personal, fondos para viajes, etc.

El artículo y las reflexiones posteriores de Brooks al respecto, "'No Silver Bullet' Refired", se pueden encontrar en la edición de aniversario de The Mythical Man-Month . [2]

Conceptos relacionados

El artículo de Brooks ha sido citado en ocasiones en relación con la ley de Wirth , para argumentar que "los sistemas de software crecen más rápido en tamaño y complejidad de lo que se inventan métodos para manejar la complejidad". [3]

Ver también

Referencias

  1. ^ ab "No hay una solución milagrosa: esencia y accidente en la ingeniería de software"
  2. ^ El mes del hombre mítico, capítulo 17
  3. ^ Tim A. Majchrzak (2012). Mejora de las pruebas de software: desarrollos técnicos y organizativos. Medios de ciencia y negocios de Springer. pag. 4.ISBN​ 978-3-642-27464-0.

Otras lecturas

enlaces externos