" No Silver Bullet " es un artículo de 1986 ampliamente discutido sobre ingeniería de software escrito por Frederick Brooks . [1] Brooks argumenta que "ninguna tecnología o técnica de gestión única tiene un método universal que aumente en un orden de magnitud la productividad, la confiabilidad y la simplicidad" (la llamada "bala de plata"). También argumenta que "no podemos esperar que las ganancias se dupliquen cada dos años" en el desarrollo de software como lo hacemos en el desarrollo de hardware.
Brooks enfatiza la diferencia entre complejidad accidental y complejidad inmanente .
Un artículo en el que Brooks da sus propias reflexiones puede encontrarse en la edición de aniversario de The Mythical Man-Month [ 2] .
Es muy importante ver la diferencia entre dificultades secundarias e inmanentes . La complejidad secundaria se refiere a los problemas que pueden eliminarse con el desarrollo de tecnología de software. La complejidad inherente es inherente a la naturaleza del software, por lo que crear sistemas de software siempre será difícil:
No solo las balas de plata no son visibles actualmente, sino que, debido a la naturaleza misma del software, es poco probable que se encuentren: no habrá invenciones que puedan afectar la productividad de la creación, la confiabilidad y la simplicidad del software en el mismo forma como la electrónica, los transistores y los circuitos integrados - en el hardware de la computadora.
Brooks argumenta que ya se han hecho los avances más significativos para deshacerse de la complejidad lateral . Entre tales logros, menciona los lenguajes de programación de alto nivel , la computación paralela y los entornos de desarrollo integrados .
Al mismo tiempo, Brooks cree que el efecto acumulativo de muchas otras mejoras útiles puede tener un aumento notable en la productividad del programador:
Si bien no vemos avances sorprendentes y, de hecho, los consideramos fuera de lugar para la naturaleza de la programación, se están produciendo muchas innovaciones alentadoras. Los esfuerzos disciplinados y constantes para desarrollarlos, difundirlos y utilizarlos pueden, de hecho, conducir a un crecimiento de un orden de magnitud. No hay camino real, pero todavía hay un camino.
Brooks enumera las tareas más importantes que pueden tener un impacto significativo en la lucha contra la complejidad del desarrollo: