- No hay bala de plata
-
No hay bala de plata - Esencia y Accidentes de Ingeniería de Software es un documento ampliamente debatido en la ingeniería del software escrito por Fred Brooks en 1986. Brooks afirma que "no hay desarrollo individual, ya sea técnico o de gestión de tecnología, que por sí mismo exprese promesas, incluso un orden de magnitud, diez veces, de mejora dentro de una década en la productividad, la fiabilidad, en la simplicidad. " También afirma que "no podemos esperar que lleguemos a ver ganancias dos veces cada dos años" en el desarrollo de software, como hay en el desarrollo de hardware.
Brooks hace una distinción entre la complejidad accidental y la complejidad esencial , y afirma que la mayoría de lo que los ingenieros de software ya no se dedica a lo esencial, por lo que todas las actividades de reducción de accidentes a cero no le dará un orden de magnitud de la mejora. Brooks hacer frente a los defensores de las partes esenciales del proceso del software. Mientras Brooks insiste en que no hay una bala de plata , cree que una serie de innovaciones atacar complejidad esencial podría dar lugar a (quizás más de diez veces en un período de diez años), mejoras significativas.
El artículo, hay reflexiones propias de Brooks entre una de ellas, "No hay plata 'Bullet refired", "se puede encontrar en la edición aniversario de El mítico hombre-mes.
El argumento
En el corazón del argumento es la distinción entre la complejidad accidental y la complejidad esencial - accidental. complejidad se refiere a los problemas que creamos por nosotros mismos y pueden ser fijos, por ejemplo, los detalles de la escritura y la optimización de montaje de código o los retrasos causados por el procesamiento por lotes . complejidad esencial es causada por el problema a ser resuelto, y nada lo puede quitar - si los usuarios quieren un programa para hacer 30 cosas diferentes, entonces esos 30 cosas son esenciales y el programa debe hacer esas 30 cosas diferentes.
Brooks afirma que hemos limpiado la mayor parte de la complejidad accidental, y los programadores de hoy en día pasan la mayor parte de su tiempo frente a la complejidad esencial. Una tecnología que ha hecho una mejora significativa en el ámbito de la complejidad accidental fue la invención de lenguajes de alto nivel , como Fortran. Hoy en día los idiomas, tales como C , C + + ,C # y Java , se consideran mejoras, pero no del mismo orden de magnitud .
Brooks aboga por la "creciente" de software orgánicamente a través del desarrollo incremental. Se sugiere la elaboración y aplicación de las principales y subprogramas desde el principio, tomando el lugar de trabajo de la sub-secciones posteriores. Él cree que la programación de esta manera estimula a los ingenieros y proporciona un sistema de trabajo en cada etapa de desarrollo. (Esta idea puede ser visto como un precursor del desarrollo ágil de software .)
Brooks va a argumentar que existe una diferencia entre "buenos" los diseñadores y diseñadores de "grande". Se postula que la programación es un proceso creativo, algunos diseñadores son intrínsecamente mejores que otros. Él sugiere que hay tanto como diez veces la diferencia entre un diseño común y una grande. A continuación, el tratamiento de los defensores de los diseñadores estrella igualmente bien como administradores de estrellas, que ofrece no sólo con ellos la igualdad de remuneración, sino también todos los beneficios de un estatus más alto - gran oficina, el personal, los fondos para viajes, etc
Wikimedia foundation. 2010.