Daar zullen de meningen vast over verdeeld zijn, maar ik noem mezelf ook 'developer' of ontwikkelaar en ben van mening van dat daar ook ontwerpen bij zit en een eerste test rondje.
Iemand die het ontwerp maakt en de functionaliteiten redelijk diep vastlegt, maar zelf niet programmeert noem ik een software architect of software designer, die zit meestal met de klant aan tafel en probeert uit te vinden wat de eisen zijn en hoe deze naar software omgezet worden. Een goede architect zal dan op dat moment al kunnen beslissen wat technisch mogelijk is en wat niet kan, vaak zal daar een middenweg gezocht worden tussen technische mogelijkheden en het afstemmen van bedrijfsprocessen daarop, met in het achterhoofd de kosten en ontwikkeltijd.
Zo'n ontwerp gaat dan naar een programmeur die het programma echt gaat schrijven, hoeveel vrijheid die heeft is sterk afhankelijk van (de grootte van) het bedrijf en de werkwijze. In sommige situaties krijg je op code-niveau al door wat de resultaten moeten zijn van een handeling, wat de invoer moet zijn en zelfs qua interface ligt al vast hoe het scherm er moet gaan uitzien. In andere gevallen krijg je een bedrijfsproces te horen en mag je zelf bepalen hoe je dat er wil laten uitzien.
Daarna wordt (eerst een concept van) de software aan de klant gepresenteerd en komt daar feedback op, in hoeverre je dat dan weer moet aanpassen is weer erg afhankelijk van het bedrijf, de werkwijze en in hoeverre je de klant betrekt bij de ontwikkeling.
Daarna komt een testfase, dat vind ik zelf echt gespecialiseerd werk en is iets dat vaak onderschat wordt. Daar moet je echt testplannen ontwikkelen die heel erg afhankelijk zijn van het product. Bij een klein stukje software zal een groot deel van het testen misschien zelfs door de klant gebeuren. Bugje gevonden? Bel even op, dan regelen we dat en heb je binnen een dag een nieuwe versie. Maar bij een medische applicatie kan je testscenario's van 6000 pagina's tegenkomen met 4-5 mensen die alleen maar testen, want het is natuurlijk redelijk laat als je er tijdens een operatie pas achter komt dat op de scan van het hart de afmetingen van bloedvaten niet kloppen. Gevolg is bijna vanzelf dat een nieuwe versie daar maar één keer per jaar ofzo uit komt.
Dus samengevat, ik vind een developer iemand die een groot deel vrijheid heeft tijdens het programmeren, je krijgt een bedrijfsproces, hebt eventueel zelf wat contact met de klant en bent verantwoordelijk voor een groot deel van het hele proces. Voordeel daarvan is dat je zelf je eigen grenzen kent en je als je een een beetje goed in je vak bent, je een hele mooie oplossing kan bieden. Het is vaak de uitdaging om ingewikkelde bedrijfsprocessen te vertalen naar zo simpel mogelijke software, dus zo min mogelijk invoerwerk. Maar dat is een vak apart en is iets dat niet iedereen kan, vaak is programmeren en ontwerpen daarom apart.
Dat is ook het lastige aan software, het programmeren zelf is heel logisch denken en een heel ander proces dan een bedrijfsproces analyseren en de werkwijze van klanten doorgronden, vaak zie je ook dat de werkwijze in het bedrijf veranderd na het automatiseren, al was het maar omdat er eens grondig is gekeken naar de bedrijfsprocessen en men er achter komt dat het eigenlijk veel makkelijker of efficiënter kan.
Dus het vinden van die balans tussen software en bedrijfsproces is waar een goede developer de brug kan slaan. Wanneer je één klant hebt is dat overigens weer een ander verhaal dan wanneer je er duizend hebt, want je kan het nooit voor iedereen 100% goed maken, die afweging tussen wat maak je wel en wat maak je niet, is ook iets wat een goede developer moet kunnen afwegen.
Daar zit dan denk ik ook het verschil in salaris, de ene ontwikkelaar is de andere niet, over het algemeen krijg je meer geld als je die brug kan slaan tussen bedrijf en sotware, maar een goede programmeur is natuurlijk ook heel waardevol, zeker voor specialistische platformen. Maar over het algemeen is het idee, en dus het ontwerp, het meest waardevol, de technische uitwerking kan je aanpassen. Maar dat zie je in elke branche eigenlijk wel, je moet eerst een goed idee hebben om een goed product te kunnen fabriceren.