viernes, marzo 07, 2008

Factoría de Software no es solo outsourcing

Este comentario está motivado por las reflexiones de Mancarf, que conocí a propósito de un comentario suyo en otra entrada anterior, no del todo relacionada con lo que vamos a conversar. Tratando de conocer a quien efectuara un comentario a una entrada mía sobre factorías de software, entré a sus propias ideas sobre este tema. Manuel pone el acento, hasta donde leí (me falta completar la lectura), en la relación entre las factorías y el outsourcing. Más de una vez me pareció que era necesario aclarar este punto, que creo que está confuso. Aunque mejor es decir que se trata de una ambiguedad; Que el outsourcing se base en general en la idea de factorías, es una consecuencia. Estoy seguro que Manuel comparte este punto de vista también...

La idea básica que está detrás de la factoría, es la de construír el software de una manera análoga a como se construye un producto en la industria. Las empresas de manufacturas tiene una larga y madura experiencia en cómo producir, partiendo de patrones comunes, elaborando kits de componentes, reutilizando partes, estandarizándolas para que un proveedor pueda entregarlas, definiendo mediciones de tiempos, entre muchas técnicas; y ésto tanto en la fase de diseño y planificación de una nueva línea, como en la producción en masa del producto definido. Y lo mismo sucede con los proyectos de ingeniería que aplican procedimientos y componentes bien definidos, para generar un producto cuasi único, tal como un puente, un edificio, un barco.
Así, cuando los precursores hablaron de fábricas de software, pensaban en estas similitudes: en la mejora de cada aspecto de la construcción de software, para lograr procesos repetibles, medibles, usando componentes o patrones reutilizables, de tal forma que el proceso sea confiable, y económico. En su primera época, el interés estaba enfocado en el desarrollo propio, en grandes empresas o instituciones. Sólo ha evolucionado hacia una cercanía con el outsourcing en años más o menos recientes, en la medida que India, Irlanda, Brasil, Europa del Este y otros, pudieron convertir el diferencial de costo en un negocio conveniente.

¿Cómo veo a las factorías de software?: En efecto, como un requisito para ofrecer outsourcing; esto puede ser un buen negocio para algunos países, o dentro de un país, aprovechando nichos de mercado. Y aquí coincido con Manuel en cuanto a los límites que este esquema puede tener.
Pero el software como construcción industrial, como factoría, es una idea más general, y es en ese terreno en el que realmente me interesa. A condición de que un emprendimiento sea del porte adecuado, tanto por tamaño, como por su perdurabilidad, probablemente la generalidad de los proyectos podrían y deberían afrontarse utilizando prácticas y recursos típicos de una factoría.
Considero que en estos casos, las investigaciones sobre Lineas de Producto Software (SPL), así como las investigaciones sobre desarrollo basado en modelos (MDD), deberían ser una fuente de recursos a ser revisada y adoptada. Dados los auxiliares metodológicos, recursos y herramientas que hoy existen desarrollados, no es viable desconocerlos y omitirlos.

Nota: He mencionado la excelente y breve descripción que hace el ESI sobre MDD, que, siendo parte de su página de presentación, tiene el riesgo de estar disponible para leer ahora, pero no dentro de un año o dos. En previsión, un pequeño resúmen existe en estas páginas.
Sobre SPL, MDD, DSM y DSL, mucho se ha apuntado aquí. Solo es cuestión de buscar.

2 comentarios:

Javier Jofre dijo...

Hola, Jorge:
Pues estoy bastante de acuerdo con lo que comentas, aunque imagino que, en general, cada uno modela algo la definición según le parece. Un ejemplo podríamos ser nosotros, que tenemos una Software Factory y un departamento de Outsourcing. La fábrica de software se basa en el uso de una metodología para el desarrollo "en origen", pero es, desde el punto de vista de un cliente de la factoría, una manera de subcontratar la fabricación de un software a medida o de un producto (en cierta forma es outsourcing). Sin embargo, en el departamento que nosotros llamamos "Outsourcing" nuestra gente se desplaza a otro centro de trabajo fuera del "origen" y se integra en un equipo "del cliente" y sigue sus órdenes y metodología.

Mancarf dijo...

Muy interesante el articulo y gracias por mencionarme.

Solo te comento que a mi me interesa bastante los temas de Lineas de Productos SW y MDA. Sobre lo primero estoy preparando un articulo.