Articulo de referencia

No existe una solución mágica.

" No Silver Bullet—Essence and Accident in Software Engineering " es un artículo sobre ingeniería de software escrito por Fred Brooks en 1986. [ 1 ] Brooks argumenta que "no hay...

" No Silver Bullet—Essence and Accident in Software Engineering " es un artículo sobre ingeniería de software escrito por Fred Brooks en 1986. [ 1 ] Brooks argumenta que "no hay un solo desarrollo, ni en tecnología ni en técnica de gestión, que por sí solo prometa siquiera una mejora de un orden de magnitud [diez veces] en productividad, fiabilidad y simplicidad en una década". También afirma que "no podemos esperar ver ganancias del doble cada dos años" en el desarrollo de software, como sucede en el desarrollo de hardware ( ley de Moore ).

Resumen

Brooks distingue entre dos tipos diferentes de complejidad: complejidad accidental y complejidad esencial . Esto se relaciona con la clasificación de Aristóteles . La complejidad accidental se refiere a problemas que los ingenieros crean y pueden solucionar. Por ejemplo, los lenguajes de programación modernos han abstraído los detalles de la escritura y optimización del código fuente en lenguaje ensamblador y han eliminado las demoras causadas 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 eliminarla; si los usuarios quieren que un programa haga 30 cosas diferentes, entonces esas 30 cosas son esenciales y el programa debe hacerlas.

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 argumenta que esto significa que reducir a cero todas las actividades accidentales no producirá una mejora del mismo 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 aborden la complejidad esencial podrían conducir a mejoras significativas. Una tecnología que ha logrado una mejora significativa 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 desarrollo orgánico e incremental del software. Sugiere diseñar e implementar el programa principal y los subprogramas desde el principio, completando posteriormente las subsecciones funcionales. Cree que programar de esta manera motiva a los ingenieros y proporciona un sistema funcional en cada etapa del desarrollo.

Brooks argumenta que existe una diferencia entre diseñadores "buenos" y "excelentes". Postula que, dado que la programación es un proceso creativo, algunos diseñadores son inherentemente mejores que otros. Sugiere que la diferencia entre un diseñador común y uno excepcional puede ser hasta diez veces mayor. A continuación, aboga por tratar a los diseñadores estrella con el mismo respeto que a los gerentes estrella, brindándoles no solo la misma remuneración , sino también todas las ventajas de un estatus superior: una oficina amplia, 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 ]

El artículo de Brooks se ha citado a veces 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 ]

Véase también

Referencias

  1. 1 2 "No existe una solución mágica: esencia y casualidad en la ingeniería de software"
  2. El hombre-mes mítico , capítulo 17
  3. Tim A. Majchrzak (2012). Mejora de las pruebas de software: Desarrollos técnicos y organizativos . Springer Science & Business Media. pág.  4. ISBN 978-3-642-27464-0.

Lecturas adicionales

  • Brooks, Frederick P. (1986). "No hay una solución mágica: esencia y casualidad en la ingeniería de software" (PDF) . Actas de la Décima Conferencia Mundial de Computación de la IFIP : 1069–1076 .
  • (Abril de 1987). "No hay una solución mágica: esencia y casualidad en la ingeniería de software". IEEE Computer . 20 (4): 10– 19. CiteSeerX 10.1.1.117.315 . doi : 10.1109/MC.1987.1663532 . S2CID 372277 .  
  • (1975). El hombre-mes mítico . Addison-Wesley. ISBN 978-0-201-00650-6.
  • (1995). «Capítulo 16. No existe una solución mágica: esencia y casualidad en la ingeniería de software». El hombre-mes mítico (Edición de aniversario con cuatro capítulos nuevos  ). Addison-Wesley. ISBN 978-0-201-83595-3.
  • (1995). «Capítulo 17. La idea de que "no hay solución mágica" se perfecciona». El hombre-mes mítico (Edición de aniversario con cuatro capítulos nuevos  ). Addison-Wesley. ISBN 978-0-201-83595-3.