donderdag 24 december 2009

Software ontwikkelen is een prachtvak!

We kennen allemaal de beroepen die standaard een hoog aanzien genieten in onze maatschappij. Neem nu bijvoorbeeld de chirurg, de piloot of de architect. Voor sommige mensen is het zelfs statusverhogend om te vermelden dat de broer van de neef van de schoondochter arts is. Logisch is dat natuurlijk wel, het zijn nu eenmaal beroepen die gemakkelijk tot de verbeelding spreken. De chirurg die een mensenleven redt, de architect die een prachtig – voor iedereen dagelijks te bewonderen – gebouw heeft ontworpen, en de piloot die de bijna goddelijke gave bezit om ons binnen een etmaal naar de andere kant van de planeet te vliegen.

Maar mag ik nu even de aandacht om het over een zeker zo mooi beroep te hebben (tromgeroffel): De Software Ontwikkelaar. Vergeleken met bovengenoemde beroepen bestaat dit vak nog niet zo lang en spreekt het misschien wat minder tot de verbeelding. Omdat het vak nog niet zo lang bestaat, betekent dit dat we voor veel problemen die we tegenkomen nog geen standaard oplossing hebben, en dus iets nieuws zullen moeten verzinnen. En dat is nu juist hetgeen dat dit vak zo interessant maakt. Nieuwe inzichten en technieken volgen elkaar dan ook in rap tempo op. Gelukkig houden wij dit bij ISAAC nauwgezet in de gaten en proberen we de nuttige dingen eruit te pikken.

Het schrijven van de code door de software ontwikkelaar is een creatief proces. In grote lijnen weet de ontwikkelaar wel op welke manier deze de applicatie zal gaan vormgeven, maar tijdens het ontwikkelen dienen er nog veel oningevulde vragen te worden beantwoord. Gelukkig maar, want dit is een creatief proces dat dit vak zo leuk maakt! Het is hierbij van groot belang dat een ontwikkelaar op de hoogte is van standaard design patronen (design patterns) en algemene design principes. Hieraan kan de eigen geschreven code voortdurend getoetst worden. Een goede ontwikkelaar denkt bij het schrijven van elk stuk code of dit in lijn is met de algemene design principes en weegt voor en nadelen af. Ook herkent een goede ontwikkelaar de problemen die met de toepassing van een standaard design patroon (design pattern) kunnen worden opgelost. Het kan een enorme kick geven om op deze manier hele schone, beknopte en onderhoudbare code te schrijven. Vakwerk dus!

Het goede nieuws is, dat ondanks de razendsnelle ontwikkelingen op het vakgebied, deze algemene patronen en principes veel minder aan verandering onderhevig zijn en dus de kwaliteit van de software kunnen waarborgen.

Om af te sluiten met een paar hele mooie (object georiƫnteerde) design principes:

  • Encapsulate what varies (iets dat vaak verandert, kun je beter isoleren zodat je het kunt wijzigen zonder andere onderdelen te beinvloeden).
  • Program to interfaces, not implementations (gebruik een interface om tegen een component aan te praten, zodat je de concrete component later nog kunt wijzigen).