¿Qué es una fábrica de software y cómo funciona?

Los esfuerzos de la fábrica de software y las ideas relacionadas han existido durante treinta años. Este término significa un compromiso con los esfuerzos integrados a largo plazo, por encima del nivel de los proyectos individuales, para mejorar el rendimiento del software. Esta no es solo una idea poderosa, sino también necesaria, teniendo en cuenta los problemas asociados con la profesionalización del software. Sin embargo, el término fábrica tiene una connotación contradictoria de que el desarrollo y mantenimiento de software es comparable a la producción en masa de productos industriales, y esto puede no ser así. El texto discute puntos de vista conflictivos al revisar los conceptos de una fábrica de software, resaltar las diferencias y diferencias entre ellos, y discutir las ventajas y desventajas relativas de sus enfoques para profesionalizar las operaciones de software.

Interpretación histórica del concepto y experiencia de una fábrica de software. La compañía creó una fábrica de software para aumentar la productividad de los programadores utilizando herramientas estandarizadas, una interfaz de computadora y una base de datos con datos históricos para el control financiero y administrativo.

En este artículo, no aceptaremos esta connotación históricamente sólida. Más bien, usamos este término sin suposiciones con respecto a formas específicas de estandarizar, formalizar, especializar o lograr la agrupación funcional. Una fábrica es una organización en la que las personas que trabajan juntas viven, el trabajo se organiza de una forma u otra, la estandarización se utiliza para la coordinación y formalización, y la sistematización es importante, pero habrá varias opciones de diseño para una fábrica de software en particular.

Este artículo explora cómo los enfoques existentes para la fábrica de software han elegido entre estas opciones, ajustando cada enfoque en una de las cinco estructuras organizacionales básicas: una estructura simple (orgánica, centralizada, supervisión directa); adhocracia (orgánica, descentralizada, adaptación mutua); burocracia mecánica (procesos burocráticos, centralizados y estandarizados); burocracia profesional (habilidades burocráticas, descentralizadas y estandarizadas); y forma dividida (se descompone en base a productos estandarizados).

En este artículo, discutimos y evaluamos puntos de vista opuestos de las fábricas de software. Hacemos esto presentando una selección de diferentes oportunidades de fábrica de software, destacando las diferencias en los enfoques básicos y discutiendo las ventajas y desventajas relativas de los diferentes enfoques para profesionalizar las operaciones de software. El objetivo es aclarar las contribuciones útiles y las posibles ilusiones asociadas con la idea de una fábrica de software.

Para comparar los enfoques de la fábrica de software, necesitamos conocer el contenido de cada enfoque, así como el contexto en el que fue concebido. El contexto proporciona una comprensión del alcance y el enfoque del enfoque. Bajo este encabezado, describimos las condiciones en las que se desarrolló el enfoque. El contenido de cada enfoque se describe de arriba a abajo, comenzando desde arriba con el objetivo del enfoque y la estrategia que se recomienda para lograr el objetivo. En el medio describimos el diseño organizacional de la fábrica de software bajo consideración, y abajo describimos la implementación de esta organización.

La base para el término gestión prospectiva. La calidad y el rendimiento se miden en una fábrica de software. Para cada modelo de ciclo de vida básico, se identifican los factores de calidad y las herramientas de software necesarias. La calidad del software se entiende en términos de confiabilidad, y los indicadores de calidad expresan la cantidad de errores esperados que quedan en el código después de la prueba, y el tiempo esperado entre fallas.

Estas medidas se evalúan por el número de fallas detectadas durante la prueba. La productividad también se mide para cada paso en el modelo del ciclo de vida. La fábrica de software utiliza dos tipos de medidas: medidas basadas en costos y medidas basadas en oportunidades. Las medidas basadas en el costo son el costo por persona por mes, el beneficio por persona por mes y los costos de líneas de origen de ensamblaje equivalentes. Las métricas de oportunidad se utilizan para gestionar el progreso, las tareas y la planificación de la capacitación. A nivel de proyecto y de fábrica, se crean líneas de ensamblaje equivalentes para hombre-mes, páginas de especificaciones para hombre-mes y elementos de prueba para hombre-mes. A nivel humano, se crea un espectro personal que incluye el rendimiento y la tasa de fallas. Por ejemplo, el número de páginas que produce un analista por hora es una medida de rendimiento para el analista.