Realizar una reingeniería fiable de los entornos empresariales e informáticos existentes para convertirlos en arquitecturas modernas, competitivas e integradas no es tarea fácil. La complejidad de los entornos empresariales y de TI se ha ido acumulando casi sin control durante cuarenta años, haciendo que los cambios sean cada vez más costosos. Esto se debe a que:
- La complejidad del entorno suele expresarse en código heredado. La escasez de conocimientos sobre el legado está aumentando los costes de mantenimiento e integración.
- Los entornos complejos existentes deben ser rediseñados en fases que tengan sentido operativo para su función empresarial asociada. Estas fases a menudo se traducen en sustituciones de sistemas arriesgadas y al por mayor, ya que el desconocimiento de la complejidad existente hace que los posibles cambios incrementales sean demasiado difíciles de entender y diseñar.
- Los métodos de desarrollo acelerados han dejado a las empresas con sistemas heredados modernos. Las complejas aplicaciones Java y .NET tienen muchos de los mismos problemas que las antiguas aplicaciones COBOL.
Como resultado, una proporción cada vez mayor del esfuerzo de desarrollo de nuevas capacidades empresariales se dedica a la comprensión y la integración con el complejo sistema existente y el panorama empresarial, en lugar de aportar valor. Se ha observado que hasta el 75% del esfuerzo total del proyecto se dedica ahora a la integración y migración del software en lugar de a la nueva funcionalidad.
El sector de las TI en su conjunto tiene un bajo índice de éxito a la hora de realizar este tipo de cambios a gran escala para sus clientes. La encuesta CHAOS del Grupo Standish ha registrado una mejora general en el éxito de la entrega de proyectos de TI en los últimos veinte años, pero incluso en 2006 los grandes proyectos de TI seguían fracasando con más frecuencia que teniendo éxito. Los cambios en la ingeniería y en este tipo de entornos tienen muchos paralelismos con las preocupaciones del sector de la construcción a la hora de reconstruir emplazamientos industriales o contaminados. Están llenos de peligros, complejidades inesperadas y suelen ser arriesgados y costosos de reconstruir. La complejidad acumulada de los entornos informáticos los ha convertido en emplazamientos «Brownfield».
No es la complejidad de la nueva función ni las características del nuevo sistema la raíz de los fracasos de los grandes proyectos, sino nuestra comprensión y comunicación del requisito global (como se identificó en el mes del hombre mítico). Para tener éxito, los requisitos deben incluir una comprensión precisa y exhaustiva de las limitaciones de la empresa y las TI existentes. Las herramientas y métodos actuales de «Greenfield» utilizan abstracciones tempranas, informales y a menudo imprecisas que esencialmente ignoran dicha complejidad. Las abstracciones tempranas y mal informadas suelen ser erróneas y a menudo se detectan en una fase tardía de la construcción, lo que provoca retrasos, costosas repeticiones e incluso desarrollos fallidos. Un enfoque orientado a Brownfield abarca la complejidad existente y se utiliza para acelerar de forma fiable el proceso general de ingeniería de soluciones, lo que incluye permitir un cambio gradual e incremental siempre que sea posible.
Brownfield toma el enfoque estándar de OMG basado en modelos/patrones y le da la vuelta. En lugar de adoptar el enfoque convencional de comenzar con un Modelo Conceptual y conducir hasta los Modelos Específicos de Plataforma y la generación de código, Brownfield comienza cosechando código y otros artefactos existentes y utiliza patrones para abstraer formalmente hacia arriba hacia el nivel de Arquitectura y Negocio.
Las técnicas estándar de Greenfield se utilizan entonces en combinación para definir el objetivo de negocio preferido. Esta técnica de «encuentro en el medio» es conocida por otros métodos de desarrollo, pero el amplio uso de la abstracción formal y el uso de patrones tanto para el descubrimiento como para la generación es novedoso.
La arquitectura conceptual subyacente de todas las herramientas Brownfield se conoce como VITA. VITA significa Vistas, Inventario, Transformación y Artefactos. En una arquitectura VITA, la definición del problema del espacio objetivo puede mantenerse como «cabezas» nativas separadas (aunque relacionadas) de conocimiento conocidas como Vistas. La principal ventaja de una vista es que puede basarse en prácticamente cualquier herramienta formal. Brownfield no impone una única herramienta o lenguaje a un espacio de problemas, sino que uno de los principios fundamentales es que los «headfulls» siguen manteniéndose en sus formas y herramientas nativas.
Las vistas nativas se reúnen y enlazan en un único inventario. El Inventario es entonces utilizado con una serie de capacidades de Transformación para producir los Artefactos que la solución necesita.
Las Vistas pueden actualmente ser importadas desde una amplia variedad de fuentes incluyendo UML, fuentes XML, DDL, hojas de cálculo, etc. La herramienta Analysis and Renovation Catalyst de IBM ha llevado esta capacidad aún más lejos mediante el uso de gramáticas formales y árboles de sintaxis abstracta para permitir que casi cualquier programa sea analizado y convertido en una vista para su inclusión en el inventario.
La rápida naturaleza cíclica del ciclo de descubrimiento, reingeniería, generación y prueba utilizado en este enfoque significa que las soluciones pueden ser refinadas de forma iterativa en términos de sus definiciones lógicas y físicas a medida que se conocen más restricciones y se refina la arquitectura de la solución.
El desarrollo iterativo de Brownfield puede permitir el refinamiento gradual de las arquitecturas lógicas y físicas y las pruebas incrementales para todo el enfoque, lo que resulta en la aceleración del desarrollo, la mejora de la calidad de la solución y la eliminación más barata de los defectos. Brownfield también puede utilizarse para generar la documentación de la solución, garantizando que esté siempre actualizada y sea coherente entre los diferentes puntos de vista.
El Inventario que se crea a través del procesamiento de Brownfield puede ser muy complejo, siendo una red semántica multidimensional interconectada. El nivel de conocimiento en el Inventario puede ser de grano muy fino, altamente detallado e interrelacionado. Sin embargo, este tipo de cosas son difíciles de entender y pueden suponer una barrera para la comunicación. Brownfield resuelve este problema abstrayendo los conceptos a través de una suposición artesanal, utilizando patrones conocidos en sus Inventarios para extraer e inferir relaciones de nivel superior.
Las abstracciones formales permiten traducir la complejidad del Inventario en representaciones más simples, pero inherentemente precisas, para un consumo más fácil por parte de aquellos que necesitan entender el espacio del problema. Estos modelos abstractos del Inventario pueden utilizarse para representar automáticamente arquitecturas de múltiples capas en herramientas como Second Life.
Estas visualizaciones permiten que la información compleja sea compartida y experimentada por múltiples individuos de todo el mundo en tiempo real. Esto mejora la comprensión y la sensación de equipo único.