MENU

Blog

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 een SDA cursus?

MetaFactory biedt Software Development Automation cursussen aan met bijbehorend certificaat en met een SDA-genius award. Waarom zou je die volgen?

In een Software Development Automation (SDA) cursus leer je twee dingen:

  1. Het herkennen van patronen binnen software en de variatie binnen deze patronen.

  2. Het werken met een SDA-tool. Je leert de SDA-tool MetaFactory Codegenerator te gebruiken.

Software Development Automation

Met Software Development Automation (SDA) wordt het programmeren geautomatiseerd. Waarom is dat fijn voor een ontwikkelaar?

Een software engineer is trots op zijn eigen code en de applicaties die hij ontwikkelt. De applicaties doen wat ze moeten doen en de code is een lust voor het oog. Geen wonder dat ontwikkelaars terughoudend zijn tegen code generatoren, of Model Driven Architecture tools. Er zijn toepassingsgebieden, waarbij generatoren, of MDA-tools bruikbaar zijn, maar het voldoet zelden aan de norm en standaarden die een excellerende ontwikkelaar aan software code stelt. MetaFactory is geen generator of MDA-tool.

Code quality SAFe

MetaFactory ondersteunt de Code Quality van SAFe (Scaled Agile Framework)

Stelling

MetaFactory ondersteunt de Enterprise en System Architect bij het verbeteren van Code Quality binnen SAFe. MetaFactory doet dit door de Architectural Runway van SAFe in Patterns op te slaan en over te dragen tussen individuele Agile teams.

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: