martes, 4 de septiembre de 2012

NO SILER BULLET

"No hay balas de plata Esencia y Accidentes de la Ingeniería del Software"
("No Silver Bullet — Essence and Accidents of Software Engineering")

Es un documento ampliamente discutido sobre ingeniería del software escrito por Fred Brooks en 1986. Brooks argumenta que "no hay un simple desarrollo en tecnología o técnica de gestión, que por sí solo prometa incluso una mejora en la productividad, fiabilidad, simplicidad, en un orden de magnitud [por diez] dentro de una década". También afirma que, en el desarrollo de software, "no podemos esperar siquiera ver una ganancia del doble cada dos años", como la que hay en el desarrollo del hardware.
Brooks hace una distinción entre la complejidad accidental y la complejidad esencial y afirma que la mayoría de lo que ahora hacen los ingenieros de software está dedicado a lo esencial, así que reducir todas las actividades accidentales a cero no dará una mejora de un orden de magnitud. Brooks aboga por abordar las partes esenciales del proceso de software. Mientras que Brooks insiste que no hay ninguna bala de plata, él cree una serie de innovaciones atacacando la complejidad esencial podría conducir a importantes mejoras (tal vez mayor que diez veces en un período de diez años).


 Es la distinción entre la complejidad accidental y la complejidad esencial. La complejidad accidental se refiere a los problemas que creamos nosotros mismos y que pueden coregirse; por ejemplo, los detalles de escribir y optimizar de código en lenguaje ensamblador o los retrasos causados por el procesamiento por lotes. La complejidad esencial es causada por el problema a resolver, y nada puede removerla; Si el usuario desea un programa para hacer 30 cosas diferentes, entonces esas 30 cosas son esenciales y el programa debe hacer esas 30 cosas diferentes.


Brooks afirma que hemos limpiado gran parte de la complejidad accidental, y los programadores de hoy pasan la mayor parte de su tiempo a abordar la complejidad esencial. Una tecnología, que había hecho una mejora significativa en el área de complejidad accidental fue la invención de lenguajes de programación de alto nivel, como Fortran en ese tiempo. Lenguajes de hoy, como C, C++, C# y Java, son considerados como mejoras, pero no del mismo orden de magnitud.
Brooks aboga por el "crecimiento" orgánico del software a través del desarrollo incremental. Sugiere la elaboración y la implementación del programa principal y los subprogramas justo al principio, llenando las subsecciones de trabajo más tarde. Brooks cree que esta forma de programación apasiona a los ingenieros y proporciona un sistema de trabajo en cada etapa de desarrollo.

COMENTARIO:

Brooks argumenta que hay una diferencia entre diseñadores "buenos" y "magníficos". Postula que, como la programación es un proceso creativo, algunos diseñadores son intrínsecamente mejores que otros. Sugiere que hay tanto como una diferencia de diez veces entre un diseñador común y un magnífico. Es un personaje que aboga por la igualdad en los programadores de ingenieria de software el dice que no hay programador malo, que hay que reconocer el esfuerzo y el trabajo de cada persona.
No olvidemos esas palabras y sigamos poniendole empeño a nuestros trabajos.

No hay comentarios:

Publicar un comentario