Red de conocimiento informático - Conocimientos de programación - La diferencia entre programación en pareja y programación extrema

La diferencia entre programación en pareja y programación extrema

Establecimiento de un marco de proceso unificado ágil Sugiero que las empresas de software puedan establecer un sistema de proceso de software organizacional que cumpla con ISO 9001, SW-CMM, CMMI SE/SW y otros puntos de referencia basados ​​en sus propias condiciones reales y procesos unificados (como RUP). incluidos procesos ágiles (como XP, Scrum) y procesos pesados ​​(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 una atención cada vez mayor en China. Alguna vez hubo un aumento en el número de organizaciones que realizaban evaluaciones comerciales de SW-CMM. Hasta ahora, casi 200 empresas de software en China han pasado la evaluación de SW-CMM y CMMI (1 2 3). Por un lado, muestra que SW-CMM y CMMI, que originalmente eran estándares militares estadounidenses (ahora se han convertido en estándares internacionales), no son inalcanzables. Por otro lado, también muestra que el fortalecimiento de la gestión estandarizada del desarrollo de software y la mejora de la madurez de los procesos han sido ampliamente reconocidos por la industria.

Silla de baño para bebé Promoción de temporada calurosa Intrusión administrativa Desastre científico Blog de belleza finalmente reduce los precios de los teléfonos móviles en Beijing

Al mismo tiempo, la "fiebre ágil" y la "fiebre de unificación" en el La industria internacional del software también se está calentando. En la década de 1990, surgieron gradualmente métodos de desarrollo de software liviano representados por DSDM, Scrum, FDD, Crystal, ASD y XP, entre los cuales XP fue la "rebelión" más obvia contra el pensamiento tradicional. Con su enfoque "extremo", contrario al pensamiento tradicional, no sólo se ha ganado el apoyo activo de muchos clientes, administradores y desarrolladores de software, sino que también ha sido fuertemente refutado por los mantenedores de procesos tradicionales. El establecimiento de Agile Alliance y la publicación del Manifiesto de Desarrollo de Software Ágil en febrero de 2001 marcaron la cima de este "movimiento ágil". Como producto de proceso comercial que absorbe la experiencia en procesos de industrias clave como las telecomunicaciones y la defensa nacional, así como de muchas empresas de software de renombre internacional como IBM, HP y Microsoft, Unified Process RUP también ha logrado un éxito generalizado en todo el mundo. Una encuesta realizada en 2002 entre 200 administradores de SI/TI en industrias relacionadas con el software realizada por una conocida agencia de consultoría mostró que la tasa de uso de RUP alcanzó el 51%, que es mucho más alto que SW-CMM (27%) e ISO 9000 (26%). ). Además, para 2003, aproximadamente el 50% de los encuestados espera que más del 50% de sus proyectos utilicen métodos ágiles, y el 65.438+04% de los encuestados cree 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. “Una talla única” resulta que ninguna plantilla de proceso siempre se adapta a todos los proyectos. Debido a diferentes entornos (como negocios, recursos, equipos, culturas), diferentes niveles (como procesos organizacionales, procesos de proyectos, procesos de equipo, procesos personales) y diferentes tipos de desarrollo (como nuevos productos, reutilización, servicios, líneas de productos). ), un hecho No es sorprendente que existan tantas metodologías de proceso.

En segundo lugar, análisis comparativo de metodologías de procesos

Entonces, ¿cuáles son las características del proceso unificado ágil y cuáles son las diferencias con los procesos tradicionales? A continuación, utilizando SW-CMM como referencia, se seleccionaron tres metodologías de proceso típicas (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. Aclara qué deben hacer las organizaciones para implementar sistemáticamente mejoras en los procesos de software y mejorar la madurez de los procesos, pero no especifica cómo hacerlo. Sus objetivos generalmente se aplican a cualquier organización o proyecto de software, y la mayoría de las prácticas clave utilizadas para lograrlos también se aplican a proyectos de pequeñas y medianas empresas. El objetivo principal de muchas de las prácticas clave es ilustrar cómo lograr los objetivos generales en grandes proyectos gubernamentales y de contratos de defensa, y sólo tienen un valor de referencia para proyectos de pequeñas y medianas empresas. Además de la atención insuficiente a la integración de procesos, la principal deficiencia de SW-CMM es la falta de algunos elementos importantes de los procesos de software modernos. Su KPA se dirige principalmente a documentos estáticos de procesos tradicionales (como diseño, documentos de requisitos, contratos, planes e informes, etc.), y solo unos pocos KPA enfatizan artefactos evolutivos (como requisitos, modelos de diseño, código fuente, etc.). y el nivel de automatización del entorno de desarrollo y los procesos basados ​​en arquitectura. [6]

Para aprobar la evaluación lo antes posible, las personas suelen adoptar o imitar el proceso PSP/TSP también desarrollado por SEI. El TSP basado en PSP es probablemente el proceso de recarga 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 procesos de programación fijos, por lo que el costo de la capacitación y la implementación es muy alta.

RUP es un marco de proceso de software caracterizado por una arquitectura basada en componentes y basada en casos de uso y un desarrollo incremental iterativo, y puede usarse ampliamente en proyectos de varios tipos y tamaños. Sus características básicas, junto con la gestión de requisitos, la gestión de cambios de configuración, el modelado visual OOAD*UML y la inspección de calidad continua, reflejan las mejores prácticas del desarrollo de software moderno. RUP define cuatro fases: inicio, elaboración, construcción y entrega, y nueve tipos de trabajo, que incluyen 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 hitos importantes. 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 específica se puede ajustar según sea necesario, y los roles, actividades y artefactos también se pueden configurar de manera flexible. Debido a que RUP proporciona tanta riqueza, a menudo se malinterpreta como un proceso pesado. Al personalizar el marco general de RUP, eliminar elementos innecesarios y absorber otros métodos ágiles para proyectos específicos, puede personalizar completamente un proceso de RUP ágil y liviano (como el complemento XP de RUP).

Extreme Programming XP tiene las características de comunicación sólida, diseño simplificado y retroalimentación rápida. Generalmente solo es adecuado para equipos pequeños con escala pequeña, cronogramas ajustados, necesidades inestables y proyectos de desarrollo pequeños. En sus 12 prácticas, prueba primero, integración continua, diseño simplificado, especificaciones de código, clientes en el sitio, semana laboral de 40 horas y lanzamientos a pequeña escala han existido durante mucho tiempo. No son inventos nuevos, pero XP combina. a través de una integración inteligente llevada al extremo. Sin embargo, prácticas como la propiedad colectiva del código, la programación en pares, la refactorización, las metáforas del sistema y la planificación del juego no son aplicables en todas las situaciones, y el uso inadecuado a menudo puede tener el efecto contrario. SW-CMM y XP son complementarios, y autoridades como Barry Boehm y Watts Humphrey creen que XP y SW-CMM son filosóficamente compatibles [5]. La principal diferencia es que este último se enfoca más en la gestión organizacional de la implementación de procesos, mientras que XP se enfoca en técnicas específicas de ejecución y desarrollo de procesos y no incluye la infraestructura crítica que SW-CMM considera para institucionalizar buenas prácticas de ingeniería y gestión.

Muchos equipos pueden obtener buenos resultados inesperados al practicar XP bajo ciertas condiciones, pero puede haber muy pocas aplicaciones de XP puro. El proyecto del sistema de nómina C3 de Chrysler puede ser la historia de éxito de XP más citada, pero de hecho, el proyecto tuvo problemas debido a problemas de comunicación entre el equipo de desarrollo y los gerentes. Un proyecto XP clásico tiene problemas con sus elementos centrales de comunicación, algo en lo que realmente vale la pena pensar. [7]

XP está centrado en el código. La integración de actividades de codificación y diseño debilita la arquitectura. Esta es la mayor diferencia entre XP y RUP. No tiene conceptos como modelado de negocios, implementación y gestión de procesos. . Los dos tienen muchas similitudes: ambos adoptan tecnología OO (en lugar de métodos estructurados tradicionales) y ciclos de iteración evolutiva (en lugar de modelos tradicionales en cascada), enfatizan la gestión de riesgos y se basan en la premisa de entrega sostenible de productos utilizables para maximizar Reducir innecesarios procese artefactos y minimice métricas y documentación para lograr flexibilidad y adaptabilidad. Debido a que RUP y XP combinan métodos de desarrollo específicos, son más operables que TSP.

El proceso unificado ágil cumple con la mayoría de los objetivos de SW-CMM y los requisitos de KPA de nivel 2 y 3, y básicamente no involucra KPA de nivel 4 y 5. Sin embargo, seguir un marco de proceso de alta calidad como SW-CMM no necesariamente conduce al desarrollo de productos de alta calidad, pero un proceso verdaderamente de alta calidad para producir productos de alta calidad debe evaluarse como un proceso maduro [6] . De hecho, muchas organizaciones internacionales que adoptan RUP ya han alcanzado o superado los niveles SW-CMM 3. La evaluación SW-CMM requiere que las organizaciones realicen muchos esfuerzos complejos y costosos en la institucionalización de procesos, pero no existe una conexión necesaria entre la efectividad de las mejoras de los procesos y la complejidad y los altos costos. La diversidad de selección de procesos y la universalidad de los objetivos de SW-CMM determinan la diversidad de métodos de mejora de procesos.

Hay demasiado contenido, así que tengo que buscarlo en línea:

Sitio web de origen: "ERP Chief Designer Forum" (Ferry Search) [Columna ágil]

Involucrando: Soluciones ERP|||Análisis de requisitos|||Modelado de negocios|||Análisis de sistemas|||Supervisión de información;