Introducción
Una futura reducción a los costos de software parece ser un poco difícil, ya que a mi parecer podría haber pocos inventos que puedan mejorar la productividad y al mismo tiempo otorgar mayor confianza y simplicidad en el software, como lo hicieron pasados inventos como transistores y circuitos integrados en los componentes electrónicos (hardware) de las computadoras.
Y es que al parecer el progreso del software no es lento, si no que el progreso que se ha hecho en el hardware de la computadora es muy rápido, ha crecido exponencialmente tanto en tecnología como en ganancias, y a reducido sus costos más que cualquier otra tecnología.
Dificultades esenciales
Aunado a la complejidad de esto, se generan dificultades como la comunicación entre miembros de proyectos , fallas y retrasos en el producto, estas dificultades podrían tener solución con equipos mejor estructurados y con mayor organización.
Hablando de la conformidad, pienso que el diseño de las interfaces es un proceso complejo también, ya que cada interfaz debe de conformar tanto como a los ingenieros del producto como al usuario, de nada serviría un programa muy bien estructurado y funcional que tenga una interfaz poco intuitiva y difícil de utilizar. Por ello, gran complejidad viene de la conformación de otras interfaces.
La mutabilidad del software es otros de los procesos que lo hacen complicados, ya los productos necesita mantenerse actualizados para mejorar su funcionamiento, servicio y rendimiento. ¿Cuántas veces no hemos visto nuevas actualizaciones para un SO como Windows?
Avances que resolvieron dificultades accidentales
Los últimos avances que resolvieron dificultades accidentales del software me parece que el más importante es el lenguaje de alto nivel. El lenguaje de alto nivel a venido a revolucionar la forma de programar, así como a facilitar la vida para los programadores e ingenieros en software.
Esperanzas de plata
Otra de las posibles balas de plata mencionadas por Frederick Brooks es la verificación de software, estoy de acuerdo en que ayudaría en la corrección de errores y así se evitaría tanta mutabilidad de software, pero esta posible bala no terminaría con el problema que es el diseño y estructuración del software que, desde mi punto de vista, es lo más complicado, ni tampoco ayudaría en los procesos de producción, ahorro de tiempo y de materia prima. Con respecto a el desarrollo de nuevas herramientas y de entornos pienso que esto vendrá a beneficiar un poco de el proceso de la producción de software, con editores más inteligentes y más capaces, pero esto no llegará a resolver muchos problemas.
Los ataques prometedores en la esencia conceptual
Acerca de requerimientos, refinamiento y la rápida creación de software pienso que es uno de los puntos más importantes, el desarrollo de sistemas que te ayuden a planear y crear prototipos de sistemas será uno de los golpes más duros contra los problemas de esencia. Los sistemas prototipo ayudan muchísimo en la planificación del software y también en el proceso de desarrollo de software y ayudan a realizar la estructura conceptual del problema. Otro de los puntos más importantes me parece que es la inversión para generar grandes diseñadores de software. El diseño es la parte medular de el proceso de desarrollo en el software y es difícil de corregir en el futuro algún error de lógica en el diseño.
Conclusión
Pienso que las llamadas "balas de plata" son una gran opción para mejorar el proceso de desarrollo de software, pero al mismo tiempo pienso que son ideas que tardarán algunos años en desarrollarse de buena forma, por lo tanto tenemos que lidiar con la complejidad que es la producción de software computacional.
Bibliografía
Brooks, Frederick P., "No Silver Bullet: Essence and Accidents of Software Engineering" Computer, Vol. 20, No. 4 (April 1987) pp. 10-19.
No hay comentarios:
Publicar un comentario