la oportunidad de las fábricas de software

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 Página 1 de 6 La oportunidad de las fábricas de software 08/03/2006 http://www.rosenblueth.mx/InterFAR/Vol1Num3/doc/Vol1Num3-50.htm

Upload: jacobo-hernandez-v

Post on 11-Jun-2015

2.063 views

Category:

Documents


1 download

DESCRIPTION

EJ Hernández Valdelamar. InterFAR. 2002

TRANSCRIPT

Page 1: La oportunidad de las fábricas de software

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

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

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

Page 2: La oportunidad de las fábricas de software

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,

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

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

Page 3: La oportunidad de las fábricas de software

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 Industrializada (Japón)

(II) Fábrica Genérica (Europa)

(III) Fábrica de componentes basada en la experiencia (EU)

(IV) Organización Madura de Software (EU)

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

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

Page 4: La oportunidad de las fábricas de software

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 quepermitan 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?)

Desarrollada por

Toshiba Proyecto Eureka Software engineering lab.

US DoD (basada en CMM)

Objetivo Aumentar la calidad y productividad en el desarrollo y el mantenimiento.

Ambientes de desarrollo de software integrados hechos a la medida.

Mejor efectividad en el proceso, menos trabajo y más reuso.

Un proceso efectivo, predecible, y suseptible de mejora.

Estrategia Infrastructura Combinación de infraestructura física, organizacional y basada en herramientas

Basada en herramientas Estandardización de componentes y homogeneización de componentes y procesos.

Continua Mejora basada en la experiencia y automatización flexible.

Incremental Mejora basada en escalar niveles de madurez en el proceso

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

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

Page 5: La oportunidad de las fábricas de software

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

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

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

Page 6: La oportunidad de las fábricas de software

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 quepermitan 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.

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

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