Frederick P. Brooks, Jr. de la
Universidad de Carolina del Norte en Chapel Hill,
no hay un único desarrollo en tecnología o técnica de gestión, lo que de por sí promete incluso una mejora en el orden de magnitud dentro de una década en la productividad, la fiabilidad, la simplicidad.
toda construcción de software implica tareas esenciales, la concepción de las complejas estructuras conceptuales que componen la entidad de software abstracto, y tareas accidentales, la representación de estas entidades abstractas en lenguajes de programación y la asignación de estas lenguas en la máquina, dentro de las limitaciones de espacio y velocidad.
La mayoría de los grandes logros pasados en software de productividad han venido de eliminar las barreras artificiales que han realizado las tareas accidentales excesivamente duros, tales como severas limitaciones de hardware, los lenguajes de programación torpe, falta de tiempo de máquina. ¿cuánto de lo que los ingenieros de software que ahora no se dedica todavía a la accidental, en contraposición a la esencial?menos es más que 9/10 de todos los esfuerzos, la reducción de todas las actividades accidentales a tiempo cero no dará un orden de magnitud de mejora.
Por lo tanto, parece que ha llegado el momento de abordar los elementos esenciales de la tarea del programa, aquellos interesados en construir estructuras conceptuales abstractas de gran complejidad. Sugiero:
• Explotar el mercado masivo para evitar la construcción de lo que se puede comprar.
• Uso de prototipado rápido como parte de una iteracción planificada en el establecimiento de
requisitos de software.
• software de crecer orgánicamente, añadiendo más y más funciones a medida que se
ejecutan los sistemas, usado y probado.
• Identificación y desarrollo de los grandes diseñadores conceptuales de las nuevas generaciones.
Introducción
De todos los monstruos que llenan las pesadillas de nuestro folklore, ninguno aterran más de hombres lobo, porque se transforman de forma inesperada desde la conocida en horrores.Para estos, buscamos balas de plata que puede mágicamente los entierre.
Reproducido de: Frederick P. Brooks, The Mythical Man-Month, edición aniversario con 4 nuevos capítulos, Addison-Wesley (1995), reimpreso de las actuaciones de la IFIP Décima Conferencia informática mundial, H.-J. Kugler, ed., Elsevier Science B.V., Amsterdam, NL (1986) pp. 1069-76.
F. Brooks: No Silver Bullet-Esencia y accidente en ingeniería del software (1986) 2
El conocido proyecto de software tiene algo de este personaje (al menos según lo visto por el non-technical manager), generalmente inocentes y sencillas, pero capaz de convertirse en un monstruo de las planificaciones perdidas, fundido, presupuestos y productos defectuosos. Así Oímos gritos desesperados por una bala de plata, algo para hacer que los costos de software caer tan rápidamente como los costes de hardware del equipo.
Pero, al mirar el horizonte de una década, por lo tanto, no vemos ninguna bala de plata. No hay un único desarrollo en tecnología o técnica de gestión, lo que de por sí promete incluso un orden de magnitud de mejora en la productividad, la fiabilidad, la simplicidad. En este capítulo trataremos de ver por qué, sino de examinar tanto la naturaleza del problema de software y las propiedades de las balas propuestos.
El escepticismo no es pesimismo, sin embargo. Aunque no vemos avances sorprendentes y, de hecho, creemos que este es incompatible con la naturaleza del software, muchas innovaciones alentadoras están en curso. Un disciplinado y coherente para desarrollar, difundir y explotar ellos deben ciertamente producen una mejora en el orden de magnitud. No hay ningún camino real, pero hay un camino.
El primer paso hacia el manejo de la enfermedad fue la sustitución del demonio teorías y humores teorías por el germen de la teoría. Ese mismo paso, el comienzo de la esperanza en sí mismo todas las esperanzas frustradas de soluciones mágicas. Los trabajadores dijeron que el progreso sería gradual, con gran esfuerzo, y que una persistente, incesante atención tendría que ser pagado a una disciplina de limpieza. Es lo mismo con la ingeniería del software hoy en día.
¿Tiene que ser duro? - Dificultades esenciales
No sólo no hay balas de plata ahora a la vista, la propia naturaleza del software hace improbable que habrá algún tipo de invenciones que no hará por software de productividad,fiabilidad y simplicidad lo electrónica, transistores, y la integración a gran escala hizo por el hardware informático. No podemos esperar que nunca ver doble gana cada dos años.
En primer lugar, debemos observar que la anomalía no es que el software es tan lento el progreso sino que el hardware del equipo progreso es tan rápido. Ninguna otra tecnología desde la civilización empezó ha visto seis órdenes de magnitud a la relación precio- rendimiento ganancia en 30 años. En ninguna otra tecnología puede uno elegir tomar la ganancia en rendimiento mejorado o a costes reducidos. Estas ganancias fluyen desde la transformación de la fabricación de equipo de una industria de ensamblaje en un proceso industrial.
Segundo, para ver qué tipo de avances podemos esperar en tecnología de software,examinemos sus dificultades. Siguiendo a Aristóteles, yo dividirlos en esencia -las dificultades inherentes a la naturaleza del software-y- accidentes esas dificultades que hoy asistir a su producción, pero que no son inherentes.
Los accidentes que describo en la siguiente sección. Primero consideremos la esencia.
La esencia de una entidad de software es una construcción de conceptos interrelacionados: conjuntos de datos, relaciones entre elementos de datos, algoritmos e invocaciones de funciones. Esta esencia es abstracto, en que la construcción conceptual es el mismo bajo diferentes representaciones. Sin embargo, es altamente precisos y detallados.
Creo que la parte difícil de construir software es la especificación, el diseño y la comprobación de esta construcción conceptual, no el trabajo de representarlo y de probar la fidelidad de la representación. Todavía podemos hacer errores de sintaxis, para estar seguro; pero son fuzz frente a los errores conceptuales en la mayoría de los sistemas.
F. Brooks: No Silver Bullet-Esencia y accidente en ingeniería del software (1986) 3
Si esto es cierto, la construcción de software siempre será difícil. No es inherentemente
ninguna bala de plata.
Consideremos las propiedades inherentes de esta esencia irreductible de modernos sistemas
de software: la complejidad, la conformidad, la mutabilidad y la invisibilidad.
No hay comentarios:
Publicar un comentario