MENU

Software ontwikkelproces herhaalbaar

Reply

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:

  • Testen worden geautomatiseerd d.m.v. unittesten;
  • Gebruikerstesten worden geautomatiseerd met tools als Silenium en Fitnesse;
  • Build processen worden geautomatiseerd met ANT en Maven;
  • De nieuwste trend is CD/DevOps (Continuous Delivery).

Met continuous delivery wordt het deploy process volledig geautomatiseerd en herhaalbaar gemaakt.

Herhaalbaarheid is een ander groot voordeel van automatisering. Als processen eenmaal herhaalbaar zijn gemaakt, dan kunnen ze volledig automatisch worden uitgevoerd op ieder moment van de dag. Herhaalbaarheid biedt o.a. de volgende voordelen:

  • snelheid;
  • aanpasbaarheid;
  • overdraagbaarheid.

Door een proces herhaalbaar te maken kan het eindproduct worden aangepast door middel van het aanpassen van dit automatiseringproces: Stel je produceert iets d.m.v. een lopende band of robot, dan kan je beter de lopende band aanpassen en opnieuw produceren, dan met de hand het eindproduct aanpassen. Dit geldt zeker voor software, omdat het weggooien van software en opnieuw geautomatiseerd bouwen niets kost. Deze manier van werken is echter nog zeer zeldzaam en wordt nog bijna niet toegepast. Ik denk dat 99% van de software op een volledig ambachtelijk manier en handmatig gemaakt wordt. Hele “legers” van ontwikkelaars worden ingezet om een nieuw stuk software te produceren. Dat is eigenlijk vreemd, want uitgerekend software ontwikkelaars (en alle rollen er omheen) houden zich bezig met automatisering! Gek genoeg wordt bij de ontwikkeling van software weinig gebruik gemaakt van automatisering. MetaFactory is een product waarmee het software ontwikkelproces kan worden geautomatiseerd en herhaalbaar gemaakt. Bij ontwikkelaars roept dit vaak direct allerlei associaties op: generatoren, 4GL, MDA, MDD enz. Toch geldt voor MetaFactory het volgende:

  • MetaFactory is geen generator;
  • MetaFactory is geen MDA of MDD;
  • MetaFactory is geen 4GL.

Een generator wordt eigenlijk altijd gezien als een blackbox: de ontwikkelaar stopt er iets in en de generator produceert snel een heleboel regels voor een specifiek doel (pojo’s, dao’s, crud schermen enz.). Kenmerk van een generator is dat de ontwikkelaar nauwelijks tot geen invloed heeft op het proces en dus op het eindproduct. MetaFactory is een Software Factory. Lees meer over het verschil tussen een generator en een Software Factory. De input van MetaFactory (xml modellen, patterns en velocity en/of freemarker templates) mogen juist niet als blackbox gezien worden. De ontwikkelaar moet precies weten wat er in de MetaFactory input staat, waar het voor dient en hoe het eindproduct (java code, xml bestanden en platte files) kan worden aangepast d.m.v. het aanpassen van deze input.

Waarom is MetaFactory geen MDA (Model Driven Architecture) of MDD (Model Driven Development)? Belangrijk kenmerk van MDA/MDD tools is dat de gebruiker van deze tools niet een ontwikkelaar is. Bij MDA/MDD wordt gestreefd om software te bouwen met grafische tools en door functionele ontwerpers, i.p.v. met ontwikkelaars die code aan het schrijven zijn. Dat is een andere tak van sport! De gebruiker van MetaFactory is een senior developer of architect die precies weet hoe hij zijn code wil schrijven en waarom hij zijn code op die manier schrijven. Tevens beschikt deze gebruiker over de nodige hoeveelheid abstract denkvermogen omdat er anders naar de code wordt gekeken. De gebruiker van MetaFactory “bestuurt” MetaFactory en laat de code geautomatiseerd produceren volgens de instructies die hij zelf heeft opgegeven. De besturing van MetaFactory is werk wat alleen een ontwikkelaar zelf kan.

In een volgend artikel ga ik verder op de gevolgen voor software ontwikkeling als deze nieuwe manier van werken wordt toegepast.



Eén reactie

  1. ICTindustrie schreef:

    Op het moment dat dit proces automatisch gaat word er zoveel tijd bespaard, dus hopen dat dit snel het geval is.

Laat een reactie achter