Her-engineering van bestaande bedrijfs- en IT-omgevingen in moderne concurrerende, geïntegreerde architecturen is geen sinecure. De complexiteit van bedrijfs- en IT-omgevingen neemt al veertig jaar lang vrijwel ongecontroleerd toe, waardoor veranderingen steeds duurder worden. Dit komt doordat:
- De complexiteit van de omgeving komt vaak tot uiting in legacy code. Tekorten aan legacy-vaardigheden drijven de onderhouds- en integratiekosten op.
- Bestaande complexe omgevingen moeten in fasen opnieuw worden ontworpen die operationeel zinvol zijn voor de bijbehorende bedrijfsfunctie. Deze fasen leiden vaak tot grootschalige, riskante vervangingen van systemen, omdat onwetendheid over de bestaande complexiteit betekent dat potentiële incrementele veranderingen te moeilijk te begrijpen en te engineeren zijn.
- Versnelde ontwikkelingsmethoden hebben ondernemingen achtergelaten met moderne legacysystemen. Complexe Java en .NET toepassingen hebben veel van dezelfde problemen als oudere COBOL toepassingen.
Als gevolg hiervan wordt een steeds groter deel van de inspanning voor het ontwikkelen van nieuwe zakelijke mogelijkheden besteed aan het begrijpen en integreren met het bestaande complexe systeem en bedrijfslandschap in plaats van het leveren van waarde. Er is geconstateerd dat tot 75% van de totale projectinspanning nu wordt besteed aan software-integratie en migratie in plaats van aan nieuwe functionaliteit.
De IT-industrie als geheel heeft een slecht succespercentage bij het leveren van dergelijke grootschalige veranderingen voor haar klanten. Het CHAOS-onderzoek van de Standish Group laat zien dat het succes van IT-projecten de afgelopen twintig jaar over het algemeen is verbeterd, maar zelfs in 2006 mislukten grote IT-projecten nog steeds vaker dan dat ze slaagden. De engineering van veranderingen en in dergelijke omgevingen vertoont veel parallellen met de zorgen van de bouwsector bij de herontwikkeling van industriële of verontreinigde terreinen. Ze zitten vol gevaren, onverwachte complexiteit en zijn vaak riskant en duur om te saneren. De geaccumuleerde complexiteit van IT-omgevingen heeft ze tot “Brownfield” sites gemaakt.
Het is niet de complexiteit van de nieuwe functie of van nieuwe systeemkenmerken die de wortel van grote projectmislukkingen zijn – het is ons begrip en communicatie van de algemene eis (zoals geïdentificeerd in De Mythische Mens Maand). Om te slagen, moeten de vereisten een nauwkeurig en grondig begrip van de beperkingen van de bestaande business en IT omvatten. Huidige “Greenfield” tooling en methoden gebruiken vroege, informele en vaak onnauwkeurige abstracties die in wezen dergelijke complexiteit negeren. Vroege, slecht geïnformeerde abstracties zijn meestal verkeerd en worden vaak laat in de constructie ontdekt, wat resulteert in vertragingen, duur herwerk en zelfs mislukte ontwikkelingen. Een Brownfield-georiënteerde aanpak omarmt bestaande complexiteit, en wordt gebruikt om het totale solution engineering proces betrouwbaar te versnellen, inclusief het mogelijk maken van gefaseerde, incrementele veranderingen waar mogelijk.
Brownfield neemt de standaard OMG model/patroon-gedreven aanpak en zet deze op zijn kop. In plaats van de conventionele aanpak van het starten met een Conceptueel Model en het afbouwen naar Platform Specifieke Modellen en code generatie, begint Brownfield met het oogsten van code en andere bestaande artefacten en gebruikt patronen om formeel opwaarts te abstraheren naar de Architectuur en Business tier.
Standaard Greenfield-technieken worden vervolgens in combinatie gebruikt om het gewenste bedrijfsdoel te definiëren. Deze “meet in the middle” techniek is bekend van andere ontwikkelmethoden, maar het uitgebreide gebruik van formele abstractie en het gebruik van patronen voor zowel ontdekking als generatie is nieuw.
De onderliggende conceptuele architectuur van alle Brownfield tools staat bekend als VITA. VITA staat voor Views, Inventory, Transformation en Artifacts. In een VITA architectuur, kan de probleemdefinitie van de doelruimte worden gehandhaafd als afzonderlijke (hoewel verwante) inheemse “headfulls” van kennis bekend als Views. Het kernvoordeel van een View is dat het gebaseerd kan worden op vrijwel elk formeel gereedschap. Brownfield dringt niet een enkele tool of taal op een probleem ruimte – een kern principe is dat de headfulls blijven worden gehandhaafd in hun oorspronkelijke vormen en tools.
Native Views worden vervolgens samengebracht en gekoppeld in een enkele Inventory. De Inventory wordt vervolgens gebruikt met een reeks van Transformation mogelijkheden om de Artifacts die de oplossing nodig heeft te produceren.
Views kunnen momenteel worden geïmporteerd uit een breed scala van bronnen, waaronder UML, XML-bronnen, DDL, spreadsheets, enz. De Analysis and Renovation Catalyst tool van IBM heeft deze mogelijkheid nog verder uitgebreid door gebruik te maken van formele grammatika’s en Abstract Syntax Trees, waarmee vrijwel elk programma kan worden geparseerd en omgezet in een View voor opname in de Inventory.
Het snelle cyclische karakter van de discovery, re-engineer, generate en test cyclus die bij deze benadering wordt gebruikt, betekent dat oplossingen iteratief kunnen worden verfijnd in termen van hun logische en fysieke definities, naarmate meer van de beperkingen bekend worden en de architectuur van de oplossing wordt verfijnd.
Iteratieve Brownfield ontwikkeling kan de geleidelijke verfijning van logische en fysieke architecturen en incrementeel testen voor de hele aanpak, wat resulteert in de ontwikkeling versnelling, betere kwaliteit van de oplossing en goedkopere defect verwijdering. Brownfield kan ook worden gebruikt voor het genereren van oplossing documentatie, ervoor te zorgen dat het altijd up-to-date en consistent over verschillende gezichtspunten.
De Inventaris die wordt gecreëerd door middel van Brownfield verwerkt kan zeer complex zijn, zijnde een onderling verbonden multi-dimensionale semantisch netwerk. Het kennisniveau in de Inventaris kan zeer fijnkorrelig zijn, zeer gedetailleerd en onderling samenhangend. Dergelijke zaken zijn echter moeilijk te begrijpen en kunnen een barrière vormen voor communicatie. Brownfield lost dit probleem op door concepten te abstraheren via een artisan’s best guess, waarbij bekende patronen in de Inventories worden gebruikt om relaties op een hoger niveau te extraheren en af te leiden.
Formele abstracties maken het mogelijk de complexiteit van de Inventory te vertalen naar eenvoudigere, maar inherent nauwkeurige, representaties voor eenvoudiger consumptie door degenen die de probleemruimte moeten begrijpen. Deze geabstraheerde Inventaris modellen kunnen worden gebruikt om automatisch meerlaagse architectuur representaties te renderen in tools zoals Second Life.
Dergelijke visualisaties maken het mogelijk om complexe informatie te delen en te ervaren door meerdere individuen van over de hele wereld in real time. Dit verbetert zowel het begrip als het gevoel van één team.