Voor het laatste geactualiseerd op

Een architect maakt een bouwplan. Of het nu gaat om de bouw van een huis of om het laten maken van een webapplicatie; alles begint bij het ontwerpen van een plattegrond. Daarbij wordt rekening gehouden met de mogelijkheden, restricties, voorwaarden, eisen en wensen. Waar moet de fundering op berekend zijn? Welke onderdelen staan met elkaar in verbinding? En wil de klant later eventueel nog kunnen aan- of uitbouwen?

Software-architectuur is misschien wel het belangrijkste onderdeel van software ontwikkeling. Het bepaalt voor een groot deel de basiskwaliteit van het product. Een gedegen architectuur is dan ook een belangrijk ingrediënt voor het langetermijnsucces van een webapplicatie. Zo is deze in een belangrijke mate van invloed op de stabiliteit en de uitbreidbaarheid van de applicatie. En, ook niet onbelangrijk, het voorkomt dat het product (te) kostbaar wordt qua onderhoud en doorontwikkeling.

Wat is software-architectuur?

Een goede software-architectuur vormt als het ware de bouwtekening van de applicatie. Het beschrijft hoe de software is opgebouwd, wat de gebruikte technieken zijn en hoe de verschillende onderdelen met elkaar in verbinding staan. Dat is handig, want zo wordt er vooraf stilgestaan bij de toekomst van de software. Zo voorkomen we dat ontwikkelaars constant uitbreidingen ontwikkelen op het startpunt en in plaats daarvan aan onderdelen van de bouwrekening werken. 

Software-architectuur eerst!

Het opstellen van de software-architectuur is de allereerste stap in het project. Pas daarna gaan de softwareontwikkelaars aan de slag. Zij gebruiken de software-architectuur namelijk als leidraad bij het opbouwen van het product.

Bij het bepalen van de architectuur houdt de architect rekening met de belangen en wensen van alle stakeholders. Hieruit komen de requirements voort waaraan de software moet voldoen, bijvoorbeeld als het gaat om de performance en beveiliging. Ook wordt in dit stadium vastgelegd hoe het systeem is georganiseerd, hoe de onderdelen met elkaar communiceren en of er sprake is van externe afhankelijkheden. Maar er is nog veel meer te bepalen, zoals welke programmeertaal er wordt gebruikt en wat de mogelijke risico’s zijn.

Dat betekent dat er goed moet worden nagedacht over de architectuur. In dit stadium neem je beslissingen die essentieel zijn. Dat wat je nu vastlegt, is verderop in het project niet zo gemakkelijk meer terug te draaien. Sla je dit onderdeel over of besteed je er te weinig aandacht aan, dan kan dat vervelende consequenties hebben.

De risico’s van een slechte software-architectuur

De gevolgen van een slechte software-architectuur kunnen behoorlijk desastreus zijn. We zetten de grootste risico’s op een rij:

  • Instabiele applicatie. Als de software-architectuur te wensen overlaat, kan de applicatie instabiel worden opgeleverd. Niemand zit te wachten op een product dat om de haverklap uitvalt, bijvoorbeeld omdat iedere nieuwe release bugs met zich meebrengt.
  • Langere ontwikkeltijd. Een matige software-architectuur zorgt voor een langere ontwikkeltijd waardoor de software kostbaarder wordt dan noodzakelijk.
  • Langzame applicatie. Niets zo irritant als een applicatie die trager dan traag is. Helaas kan dit gebeuren als er niet goed wordt nagedacht over de software-architectuur. Vooral bij webapplicaties waar data-intensieve processen (Big Data) bij komen kijken kan dit een bottleneck zijn.
  • Minder flexibiliteit. De applicatie is niet eenvoudig aan te passen zonder veel kosten te maken. Een slechte software-architectuur kan daardoor de vernieuwende ontwikkelingen binnen een bedrijf tegenhouden.

Is de architectuur van twijfelachtige of ronduit slechte kwaliteit, dan zal de doorontwikkeling van de applicatie een stroef traject worden waarin er geregeld een stap terug gedaan moet worden. Ook financieel zorgt dit ervoor dat de kosten kunnen oplopen. Zo gebeurd het geregeld dat software volledig herschreven wordt omdat bij de ontwerpfase de plank is misgeslagen.

Persoonlijk advies over software-architectuur

Vertel ons waar we je mee kunnen helpen:

Ik help je graag een stap verder in jouw project!

Software-architectuur is nooit af

Je kunt bovengenoemde risico’s vermijden door van te voren goed na te denken over de opbouw en structuur van de applicatie. Maar ook tijdens het ontwikkelproces loont het om regelmatig te checken of de software-architectuur nog wel aansluit bij de realiteit. Een goede software-architectuur is nooit definitief, maar wordt ‘parallel ontwikkeld’. Dat houdt in dat het bouwplan voortdurend kan worden aangepast aan veranderende omstandigheden, zoals een reorganisatie of de wens om een nieuwe functionaliteit toe te voegen aan de applicatie. Wat dat betreft past een goede software-architectuur perfect bij een agile softwareontwikkeling. Houd er dus rekening mee dat de visie veranderd er ook tijd gereserveerd moet worden voor het aanpassen van het fundament.

Lees ook: Agile softwareontwikkeling

Waar moet een goede software-architectuur aan voldoen?

Er is geen specifieke definitie voor wat ‘goede software-architectuur’ is. Wel zijn er richtlijnen; eigenschappen die iedere software-architectuur zou moeten hebben. Een paar voorbeelden:

  • De software is flexibel, goed werkbaar en makkelijk uit te breiden, ook op langere termijn;
  • De software blijft ook stabiel en makkelijk te onderhouden als er bugs optreden;
  • De architectuur is zo omschreven dat alle belanghebbenden het begrijpen;
  • De performance van de software gaat niet achteruit als er nieuwe functionaliteiten worden toegevoegd of andere wijzigingen worden aangebracht;
  • De software bevat geen herhalende code;
  • Refactoring van de applicatie gaat gemakkelijk.

Als de architectuur voldoet aan deze richtlijnen, zal de applicatie beter en sneller werken.

De voordelen van een goede software-architectuur

Je applicatie goed structureren kan dus veel problemen voorkomen, nu en in de toekomst. De voordelen van een goede software-architectuur zijn bijvoorbeeld:

  • Makkelijker onderhoud. Is de software gebaseerd op een goede architectuur, dan is deze makkelijker te onderhouden. Dat komt omdat de code goed overzichtelijk is, waardoor uitbreidingen eenvoudiger zijn en eventuele fouten eenvoudiger opgespoord kunnen worden.
  • Meer flexibiliteit. Nieuwe functionaliteiten zijn makkelijker toe te voegen aangezien het systeem hier al op is voorbereid. Zo is de applicatie opgedeeld in duidelijke lagen en staat de locatie voor nieuwe code al van te voren vast. Dat scheelt in de kosten en dus zal de software voor het bedrijf geen belemmering vormen om te vernieuwen. De software groeit als het ware mee met het bedrijf.
  • Hogere productiviteit. Een goede architectuur beperkt het risico op bugs en andere noodgevallen waarbij het systeem niet goed werkt of zelfs helemaal plat ligt. Ook dat scheelt tijd, geld en een hoop frustratie.

Second opinion bij software-architectuur

Software-architectuur is niet iets dat je er zomaar even bij doet. Juist in deze fase van het project is het essentieel dat je echt verstand hebt van zaken. Items als database-inrichting, het structureren van de applicatie in verschillende lagen en het bepalen van de ontwikkelrichtlijnen moeten goed geregeld worden.

Is software-architectuur niet je expertise of ontbreekt het je gewoon aan tijd, dan is het beter om deze klus over te laten aan een specialist. Ja, dat is een investering. Maar zoals je ziet, kan een slechte software-architectuur nog veel duurder uitpakken. Het spreekwoord een goed begin is het halve werk, is hier dan ook letterlijk het geval. Vooral als je wil dat de applicatie lang meegaat, is investeren in een goede softwarearchitect dus echt de beste optie.

Bij Web Whales zijn we zelf ook fan van het inhuren van externe software-architecten. Bij grote projecten vragen we dan ook geregeld een externe om zijn mening te geven. Zo houden we ook onszelf scherp en zorgen we dat de klant zekerheid heeft over het fundament van zijn applicatie.

Hoe kan Web Whales helpen?

Denk je dat er binnen jouw applicatie nog een slag te maken is rondom de software-architectuur? Vraag in dat geval een second opinion bij Web Whales aan. Onze ervaren experts kijken graag met je mee en kunnen helpen bij het verbeteren van de software-architectuur.

Ook als je alleen even wilt sparren helpen we je natuurlijk graag. We zijn telefonisch of per mail bereikbaar en nemen graag de tijd om even kennis te maken!

Geschreven door