Metaprogramming

Innovatief maatwerk bouwen

Softwareontwikkeling staat aan de vooravond van een kentering. Organisaties zoeken steeds vaker hun toevlucht in low- en no-code oplossingen uit onvrede met de traditionele manier van softwareontwikkeling. Te hoge kosten en te lange doorlooptijden, de geleverde functionaliteit is minder dan verwacht, het schrijnend tekort aan ervaren ontwikkelaars … En dan is er nog het issue van schaalbaarheid en onderhoudbaarheid van de software, en de kosten daarvan.

Wij vinden het een contradictio in terminis dat het ‘automatiseringsvak’ gekenmerkt wordt door ambachtelijke processen waarbij de developer eindeloos veel coderegels handmatig schrijft. Code die vaak op min of meer dezelfde wijze ook elders in de software voorkomt. Zoveel code handmatig schrijven is kostbaar, kwetsbaar en leidt tot inconsistenties.

Metaprogramming

Want in het ontwikkelproces, dáár liggen de optimalisatiekansen. Het draait om een effectievere inzet van de factor ‘mens’ en techniek: hoe laat je de techniek slim voor de developer werken?

Ons antwoord is metaprogramming. Een wetenschappelijke aanpak met ondersteunende bewezen tooling, die het softwareontwikkelproces daar waar mogelijk automatiseert en slim gebruik maakt van eerder ontwikkelde software. Een aanpak waarbij de developer in plaats van te focussen op het produceren van véél code, de handen vrij krijgt om toegevoegde waarde te leveren in de vorm van meer goede aanpasbare code en het creëren van slimme oplossingen. Met als resultaat: een versnelling van het ontwikkelproces en hoogwaardige code die uitstekend in eigen beheer kan worden onderhouden.

Building blocks

Het principe? Ontdek de patronen in het proces en automatiseer op basis van die patronen. Metaprogrammeren bestaat uit het identificeren van patronen en die met code instructies beschrijven. Door de variëteit van de patronen vast te leggen in het metamodel wordt een spectaculaire optimalisatie slag gerealiseerd.

Bij het uitvoeren van projecten hebben we een grote hoeveelheid code instructies verzameld en daarmee building blocks gecreëerd. Met die building blocks kunnen we snel tal van gewenste deelfuncties in maatwerktrajecten vormgeven en dat reduceert het ontwikkelproces.

De Code Composer genereert alle gewenste source files, query’s, unit-tests en testscripts op basis van de code instructies in combinatie met het metamodel. Met de Code Composer elimineren we veel handmatig routinewerk bij het programmeerproces. Nieuwe projecten kunnen niet alleen sneller worden gerealiseerd, maar de software is door onze werkwijze ook beter onderhoudbaar en schaalbaar.

Code Composer

De Code Composer genereert alle gewenste source files, query’s, unit-tests en testscripts op basis van de code instructies in combinatie met het metamodel. Vergelijkbaar met een robot in de auto-industrie wordt daarmee het productiewerk geautomatiseerd. De developer krijgt zijn handen vrij om oplossingen te bedenken voor specifieke vraagstukken in het project. Dit versnelt het ontwikkelproces en levert consistente code op van uitstekende kwaliteit.

Vanuit onze drive om technologie slimmer in te zetten, hebben we een eigen white box tool ontwikkeld, de Code Composer. MetaFactory gebruikt de Code Composer natuurlijk zelf bij de bouw van maatwerksoftware, maar stelt de tool ook ter beschikking aan andere developers. Inclusief training en advies over het werken met de Code Composer. Wil je meer weten over de Code Composer? 

Bewezen Productiviteit van onze aanpak

The Art of Doing Twice the Work in Half the Time is niet zomaar een losse frase, maar het resultaat van een onderzoek. In onze interne projectadministratie hebben we een goed beeld van gerealiseerde functionaliteit en besteedde uren. Met behulp van de functie-puntanalyse analyseren we onze projecten. Onze aanpak en resultaten hebben we laten valideren door een onafhankelijk bureau IDC Metri en de conclusies delen we hier:

“IDC Metri: Over het geverifieerde project levert MetaFactory een Product Delivery Rate van 4,93 uur/FP.  Dit is beter dan marktconform. Vergelijkbare Java-projecten (zonder metaprogrammeren) hebben 50-100% meer uren nodig om dezelfde hoeveelheid functionaliteit te realiseren.”

Hierbij geldt dat onze projecten zijn uitgevoerd volgens onze kwaliteitsnormen. We praten hierbij over zowel de kwaliteit van ons software ontwikkelproces als de kwaliteit van de opgeleverde software. Bij het laatste kijken we niet alleen naar SonarQube maar ook naar security, performance, betrouwbaarheid, onderhoudbaarheid en portabiliteit.

Sneller software onwikkelen met Code Composer

Ontdek hoe onze belofte "your own great code in half the time" met de Code Composer in jouw situatie gerealiseerd kan worden.

Naar Diensten MetaFactory

Concept

Metaprogramming

Interessante artikelen