MetaFactory Herfst Hackathon 2019

Donderdag 19 en vrijdag 20 september vond ter kantore MetaFactory de tweejaarlijkse Hackathon plaats. De lopende projecten werden terzijde geschoven teneinde prangende issues bij de hoorns te vatten en uitdagende vraagstukken op te lossen waar doordeweeks geen tijd voor is.

Marnix, voordat de hackathon van start ging: “De bedoeling van een hackathon is om gezamenlijk aan een thema te werken. Het doel is, in ons geval binnen 2 werkdagen en buiten de projecten, om met het gehele team van 7 developers aan innovatieve en creatieve oplossingen te werken en lang lopende problemen op te lossen. En we hebben er nogal wat! Enkele challenges die op de wishlist staan, zijn de IntelliJ Plugin, Java Code Instructions in Java, Code Instructions for TypeScript en groeperen van code-instructies. Zo! Daar kunnen de heren zich in vastbijten.”

Dat gaan jullie toch niet in 2 dagen oplossen Marnix…?

“Nee, zeker niet. Alhoewel er 19 en 20 september geen projectdruk is – de lopende sprint stopt namelijk en we gaan ook ’s avonds door – gaat het niet lukken om al de genoemde zaken te adresseren. In gezamenlijk overleg kiezen we 1 of 2 onderwerpen uit en gaan daarmee aan de slag, naast de erfenis die er nog ligt van de laatste hackathon: een op pauze gezet Polyglot Java Patterns-project.

Tijdens de projecten voor onze opdrachtgevers moeten we onze technische ambitie een beetje inperken omdat we niet helemaal los kunnen gaan. Dat is prima hoor. Maar ‘hier en daar’ stapelen zich wel dingetjes op waarvan we weten dat het beter kan, mooier, sneller, vloeiender en soms zelfs intelligenter. Goed is vaak goed genoeg. En dat is ook logisch in het licht van de sprint, de planning en de afgesproken offerte.

De hackathon is een soort terugkerend laboratorium waarbij onze ontwikkelaars de gelegenheid krijgen (of nemen, binnen MetaFactory is het een afspraak) om kundigheid te tonen en het praktische met het aangename te combineren. Er hangt altijd een apart sfeertje en het gebeuren zal deze keer verslagen worden en vastgelegd in een blog met korte clipjes. Pizza, bier, muziek ietsje harder aan, je kent het wel.”

De hackathon is dus ook om de ontwikkelaars uit te blijven dagen en te prikkelen?

“Ja, precies. In de vorige hackathon is men begonnen met de nieuwe versie van de IntelliJ Plugin. Wij werken dagelijks met de MetaFactory tool en genereren wel twintig keer code. IntelliJ is onze ontwikkelomgeving dus het is superhandig als we vanuit IntelliJ MetaFactory kunnen bedienen. De huidige plugin stamt uit 2016 en daar valt een hoop op af te dingen. We willen makkelijk metadata kunnen filteren, toevoegen, en hebben wensen als ‘genereer deze code alleen op basis van deze ene pattern’, of ‘genereer alle code maar dan alleen gebruikmakend van dit modelobject’. De dingen waar we dagelijks mee bezig zijn willen we zo makkelijk mogelijk onder handbereik en zonder onze omgeving te verlaten.”

Dat is één…

“Tweede punt is XML. MetaFactory leunt heel erg op XML, een ouderwetse beschrijvingstaal. Dat kan wel iets hipper en eigenlijk hoort het in Java. We zijn in een vorige hackathon een Polyglot Java Patterns-project gestart: we hebben nu een bestaand XML-pattern om REST (Representational State Transfer) controllers te genereren, wat moeten we nou in Java schrijven om exact dit pattern te kunnen uitvoeren? We zijn al een heel eind: we hebben een unit test, een parser…”

Gebruiken jullie dit nu al op de projecten?

“Als het af is gaan we dat zeker doen. En dat hopen we na de 20e voor elkaar te krijgen. Kijk, wij genereren vanuit een model een volledig functionerende backend  met een AngularJS frontend en een Angular frontend. Om dat allemaal onder controle te houden hebben we heel veel metadata. Soms gluren we in de code vragen we ons af waarom er een bepaalde code staat. Ofwel: welke metadata heeft nu dit stukje code getriggerd? Onze wens is een knopje waarmee je MetaFactory kunt instrueren om te monitoren op basis van welke metadata je iets geschreven hebt. Een soort kader, een stukje commentaar dat de ontwikkelaar helpt als je het even niet meer weet. En dat gebeurt regelmatig, want wat wij doen is best complex. Die extra regels aan kader helpen je dan weer om een volledig beeld te krijgen. Zodat je weet ‘dit staat er en daarom’. Die kennis is precies de reden waarom grote IT-projecten misgaan: men heeft het overzicht niet meer. Dat kan ook niet anders bij projecten waar tientallen developers aan werken. Met MetaFactory beperk je die mankracht maar is de kennis gebundeld in metadata.”

Super interessant. Lees er hier meer over.

Marnix met zijn laatste woord: “Het doel van MetaFactory is om ‘in control’ te blijven. Op basis van metadata neemt MetaFactory beslissingen en het zou heel handig zijn als dat stuk zo perfect mogelijk in de tool zit. Bovendien is het goed dat iedere ontwikkelaar die bij ons werkt, naast dat hij met de tool werkt, ook zo goed als mogelijk in de tool kan werken. We gaan donderdag en vrijdag keihard ons best doen!

Een verslag van de MetaFactory Herfst Hackathon tref je op deze pagina aan.