ESTUDIO DE LA MADUREZ DE LA PRODUCCIÓN DE SOFTWARE EN COMPARACION CON LA PRODUCCION INDUSTRIAL Alicia Mon 1. Introducción En el presente documento se exponen los ejes centrales de una investigación que se está desarrollando sobre los criterios específicos de organización del trabajo que ordenan el Proceso Software. El trabajo busca similitudes con las formas organizativas desarrolladas por los diferentes modelos de producción industrial que puedan ayudar a organizar mejor el desarrollo. La hipótesis central de investigación plantea que el desarrollo conceptual del Proceso Software no es ajeno a la evolución de las formas de organización del trabajo en la producción industrial, de servicios o productos tangibles. Lo particular y específico en el desarrollo software se asienta en las características del producto, que genera formas organizativas específicas, aunque inmersas en los ejes organizacionales de la producción industrial en la actualidad. Es por ello que se presenta aquí una comparación entre los diferentes Modelos Industriales y el Proceso Software a fin de indagar sobre cual es la conjugación de principios que constituyen las formas de organización en el Proceso Software, que permitan proponer posibles mejoras en la definición del Proceso, que incorporen las transformaciones y mejoras implementadas en los modelos industriales. 2. Modelos de Organización en la Producción Industrial En la producción industrial, los diferentes modelos de organización se han ido desarrollando en la medida que la ciencia y la tecnología han ido evolucionando. No obstante, han sucedido cambios en las formas organizacionales que no responden exclusivamente a un tipo de desarrollo tecnológico, sino a unas formas particulares de organización social del trabajo en el ámbito de las fábricas y las empresas. El área de estudio sobre proceso software se reconoce actualmente como un factor crucial en el desarrollo de software, ya que su propósito es proveer el conjunto de actividades que permiten, a partir de la expresión de una necesidad, derivar un sistema software que la satisfaga. La importancia del Proceso en el contexto de la Ingeniería del Software está respaldada por el gran número de trabajos de investigación que se han realizado hasta la fecha. Los resultados de dichos trabajos de investigación han sido numerosos estándares de proceso [IEEE91]; [ISO95]; [ISO97]. En la historia de la fabricación, la Producción Artesanal es la primera forma de transformación de productos: a partir de unas materias básicas se elaboran productos vendibles en el mercado. Con el comienzo de la producción industrial emerge un primer modelo de organización del trabajo hacia finales del siglo XIX, conocido como 1 Taylorismo, que se opone a la producción artesanal, introduciendo la separación técnica del trabajo al interior de la fábrica [COR92a]. Como transformación de este modelo, se desarrolló, posteriormente, el modelo de organización implementado por H.Ford en su fábrica automotriz, conocido como Modelo Fordista o Fordismo. Este modelo de organización industrial, surgido en los años 1920/1930, experimentó su mayor apogeo en la posguerra, con la producción en serie de productos estandarizados y la organización del trabajo en torno a la cadena de montaje o cinta transportadora [COR92b]. Finalmente, el modelo introducido por la fábrica Toyota, que comienza a perfilarse en Japón hacia los años 1950/1960 se ha conocido como Toyotismo. Este modelo impone en el mercado una nueva forma de organización del trabajo al interior de la fábrica y en clara oposición a los principales postulados de los modelos de producción en serie. Introduce cambios en las relaciones entre empresas proveedoras, en las pautas de consumo de productos diferenciados, en la inclusión de conceptos de calidad y esquemas organizacionales que reducen sustancialmente los tiempos y los costes de producción. En el estado actual de la producción industrial, marcado por las constantes innovaciones tecnológicas para la fabricación de productos, conviven diversas formas de organización que responden a estos modelos mencionados y a las particularidades en las formas de organización social del trabajo de las diversas áreas de conocimiento de cada sector productivo. El desarrollo de productos software, responde a variables determinadas por las formas de organización del trabajo desarrolladas para la organización de la producción en general. Es por ello que expondremos brevemente las características generales de cada uno de los modelos de organización mencionados e intentaremos revisar y dar cuenta de la combinación y la yuxtaposición de elementos que se conjugan en la forma de organización del Proceso Software. 3. Descripción de Características Comparativas Las características referidas a cada modelo productivo, son analizadas de acuerdo a los siguientes conceptos y se exponen comparativamente de acuerdo a las formas específicas desarrolladas por cada modelo de organización. Tipo de Organización del trabajo Formas de organización general del trabajo al interior de cada industria. Métodos de control de producción Métodos aplicados para conocer y controlar los tiempos de cada actividad de producción en el desarrollo de un producto industrial. División técnica del trabajo Formas de distribución técnica de cada una de las actividades productivas de la organización en su conjunto. 2 Conocimientos Concepción, transmisión, división y aplicación de los conocimientos al interior de la organización. Planificación de la Producción Planeamiento de la distribución de las actividades específicas de producción. Conceptos de Calidad Conceptos de Calidad que dominan el ordenamiento de la organización. En la Tabla 1 se describen las características comparativas de los Modelos de Organización. Tabla 1. Características de los Modelos de Organización Tipo de Organización del Trabajo Métodos de Control de Producción División Técnica del Trabajo Conocimientos Artesanado Por oficio Sin control sistemático del tiempo de producción Trabajo de desarrollo completo de producción Taylorismo Organización científica del trabajo Asignación de tiempos de producción Tiempos asignados Fraccionamiento de tareas. Repetición de gestos parcelarios Dominan los conocimientos técnicos individuales Reducción de conocimientos técnicos individuales Planificación de la Sin Planificación Producción Basado en el Conceptos de conocimiento y Calidad capacidad individual Por tareas Fordismo Cinta transportadora o cadena de montaje Imposición de tiempos de producción Tiempos impuestos Parcelación Máximo Fraccionamiento de tareas. Especialización Especialización de conocimientos fraccionados. Separación entre concepción y ejecución del trabajo Por Puestos Basado en la rapidez de producción Basado en la rapidez y cantidad de producción Toyotismo Módulos flexibles y transfuncionales Revisión constante de tiempos y tareas Tiempos Compartidos Polifunción Desespecialización con Pluriespecialización Ampliación de conocimientos, Pluriespecialización Por módulos polifuncionales Detención del proceso productivo en cada módulo ante fallos 4. Caracterización del Proceso Software El software, como producto de desarrollo posee un conjunto de características que lo diferencian fuertemente del resto de los productos industriales. Esta diferenciación está marcada por lo intrínseco del producto, en tanto que es un producto lógico, abstracto, no físico; como producto se desarrolla, no se fabrica; la complejidad en su 3 definición está dada por la volatilidad de los requisitos y la incorporación de nuevas funcionalidades a partir de lo desarrollado [JAC99]. A pesar de estas particulares diferencias del producto software frente a la mayoría de los productos industriales, pareciera que el ordenamiento del proceso de desarrollo software responde a cierta combinación de las características mencionadas. De acuerdo a estos parámetros de organización estudiados y descriptos para los diferentes modelos de organización industrial, pensamos que el Proceso Software combina algunos aspectos de las características expuestas, tal como se presentan en la Tabla 2. Tipo de Organización del Trabajo Métodos de Control de Producción División Técnica del Trabajo Conocimientos Planificación de la Producción Conceptos de Calidad Proceso Software Organización científica del trabajo Asignación de tiempos de producción Tiempos Asignados Parcelación Máximo Fraccionamiento de tareas Especialización Especialización de conocimientos fraccionados Separación entre concepción y ejecución del trabajo Por tareas Los conceptos de Calidad que se utilizan en el Proceso Software, si bien incorporan elementos del Toyotismo en la concepción de la Calidad del Proceso, combina elementos de las diversas concepciones organizacionales, aunque pareciera no responder tan claramente a ninguno de los modelos descriptos. Estas breves ideas expuestas, que se encuentran aún en plena investigación, constituyen líneas para pensar que el proceso de desarrollo software requiere de un modelo propio de organización. Este nuevo modelo debería incorporar las mejoras introducidas por los diferentes modelos organizacionales de la producción industrial, pero diferenciarse sustancialmente de estos, contemplando las particularidades en la organización que genera la especificidad del producto y la creciente complejidad y dinámica del Proceso. 4 Referencias 1. 2. 3. 4. 5. 6. 7. 8. 9. [COR92a] Coriat, B. Coriat. El Taller y el Robot. Siglo XXI, 1992. [COR92b] B. Coriat. Pensar al Revés: Trabajo y Organización en la Empresa Japonesa. Siglo XXI, 1992. [FIN94] A. Finkelstein, J. Kramer, B. Nuseibeh, Software Process Modelling and Technology. Research Studies Press, 1994. [FRU00] M. Fruin. Las Fábricas del Conocimiento, la Administración del Capital Intelectual en Toshiba. Ed. Oxford, 2000. [FUG00] A. Fuggetta, Software process: A roadmap. In The Future of Software Engineering, Ed. A. Finkelstein. pp 27-34. ACM Press, 2000. [IEEE91]. IEEE Standard for Developing Software Life Cycle Processes, IEEE Standard 1074-1991. IEEE, 1991. [ISO97] ISO 9000-3:1997. Normas de Gestión y Aseguramiento de la Calidad. Parte 3: Guía para la Aplicación de la Norma ISO 9001 al Desarrollo, Suministro y Mantenimiento del Soporte Lógico. IRAM, Argentina, 1997. [ISO95] ISO/IEC. International Standard: Information Technology. Software Life Cycle Processes, ISO/IEC Standard 12207-1995. ISO/IEC, 1995. [JAC99] I.Jacobson, G.Booch, J.Rumbaugh, The unified Software Development Process, Addison Wesley 1999. 5