Red de conocimiento informático - Material del sitio web - Cómo las pequeñas empresas de software pueden construir mejor un marco de procesos maduro

Cómo las pequeñas empresas de software pueden construir mejor un marco de procesos maduro

Establecimiento de un marco de proceso unificado ágil Resumen del contenido Sugiero que las empresas de software puedan establecer un sistema de proceso de software organizacional basado en un proceso unificado (como RUP) que cumpla con los puntos de referencia ISO 9001, SW-CMM y CMMI SE/SW según la situación real. de la organización del software Entre ellos incluye tanto procesos ágiles (como XP, Scrum) como procesos de trabajo pesado (como TSP). A este sistema de procesos híbrido/integrado lo llamo Marco de Procesos Unificados Ágiles (AUPF).

I. Madurez y diversidad de procesos

En los últimos años, la mejora de los procesos de software ha recibido cada vez más atención en China. En un momento, muchas organizaciones llevaron a cabo evaluaciones comerciales de SW-CMM. . Hasta la fecha, casi doscientas empresas de software en China han superado varios niveles de evaluaciones SW-CMM y CMMI (1 2 3). Por un lado, esto muestra que SW-CMM y CMMI, que originalmente eran estándares militares de EE. UU. (ahora se han convertido en estándares internacionales globales), no son inalcanzables. Por otro lado, también muestra que es necesario fortalecer y mejorar la gestión estandarizada del desarrollo de software. La madurez del proceso ha sido ampliamente reconocida por la industria.

Silla de baño para bebé Venta caliente Promoción de temporada Canibalización administrativa Desastre científico Blog de belleza Finales Reducción de tarifas de telefonía móvil en Beijing

Al mismo tiempo, la "fiebre ágil" y la "fiebre de unificación" en el La industria internacional del software también continúa calentándose. En la década de 1990, surgieron gradualmente los métodos de desarrollo de software liviano representados por DSDM, Scrum, FDD, Crystal, ASD y XP. Entre ellos, la "rebelión" de XP contra la tradición es la más significativa. "En febrero de 2001, se estableció la Agile Alliance y se publicó el "Manifiesto de desarrollo de software ágil", que marcó la cima de este "movimiento ágil". El proceso comercial producto de la experiencia en procesos de las empresas de software, el proceso unificado RUP, también ha logrado una amplia difusión. éxito en todo el mundo En 2002, una reconocida agencia de consultoría realizó una encuesta a 200 gerentes de SI/TI en industrias relacionadas con el software en todo el mundo y los resultados mostraron que la tasa de uso de RUP alcanzó el 51%. superior a la tasa de uso de SW-CMM (27%) e ISO 9000 (26%); además, en 2003, alrededor del 50% de los encuestados esperaba que más del 50% de sus proyectos utilizaran métodos ágiles, el 14% de ellos; Los encuestados creen que todos sus proyectos utilizarán métodos ágiles [2]

Reconocer la diversidad de los procesos de software es tan importante como perseguir su madurez "Resulta que no existe una solución única para todos. plantilla de proceso que se aplica a todos los proyectos. Debido a que los procesos de software tienen diferentes categorías (como negocios, recursos, equipos, cultura), diferentes niveles (como procesos organizacionales, procesos de proyectos, procesos de equipo, procesos individuales) y diferentes tipos de desarrollo (como nuevos productos, reutilización, servicios, productos). línea), no es sorprendente que surgieran tantos métodos de proceso durante el mismo período.

II. Análisis comparativo de métodos de procesos

Entonces, ¿cuáles son las características de los procesos ágiles y los procesos unificados, y en qué se diferencian de los procesos tradicionales? Aquí, utilizamos SW-CMM como referencia para seleccionar los tres métodos de proceso más típicos (XP, RUP y TSP) para el análisis comparativo.

SW-CMM es un conjunto de puntos de referencia para evaluar la madurez de los procesos de las organizaciones de software. Describe lo que una organización debe hacer al implementar sistemáticamente mejoras en los procesos de software y mejorar la madurez de los procesos, pero no prescribe cómo hacerlo. él. Sus objetivos son generalmente aplicables a cualquier organización o proyecto de software, y la mayoría de las prácticas clave utilizadas para lograr los objetivos también son aplicables a proyectos de pequeñas y medianas empresas, mientras que muchas de las subprácticas dentro de las prácticas clave están destinadas principalmente a ejemplifica cómo lograr el éxito en grandes proyectos de contratos gubernamentales y de defensa. Para lograr el objetivo general, solo tiene valor de referencia para proyectos de pequeñas y medianas empresas. Además de la falta de enfoque en la integración de procesos, la principal deficiencia de SW-CMM es que carece de algunos elementos importantes de los procesos de software modernos, y su KPA se centra en la documentación estática de los procesos tradicionales (como documentos de diseño y requisitos, contratos). , planes e informes, etc.), sólo unos pocos KPA enfatizan la evolución de los artefactos (como requisitos, modelos de diseño, fuente, código, etc.), el grado de automatización del entorno de desarrollo y la arquitectura basada. proceso.

[6]

Para aprobar la evaluación lo antes posible, las personas tienden a adoptar o imitar el proceso PSP/TSP también desarrollado por SEI. TSP, basado en PSP, es probablemente el proceso de trabajo pesado más riguroso hasta el momento. Para mejorar la madurez y previsibilidad del proceso, TSP enfatiza la medición integral y precisa del proceso, que se basa en la producción de una gran cantidad de tablas y documentos de datos complejos y engorrosos, así como la coordinación de procesos de planificación fijos. por lo que el costo de capacitación e implementación es muy alto.

RUP es un marco de proceso de software con una arquitectura basada en componentes, basada en casos de uso y un desarrollo incremental iterativo como características básicas. Puede usarse ampliamente en proyectos de varios tipos y tamaños. relacionados con la gestión de la demanda y los cambios de configuración, el modelado visual OOAD * UML, las prácticas de inspección de calidad continua, etc., incorporan las mejores prácticas del desarrollo de software moderno. RUP define cuatro fases: inicio, refinamiento, construcción y entrega, y nueve tipos de trabajo: modelado de negocios, requisitos, análisis y diseño, implementación, pruebas, implementación, gestión de cambios de configuración, gestión de proyectos y entorno. Las fases corresponden a la división de los hitos principales. Las actividades del flujo de trabajo de diferentes tipos de trabajo se llevan a cabo simultáneamente en las iteraciones del ciclo de vida. La intensidad de ejecución se ajusta según sea necesario y los roles, actividades y artefactos se pueden configurar de manera flexible. Debido a que RUP ofrece tanta funcionalidad, a menudo se malinterpreta como un proceso pesado. Al personalizar el marco general de RUP, eliminar elementos innecesarios para un proyecto específico y combinarlo con otros métodos ágiles, es posible personalizar completamente procesos ágiles y livianos de RUP (por ejemplo, el complemento XP para RUP).

Extreme Programming XP se caracteriza por una comunicación sólida, un diseño simplificado y una retroalimentación rápida. Generalmente solo es adecuado para equipos con proyectos de desarrollo pequeños, a pequeña escala, con poco tiempo y necesidades inestables. Entre sus 12 prácticas, prueba primero, integración continua, diseño simplificado, estándares de codificación, clientes en el sitio, semanas laborales de 40 horas y lanzamientos de versiones pequeñas han existido durante mucho tiempo y no son inventos nuevos, sino XP a través de una integración inteligente. Llévalos al extremo. La propiedad colectiva del código, la programación en pares, la refactorización, las metáforas del sistema, los juegos de planificación, etc. no son adecuados para todas las situaciones, si se usan incorrectamente, a menudo son contraproducentes. SW-CMM es un complemento de figuras autorizadas como Barry Boehm y. Watts Humphrey cree que XP es filosóficamente compatible con SW-CMM [5]. La principal diferencia es que este último se preocupa más por la implementación de procesos en términos de gestión organizacional, mientras que XP se centra en técnicas de desarrollo y ejecución de procesos específicos y no incluye lo que SW-CMM considera la infraestructura crítica para institucionalizar buenas prácticas de ingeniería y gestión. .

Muchos equipos que practican XP en determinadas condiciones pueden experimentar resultados inesperadamente buenos, pero la aplicabilidad del XP puro y simple también puede ser pequeña. El proyecto C3 Payroll de Chrysler puede ser la historia de éxito de XP más citada, pero en realidad, el proyecto tuvo problemas tarde debido a problemas de comunicación entre el equipo de desarrollo y la gerencia. De hecho, vale la pena considerar un proyecto XP clásico que tiene problemas con sus elementos centrales de comunicación. [7]

XP está centrado en el código y las actividades de codificación y diseño se combinan en una sola, lo que debilita la arquitectura. Esta es la mayor diferencia entre este y el RUP centrado en la arquitectura, y no tiene modelado de negocios. Conceptos de implementación y gestión de procesos. Hay algunas ventajas entre los dos, pero lo mismo es lo mismo: ambos adoptan tecnología OO (en lugar del método estructurado tradicional), evolucionan ciclos iterativos (en lugar del modelo en cascada tradicional) y enfatizan el riesgo para garantizar que la entrega está disponible Partiendo de la premisa de continuidad del producto, intentamos reducir los artefactos innecesarios del proceso y minimizar las mediciones y documentación para ganar flexibilidad y adaptabilidad. Debido a que RUP y XP incorporan métodos de desarrollo específicos, tiene mejor operatividad que TSP.

El Proceso Unificado Ágil cumple con la mayoría de los objetivos de SW-CMM y los requisitos de KPA 2 y 3, pero básicamente no toca los KPA 4 y 5. Sin embargo, adherirse a un marco de procesos de alta calidad como SW-CMM no conduce necesariamente al desarrollo de productos de alta calidad, pero los procesos de alta calidad que realmente pueden producir productos de alta calidad deben evaluarse como procesos maduros [6]. . De hecho, algunas organizaciones internacionales que adoptan RUP han alcanzado o superado el nivel 3 de SW-CMM.

La evaluación a través de SW-CMM requiere que las organizaciones realicen esfuerzos significativos, complejos y costosos para institucionalizar los procesos, pero no existe un vínculo necesario entre la efectividad de las mejoras de los procesos y la complejidad y los altos costos. La diversidad de opciones de procesos y la diversidad de objetivos de SW-CMM determinan la diversidad de caminos de mejora de procesos.