Você está na página 1de 6

La oportunidad de las fábricas de software Página 1 de 6

LA OPORTUNIDAD DE LAS FÁBRICAS DE SOFTWARE

Eugenio Jacobo Hernández Valdelamar *

Fundación Arturo Rosenblueth

INTRODUCCIÓN

La producción de software es una tarea compleja que presenta mucha


incertidumbre durante su realización. Parte de la incertidumbre se da por la forma
en que el software se produce, que va desde programadores solitarios, pasando por
equipos de programadores, grupos de trabajo formados por especialistas en
desarrollo de software y grupos interdisciplinarios.

Parte de la solución ha sido el desarrollo de metodologías que norman el proceso


de desarrollo; sin embargo, el problema es la adopción de dichas metodologías por
las empresas y los equipos de trabajo. Si a esto se le suman las clásicas carreras,
presiones y estimaciones inciertas con respecto a un proyecto, la cuestión no se ve
muy halagadora.

Para mejorar la productividad y calidad del software producido por las empresas,
los ingenieros de software han trabajado por más de 30 años buscando soluciones
en estos aspectos, una de las cuales es la idea de fábrica de software.

CONCEPTOS Y ANTECEDENTES SOBRE FÁBRICAS DE SOFTWARE

A fines de los años 1960s e inicios de los 1970s, surge en la industria del software
el concepto de fábrica de software, como una respuesta a la necesidad de aliviar la
incertidumbre que se tenía en el desarrollo de proyectos de software en aspectos
como:

1. Confiabilidad de los productos.


2. Mantener en presupuesto y calendario los proyectos de desarrollo de
software.
3. Falta de una definición y seguimiento adecuado a los procesos de producción,
así como un medio efectivo de medir su desempeño y la productividad de las
personas que lo ejecutan.
4. Falta de estandarización en los métodos y herramientas empleados en los
procesos. Esto provocaba reinventar el “hilo negro” cada vez, además del nulo

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006
La oportunidad de las fábricas de software Página 2 de 6

reuso de los productos que los mismos procesos de producción generan.


5. Falta de herramientas para hacer rastreables los productos (requerimientos,
especificaciones de productos, etc.) que generan los procesos.

El primer antecedente de una fábrica de software lo encontramos en 1968 cuando


General Electric desarrollo una fábrica de software para mejorar la productividad de
sus programadores mediante el uso de herramientas estandarizadas, una interfaz
gráfica de usuario y una base de datos con datos financieros y de control de la
administración.

El concepto de fábrica de software, fue originalmente propuesto para mejorar la


productividad del desarrollo de software hacia:

1. herramientas estandarizadas
2. métodos
3. componentes reutilizables

La necesidad de una estructura y de prácticas de software predecibles a llevado a


muchos a buscar la forma de imponer rigor y disciplina en sus operaciones para
desarrollar software. De esta manera ha crecido el interés en introducir algunos
métodos que son usados en fábricas "convencionales", para el control de desarrollo
de software. Claramente, la esperanza es que al imitar a la fábrica, la calidad y
productividad del desarrollo de software se aproximara a los otros elementos del
negocio.

COMPONENTES ESTRUCTURALES DE LA FÁBRICA

Los componentes estructurales son aquellos elementos fundamentales sobre los


cuales se basa una empresa de diseño y construcción de software a la medida. Hay
tres tipos de componentes estructurales que conforman una empresa:

1. OPERACIÓN

1. Planta física. Infraestructura de soporte (mobiliario, equipo, horarios, etc.) que


contenga espacios de trabajo que garanticen las condiciones necesarias para
que las personas puedan desarrollar su trabajo.
2. Administración de la configuración. Herramientas y repositorio que contenga
los productos que se generan en el proceso de producción así como un
procedimiento de administración claramente definido.
3. Librerías de componentes. El reuso es una forma de incrementar la
confiabilidad, disminuir los tiempos y costo de desarrollo. Por tal razón se
debe habilitar un repositorio donde se tengan claramente identificados,
accesibles y disponibles cualquier componente reusable (diseños, procesos,

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006
La oportunidad de las fábricas de software Página 3 de 6

programas fuente, datos, planes de proyectos, bases de datos, etc.)


4. Base de conocimientos. Es necesario contar con una librería técnica donde se
registren todo incidente técnico relacionado con los procesos de producción,
las herramientas de desarrollo o el dominio de especialidad del producto.

2. CONTROL

1. Estimación y Planeación. Es indispensable contar con técnicas y métodos


para poder estimar, planear y medir el avance de los proyectos.
2. Administración de Procesos. Se necesitan:
1. Procesos de producción claramente definidos de tal forma que puedan
ser rastreables y medidos a fin de ser mejorados.
2. Metodologías, técnicas y herramientas para llevar a cabo los procesos
de producción.
3. Aseguramiento de calidad y productividad. Se necesitan:
1. Funciones de aseguramiento de calidad de tal forma que los productos
cumplan con los requerimientos solicitados por el cliente.
2. Métricas claramente definidas para medir la productividad de los
procesos.
3. Métricas para medir la satisfacción del cliente.
4. Administración de costos. Es necesario contar con un sistema para medir los
costos de producción por operación, proceso, persona y proyecto.

3. DESARROLLO DE PERSONAL

1. Programas de Carrera. Es necesario definir un procedimiento que administre


el crecimiento del personal.
2. Entrenamiento. Para mejorar la productividad de las personas, es necesario
proveer y medir el entrenamiento necesario.
3. Evaluación A fin de elevar la productividad de las personas es necesario
medir en términos cualitativos y cuantitativos su desempeño dentro de los
procesos de producción.
4. Planes de Compensación. Es necesario contar con un procedimiento definido
sobre la política de compensaciones de las personas, de tal forma que
incentive el desarrollo personal de una manera sostenida.

MODELOS DE FÁBRICAS DE SOFTWARE

Existen 4 enfoques sobre las fábricas de software que resulta interesante revisar:

(I) Fábrica (II) Fábrica (III) Fábrica de (IV)


Industrializada Genérica componentes Organización
(Japón) (Europa) basada en la Madura de
experiencia Software
(EU) (EU)

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006
La oportunidad de las fábricas de software Página 4 de 6

Desarrollada Toshiba Proyecto Eureka Software US DoD


por engineering lab. (basada en
CMM)

Objetivo Aumentar la Ambientes de Mejor efectividad Un proceso


calidad y desarrollo de en el proceso, efectivo,
productividad en el software integrados menos trabajo y predecible, y
desarrollo y el hechos a la medida. más reuso. suseptible de
mantenimiento. mejora.

Estrategia Infrastructura Basada en Continua Incremental


Combinación de herramientas Mejora basada Mejora basada
infraestructura Estandardización de en la experiencia en escalar
física, componentes y y automatización niveles de
organizacional y homogeneización de flexible. madurez en el
basada en componentes y proceso
herramientas procesos.

Dichos enfoques pueden agruparse en:

1. orientados a la infraestructura (I y II)


2. orientados al desarrollo de procesos óptimos basados en la experiencia (III y
IV)

El éxito de cada modelo depende de factores diferentes:

(I) contexto cultural y laboral

(II) intervención en la estructura organizacional

(III) aprendizaje

(IV) priorización de iniciativas para su implantación y buen soporte de


infraestructura

Así que partiendo de esto ¿qué modelo es el que más conviene a las empresas
mexicanas? En los últimos años el SEI ha impulsado con éxito el SW-CMM por lo
que la documentación y la experiencia disponible, puede permitir que (IV) sea el
más viable. Sin embargo, muchas empresas pueden no tener las condiciones
idóneas para adoptar CMM rápidamente, pues el uso de normatividad y
certificaciones por lo general solo es posible implantarlo en empresas grandes (es
una cuestión de inversión).

En este sentido, algo positivo puede ser empezar por normas menos exigentes que
permitan a las empresas ganar experiencia en el proceso de adopción, y a su vez
elevar la calidad de sus productos/servicios (¿una norma mexicana?)

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006
La oportunidad de las fábricas de software Página 5 de 6

CONCLUSIONES

Producir software es una gran oportunidad de negocio. Según un reporte de


Bancomext:

1. Una industria de TIC (Tecnologías de la Información y Comunicaciones) fuerte


mejoraría sensiblemente la competitividad de México en la economía global.
2. Facilitaría la creación de una infraestructura que permita llevar los beneficios
de la economía digital a amplios sectores de la población.
3. Permitirá la participación de la industria mexicana en un mercado de servicios
de TIC valuado en más de $500,000 millones de dólares a nivel mundial.

pero:

1. El número de empresas mexicanas desarrolladoras de software a la medida,


empaquetado y aplicaciones con capacidad para competir internacionalmente,
es reducido, y no han contado con los recursos para atacar los mercados
potenciales.
2. Los procesos para el desarrollo de software y el nivel de calidad de las
empresas locales debe cumplir con certificaciones y estándares
internacionales
3. El sistema educativo no provee recursos humanos con las características
requeridas por la industria

En México hay varios intentos por establecer fábricas de software (Campeche,


Guanajuato, Puebla, etc), lo cual se trata de apoyar con el que Plan Nacional para
el Desarrollo de la Industria del Software.

Personalmente creo que existen muchos desarrolladores capaces en el país que


pueden crear buenas soluciones para las empresas, pero seguir bajo el esquema
de hacer software a la medida tal vez no sea la mejor estrategia. Basta con ver
como equipos de programadores bajo la bandera del software libre están creando
soluciones abiertas que pueden ser aprovechadas por varias empresas, y que
incluso para los más idealistas, puede ser una oportunidad de negocio.

Así, el punto es determinar de una vez por todas, un plan para el desarrollo de
productos que beneficien a las empresas sin importar el ramo, o la forma de
operación. Estos desarrollos además, no deben limitarse a empresas establecidas,
sino debe apoyarse a desarrolladores (económica y legalmente) que puedan formar
"cooperativas" o trabajar por su cuenta (¿por qué no?)

Con respecto a la educación y que no se estén generando recursos apropiados, es


bastante relativo, pues de no ser así pocas industrias tendrían personal que les
sacara el trabajo. Cierto es que hay que mejorar el nivel de preparación del

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006
La oportunidad de las fábricas de software Página 6 de 6

personal, pero si el conocimiento que adquieren tiene una caducidad, esto será
difícil y la inversión seguirá siendo alta. Debe pasarse del enfoque de usar
“codificadores” para hacer software, a usar “desarrolladores”.

Por último, el factor tecnológico es clave. Es necesario contar con herramientas que
permitan el trabajo colaborativo, y que integren los diferentes niveles de abstracción
y especificación del desarrollo. Creo que otro factor que será determinante es la
tecnología que las empresas adopten en los siguientes años, pues si se continúa
usando “tecnología cerrada” la oportunidad de crear cadenas de valor seguirá
siendo costosa.

REFERENCIAS

Software y el paradigma de la fábrica

http://www.cicese.mx/~mimunoz/tareas/ip/sfp.htm

AMITI (biblioteca)

http://www.amiti.org.mx/biblioteca.asp

Proyecto e-México

http://www.e-mexico.gob.mx

http://www.mural.com/tecnologia/articulo/192596/

* Maestro en Ciencias de la Computación por la Fundación Arturo Rosenblueth.

Actualmente se desempeña como Consultor Tecnológico y Subdirector Académico de la


Fundación Arturo Rosenblueth, desarrollando trabajos de investigación en la aplicación de
nuevas tecnologías de computo.

http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm 08/03/2006

Você também pode gostar