El desarrollo de software es un deporte de equipo. Lo ideal sería que la actividad implicara a equipos bien coordinados
que trabajasen en diversas disciplinas durante todo el ciclo vital del software. Pero no es una ciencia y tampoco es
exactamente ingeniería, al menos desde el punto de vista de los principios cuantificables basados en datos
irrefutables. Los esfuerzos de desarrollo de software que asumen que pueden planificarse y crearse partes sueltas y
después ensamblarlas, como se hace en la construcción de puentes o de naves, fracasan constantemente a causa de las
fechas de entrega, los presupuestos y el nivel de satisfacción del usuario.
A falta de datos irrefutables, debe confiarse en las técnicas de desarrollo de software que denominamos
recomendaciones, cuyo valor ha sido demostrado repetidamente en otros compromisos con clientes. En lugar de prescribir
una secuencia de actividades del tipo planificar-compilar-ensamblar para un proyecto de software, describen un proceso
iterativo, incremental que dirige a los equipos de desarrollo hacia la consecución de resultados.
Las seis recomendaciones de Rational Unified Process que son completamente fiables han sido la base de la evolución de
las herramientas y procesos de Rational durante más de una década. Actualmente, a medida que el desarrollo de software
se está convirtiendo en una habilidad empresarial clave, nuestras recomendaciones están madurando en el contexto
ampliado del desarrollo dirigido por la empresa. Los principios siguientes vuelven a articular nuestras
recomendaciones para un ciclo vital más amplio, el de los sistemas en continua evolución, en los que el principal
elemento de la evolución es el software. Esos principios son:
Cada página incluida aquí presenta uno de los principios anteriores, insistiendo en:
-
Las ventajas derivadas de aplicar el principio,
-
El patrón de comportamiento que mejor representa el principio, y
-
Los "antipatrones" más reconocibles o los comportamientos que son contrarios
al principio, que pueden perjudicar los proyectos de desarrollo de software.
|