The Art Of Software Architecture
Casper
Koken op niveau (click here for English version)

Software Architectuur wordt steeds complexer. Een aantal jaren geleden werd vaak gekozen voor een totaal oplossing; “Best-of-Suite”. Vandaag de dag zie je steeds meer een aaneenschakeling van losse componenten, allemaal het beste in het uitvoeren van een specifieke taak; “Best-of-Breed”.
Hoe kun je als Software Architect nu om gaan met deze trend? Ik vergelijk het vaak met eten (heb ook bourgondische levensvoorkeur). Zie de Software Architect als een Chef Kok en vergelijk de architectuur met een menu. De applicaties zijn de ingrediënten. Keuzes welke een Chef maakt moet jij ook maken; ….. Hoeveel gangen heeft het menu? Zoet of hartig? Veel of weinig? Dure (exclusieve) of goedkope gerechten? Zelfgemaakt ijs of van de supermarkt? ….. Ook de wijze van bereiden, hoeveelheden en timing zijn van belang voor een super gerecht.
Laten we eerst eens kijken naar de ingrediënten. In een Hollands gezin werd er vroeger Hollandsepot gekookt (en geprakt of gestampt). Volgens een vast recept, op grootmoederswijze (Best-of-Suite). Er was één uitzondering op zondag; “de Chinees”. Dat had te maken met vader en zijn Studio Sport.
Zo’n 50 jaar geleden werd de paprika in Nederland geïntroduceerd. Vanaf dat moment zijn er tal van nieuwe - soms exotische - ingrediënten bij gekomen. Ook een tal van nieuwe recepten. De “Fusion Keuken” deed zijn intrede. Hierbij worden verschillende stijlen gecombineerd tot een smakelijke maaltijd (Best-of-Breed). Nog even over die recepten, hebben jullie dat nou ook? Je volgt een recept - met militaire precisie – maar het resultaat is niet hetzelfde als op het plaatje of op televisie, …. oh ja het duurde ook twee keer zolang. Terwijl de Chef soepel alles voordoet en daar bij nog grapt; “.... Een ieder kan het maken
....”. Yeah right, dat valt dus tegen. Zeker als je daarbij nog gaat experimenteren met verschillende ingrediënten: Chocolade is op zich lekker en tomaten ook, maar bij elkaar?
Bovenstaande kun je één op één vertalen naar Software Architectuur. Architectuur principes (recepten) zijn prima te combineren met allemaal nieuwe applicaties (ingrediënten). Je moet je wel telkens de vragen stellen: Waardoor, waarom, wanneer, waarmee en hoe? Dit zijn de onderliggende vragen achter een goede en flexibele architectuur. De keuzes welke hieruit voortvloeien zijn niet te vatten in een If-Then-Else-procedure (recept). Je heb een professioneel team nodig voor de bereiding en veel oefenen want: “.... Oefening baart kunst ....”.
Casper.
Blog

Nu er veel nagedacht wordt over Digitale Transitie rijst de vraag; “ Wat doen we met al die digitale gegevens? ” Waar vroeger de website het eindstation was zijn er anno 2020 betere oplossingen. Waarom je beperken tot een website, of mobiel? “ -- Mobile first -- ” is een veel gehoorde kreet. Ik pleit er voor dat om te bouwen naar “ -- API-first -- ” (API staat voor; Application Programming Interface). Als we de software architectuur verdelen in een voor- en achterkant en we zetten daar een laag tussen die dat allemaal verbindt. We waren immers toch al bezig met het schaalbaar maken van de backend systemen (achterkant) in het kader van de digitale transformatie (Lees ook mijn blog over Digitale Transformatie , https://www.casperotto.nl/digitale_transformatie ). Hoe mooi is het als je een API-laag creëert waarop je alles zou kunnen aansluiten: een website of een mobiele applicatie of een koppeling met een ander platform of ….. wat je maar wil. Je bent flexibel om te doen wat voor jouw bedrijf het beste is. Bijvoorbeeld voor klanten een portaal realiseren waar ze zaken zelf kunnen regelen. Of koppelen met een ander portaal van een partner bedrijf. Ongekende mogelijkheden. Van belang is wel om de digitale transformatie goed door te voeren. Als systemen op een goede manier gekoppeld zijn heb je daar veel profijt van. Belangrijke vraagstukken zul je moeten beantwoorden (onder andere); • Welke delen van de architectuur gedragen real time, welke niet? • Waar leg ik gegevensverzamelingen aan? • Waar moet ik buffers creëren om niet (te) afhankelijk te zijn van andere systemen? • Waar maak ik gebruik van API’s en waar van (micro) services? Belangrijk is om goed het evenwicht in het oog te houden. Net als met alle goede apparaten moeten de componenten in balans zijn. Alleen dan werkt het optimaal samen. Naast het technische is het ook belangrijk dat je een groep met de juiste mensen samen stelt. Met focus op techniek, business en financiën. Multi disciplinair, laat ze samen werken, stel kaders op maar zo min mogelijk doelen. Laat het team dat doen, je kunt de uitkomst toetsen aan de strategie welke je voor ogen hebt. Misschien word je wel verrast met een uitkomst die je niet voor mogelijk had gehouden. Dat geeft je als ondernemer ook een boost, nieuwe terreinen verkennen, nieuwe dingen leren en ontdekken. Iedere disruptieve gebeurtenis, hoe vervelend ook, opent de deur voor nieuwe kansen en oplossingen. Laten we er wat mee doen! Casper. https://www.casperotto.nl/ https://www.casperotto.nl/blog