Fábricas de Software

Fábricas de Software
Información sobre la plantilla
Fábricas de software.jpg
Concepto:Analogía que trata de expresar la necesidad de copiar las buenas prácticas de las fábricas que producen bienes para tratar de desarrollar software con un proceso cada vez me nos artesanal.

Fábricas de Software. Los profesionales que laboran en el área de software y aquellos que algo conocen sobre el tema, saben que el software no se fabrica, como ocurre con los computadores, los autos o las camisas, sino que el software se desarrolla, es decir que, a diferencia de los computadores, que requieren el diseño previo de un prototipo para luego pasar a implementar una línea de producción en masa, en el caso del software hay que definir los requerimientos, hacer el análisis, el diseño, la construcción, las pruebas y la instalación o despliegue, debido a que no hay una producción en masa propiamente dicha. En el caso de los computadores, cuando hay una falla en el producto, hay que realizar ajustes en el diseño y en la línea de producción. En el caso del software, de existir una falla habrá que efectuar ajustes en las etapas pertinentes del desarrollo del software antes mencionadas, en un proceso que resulta normalmente menos complicado y costoso que en el primer proceso.

Las primeras investigaciones dieron como resultado que en 1998 se ponga en marcha una fábrica académica de software, como parte de un taller de ingeniería de software en la Pontificia Universidad Católica de Chile.

En el 2007, en la Universidad de Lima se realizaron estudios sobre el concepto de fábrica de software, así como su adaptación para darle un uso académico. Este mismo año se intercambiaron ideas con los gerentes de diversas fábricas de Lima y los primeros meses del 2008 se realizaron focus group a los que asistieron los representantes de las fábricas de software más importantes del país.

El principal resultado de esta investigación permitió establecer los requerimientos de una fábrica académica de software para la Facultad de Ingeniería de Sistemas de la Universidad de Lima.

Conceptos sobre fábrica de software.

Como se mencionó líneas arriba, el software no se fabrica, y la expresión “fábrica de software” es una analogía que trata de expresar la necesidad de copiar las buenas prácticas de las fábricas que producen bienes para tratar de desarrollar software con un proceso cada vez menos artesanal.

Este concepto es antiguo y nuevo a la vez. Es antiguo porque el vocablo expresión “fábrica de software” apareció en 1968; sin embargo, al mismo tiempo es nuevo, pues su significado ha ido cambiando con el progreso de la tecnología y la aparición de nuevas áreas de conocimiento, por ejemplo: “control de calidad”, “marcos de las mejores prácticas para la gobernabilidad de la tecnología de información”, “gestión de proyectos”, entre otras.

No hay una definición compartida por todos los entendidos sobre lo que es fábrica de software; sin embargo, parece que todos están de acuerdo respecto a que este concepto incluye el establecimiento de procesos definidos con el objeto de acelerar el desarrollo reusando componentes para mejorar la calidad del software producido. La meta en todos los casos es la maximización de la efectividad de recursos, la estimación precisa y la minimización del tiempo y los costos, así como la mejora continua de la calidad de sus procesos y de sus productos.

Posiblemente, la gran diferencia de opinión entre los entendidos en el tema se deba a que algunos consideran que una fábrica de software debe ser especializada en el desarrollo de un tipo particular de software y, por lo tanto, su plataforma de desarrollo y sus procedimientos cambian muy poco. Otra corriente de pensamiento, compartida por no pocos profesionales, no establece tal limitación, permitiendo contar con fábricas de software con varias líneas de producción para desarrollar cualquier tipo de producto con una gran flexibilidad de plataforma y variantes de sus procedimientos.

En cualquier caso, cada línea de producción de una fábrica de software contiene tres ideas claves: un esquema de fabricación, que es equivalente a un proceso o a una receta para desarrollar software; los elementos de su construcción, que son bloques de construcción prehechos para aprovechar las ventajas de reúso, y un ambiente de desarrollo, que son las plataformas tanto de software como de hardware utilizadas para desarrollar dicho software.

Historia de la fábrica de software.

La expresión “fábrica de software” aparece por primera vez en una propuesta presentada por Robert William Bemer en el congreso de la International Federation of Information Processing (IFIP) en 1968. Bemer (1920-2004) fue un informático conocido por sus trabajos en IBM durante los últimos años de la década de 1950 y principios de la de 1960; antes había laborado para Rand Corporation y desde 1974 trabajó en Honeywell. Coincidiendo con el boom de la informática de consumo en los años sesenta, Bemer inventó, como parte del código ASCII, en cuya comisión de definición participó, la tecla Esc, más conocida como Escape, que sirve Fábrica académica de software para detener o cancelar la mayoría de los programas o aplicaciones informáticas. Por esta razón se le conoce a veces como el padre del ASCII. Bemer, no obstante, es más conocido por otras contribuciones al mundo de la informática. En 1959 participó en el desarrollo del lenguaje Cobol.

Este ingeniero también fue el primero en alertar sobre las consecuencias del efecto del año 2000, pero nadie lo tomó en serio. En 1969, Hitachi instaló la primera fábrica de software; Rand Corporation instaló la segunda en 1976, luego lo hicieron NEC en 1976, Toshiba en 1977, Fujitsu en 1979, NTT en 1985 y Mitsubishi en 1987.

En la década de 1990 aparecen fábricas basadas en entornos de desarrollo integrados, en componentes, en la madurez de procesos, en la reutilización y re novación de software, y enfocadas a otras técnicas de gestión de la calidad. A partir del 2000, utilizando las últimas áreas de conocimientos, aparecen las fábricas basadas en componentes, modelos y líneas de productos.

En nuestro país hay algunos esfuerzos para mejorar la calidad de los procesos para desarrollar software en las más importantes empresas dedicadas a esta labor. Las más notables son IBM, que cuenta con una certificación CMMI a nivel 5 corporativo, el Banco de Crédito del Perú (CMMI nivel 3), GMD (CMMI nivel 3), CosapiSoft (CMMI nivel 3). Mientras importantes empresas como Novatronic, Sinopsis, y Avatar, entre otras, están realizando la mejora de sus procesos para desarrollar software.

Características de los procesos de la fábrica de software.

Los procesos de una fábrica de software tienen las siguientes características: configuran, adaptan y ensamblan rápidamente componentes; usan patrones de industrialización, estándares, actividades repetibles y automatizables; miden el desempeño y la productividad de las personas que participan en el desarrollo del software; utilizan la planificación para controlar el desarrollo acelerado del software; y sus actividades son establecidas con criterios de rentabilidad, tratando de obtener presupuestos y plazos predecibles, así como una calidad aceptada en el ámbito mundial.

Construir un producto software utilizando una fábrica de software implica las siguientes actividades: establecer los requerimientos del producto en coordinación con el usuario, realizar un análisis para indicar qué hará el producto, y luego especificarlo formalmente para pasar a diseñarlo y a establecer los componentes que se pueden volver a usar en su construcción. Terminado el diseño se puede pasar a la implementación, despliegue y prueba del producto.

Conclusión sobre la fábrica de software.

Como resultado del primer objetivo de la investigación: definir y entender el concepto de fábrica de software, se puede concluir que la expresión “fábrica de software” es una analogía que trata de enfatizar las ventajas de un nuevo enfoque para desarrollar software. Las fábricas de software seleccionan componentes, los ajustan, los adaptan, los amplían y ensamblan dichos componentes; intentan aprender de otras industrias que encaran problemas similares y aplican patrones específicos de automatización; vuelven más rápida, barata y fácil la construcción de aplicaciones y desarrollan productos de software con rapidez y calidad a través de procesos conocidos, repetibles y gerenciables, y, sobre todo, mejorables continuamente.

Fuente.

  • Carranzana Avalos, Zalatiel: Fábricas académicas de software. Universidad de Lima,2008.