Deze vraag wordt mij vaak gesteld door mensen die mij al langer kennen, vooral omdat ze weten hoe sceptisch en kritisch ik ben ten opzichte van ‘tooling, onder steunende producten, frame-works, platformen, etc.’.

En dat ben ik niet zonder reden. In 28 jaar in de IT heb ik veel producten/oplossingen voorbij zien komen die op het eerste gezicht veel belovend waren. Maar in de praktijk, waren de meeste vaak maar beperkt inzetbaar.

Voornaamste redenen:

  • Veel producten waren gefocust op het leveren van hele specifiek functionaliteit, ontwikkeld met een heel specifiek doel.
  • Afhankelijk van een andere specifieke versie van software.
  • Gesloten. Kunnen niet aangepast of uitgebreid worden.
  • Werkten goed met een paar gebruikers, maar op het moment dat er veel gebruik gemaakt van werden ze erg langzaam
  • Aanpassingen konden alleen in productie gedaan worden. Geen development, test, productie omgeving.
  • Beperkte herbruikbaarheid
  • Niet schaalbaar
  • Geïsoleerd (niet koppelbaar aan andere systemen)
  • Slecht onderhoudbaar

 

Toekomst in software ontwikkeling

Voor mij is low code de toekomst, het dicht het gat tussen standaard (of the shelf) producten en maatwerk. Het heeft de voordelen van maatwerk software zonder de grote nadelen (lange doorlooptijd, hoge ontwikkelkosten, schaarse specialistische ontwikkelaars).

Maar waarom dan OutSystems?

Ook ik was eerst heel sceptisch ten aanzien van OutSystems, zoals veel producten op eerste gezicht heel veel belovend. Maar levert het ook de kwaliteit die ik als software architect wil bereiken? Om een hoge kwaliteit van software (onderhoudbaarheid, herbruikbaarheid, uitwisselbaarheid, aanpasbaarheid, etc.) te kunnen bereiken moet ik een aantal architectuur principes kunnen toepassen binnen het platform.

Voor mij zijn high cohesion en low coupling, encapsulation de belangrijkste architectuur principes die ondersteund moeten worden. Wat resulteert in een gelaagde, modulaire opbouw van componenten, die individueel aanpasbaar en herbruikbaar zijn.

Tot mijn verbazing zijn precies deze principes eenvoudig toe te passen binnen OutSystems. Er zijn zelfs hulpmiddelen om deze inzichtelijk te maken en te controleren (Discovery, AIMentor).

Wat verder nog van belang is.

Alleen de ondersteuning van wat voor mij als software architect belangrijk is, is natuurlijk niet voldoende.  Kan het functioneel ook dat wat ik met maatwerk kan bereiken, kan ik met een team werken, is het makkelijk te deployen, kan ik debuggen, etc.

Een aantal punten die me hierbij binnen OutSystems opgevallen zijn:

  • Fullstack (aanpasbaar, aan te vullen met maatwerk software zowel aan de backend als front-end).
  • Integreert standaard met veel gebruikte andere systemen.
  • Veel standaard componenten
  • Ondersteund deployment pipe lines (CI/CD)
  • Intuïtieve ontwikkelomgeving (AI ondersteund)
  • API ondersteuning

 

Het OutSystems Ecosystem

Wat heb ik als software architect of ontwikkelaar nog meer nodig behalve een goed platform? Training, ondersteuning, documentatie, etc.

Binnen OutSytems wordt hier heel veel aandacht aanbesteed, onder andere:

  • Courses
  • Guided Training Paths- Certificering
  • Bootcamps
  • Documentation
  • Community- Forums- Usergroups- Forge (Componenten bibliotheek door de community)- Ideas- Events zoals One Conference
  • Partner Center- Jumpstart Training- (pre) Sales training- Talent playbook

 

Samengevat

Ik denk dat ik hiermee de vraag van Marc, Outsystems, Jij?! heb beantwoord.

Als je vragen hebt of een gedeelte verder uitgewerkt wil zien, spreek/schrijf me aan.

 

#outsystems #softwarearchitect #softwaredeveloper

Marc Wetters

Senior Software Architect at LowQode