MENU

Auteur archief

Automatisch testen kan nóg intelligenter

Een softwareproject wordt leuker en interessanter om te bouwen naarmate je als team dichter bij het beoogde resultaat komt. Bij het opleveren van nieuwe features wordt echter ook de controle van de bestaande functionaliteit een steeds belangrijker aandachtspunt.  Wil je het omvallen van oude functionaliteit snel kunnen detecteren dan is het noodzakelijk om steeds opnieuw alle mogelijke paden in je applicatie te bewandelen. Dit proces is een tijdrovende en eentonige bezigheid terwijl je als programmeur meestal liever bezig bent met het bedenken van nieuwe oplossingen.

Begin de sprint met een nieuwe oplevering

Bij MetaFactory ontwikkelen we aan twee verschillende projecten met dezelfde architectuur: AngularJS en Java met o.a. Spring. Na iedere sprint van 2 weken wisselen we met ons kleine team van project 1 naar project 2 en weer terug. Doordat we in beide projecten gebruik maken van dezelfde MetaFactory patterns kunnen we iedere sprint beginnen met een oplevering en eindigen met een oplevering.

Waarom is MetaFactory ontwikkeld

De ontwikkeling van een moderne software applicatie die werkt met een database is over het algemeen zeer tijdrovend. De hoeveelheid werk en dus tijd neemt vaak exponentieel toe met het aantal tabellen in de database (het aantal entiteiten in het logisch datamodel). Immers, voor elke entiteit moeten er verschillende zaken ontwikkeld worden: een model class, een dao class, een service, 1 of meer schermen enz.

Nu zijn er gelukkig heel veel goede frameworks waardoor de hoeveelheid code enigzins beperkt blijft. Bij webapplicaties wordt bijvoorbeeld veel gebruik gemaakt van Spring, Hibernate/JPA, Wicket, Seam/JSF of Angular. Deze frameworks leveren de componenten waarmee de applicatie gebouwd kan worden: validators, transaction management, gui componenten enz. De ontwikkelaar die een dergelijk framework gebruikt weet hoe hij deze componenten moet inzetten om uiteindelijk tot een werkende applicatie te komen.

Verschil tussen generator en software factory

Software ontwikkeling is tijdrovend en daarom kostbaar. Al decennia lang wordt er geprobeerd om software ontwikkeling te versnellen. Vele initiatieven zijn er gestart en veel initiatieven zijn inmiddels ook al mislukt. Bij software versnelling wordt vaak meteen gedacht aan code genereren of kortweg een generator. Door de vele beloftes over generatoren en de vele mislukkingen, omdat het niet goed werkt, heeft het woord generator een negatieve lading gekregen bij veel ontwikkelaars inclusief mijzelf. Bij een generator denk ik aan allerlei tooltjes die snel een bepaald stukje software produceren. Voorbeelden:

Software ontwikkelproces herhaalbaar

Een belangrijk doel van maatwerk softwareontwikkeling is processen te automatiseren. Automatisering heeft de volgende voordelen:

  • processen gaan sneller;
  • kans op fouten worden kleiner;
  • kwaliteit neemt toe doordat er meer uniformiteit ontstaat in het eindproduct.

Binnen de IT worden ook steeds meer processen geautomatiseerd: