15 tips voor betere software ontwikkeling

Goede software is kunst. Slechte software is slecht houdbaar en slecht onderhoudbaar. Meestal is dit te wijten aan de ontwerper/ontwikkelaar zelf. Hieronder een 15 tips vanuit mijn eigen praktijk als ontwikkelaar.

Betere software tip 1 – 5

15 tips voor betere software ontwikkeling

[dropcap type=”circle” color=”#ffffff” background=”#555555″]1[/dropcap]Beschrijf eerst met pen en papier wat de bedoeling is  van het gewenste systeem (brainstorm zonder structurele verplichting). Let wel, er staat pen en papier!

[dropcap type=”circle” color=”#ffffff” background=”#555555″]2[/dropcap]Vertaal daarna de krabbels en notities tot iets wat meer functioneler van aard is (functioneel ontwerp). Programmeurs houden lang niet altijd van functionele ontwerpen, omdat dit  nog redelijk ver weg af van iets dat programmeerbaar is.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]3[/dropcap]Denk nu al aan versie beheer. Niet alles wat functioneel lijkt, is ook zinvol. Maak een duidelijk onderscheid tussen de noodzakelijkheden en de nice-to-haves, zeker als er enige tijdsdruk bestaat.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]4[/dropcap]Vertaal het functionele ontwerp naar een goed technisch ontwerp. Oftewel hoe ziet de “printplaat” er uiteindelijk uit. Hoe je dit moet doen maakt in mijn ogen niet zoveel uit, als er maar iets is, waaruit het uiteindelijke product te herleiden is. Beter iets wat op een ontwerp lijkt, dan praten over ontwerp methodieken en het vervolgens toch niet gebruiken.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]5[/dropcap]Verzamel de benodigde hardware/software en ter beschikking staande technieken (de bouwdoos). Onderschat dit niet. Het zal uiteindelijk heel erg gaan bepalen of je ongelofelijk veel tijd gaat verliezen in het schrijven van die ene routine met dat dilemma, of dat je gewoon lekker software schrijft.

Betere software tip 6 – 10

[dropcap type=”circle” color=”#ffffff” background=”#555555″]6[/dropcap]Bouw prototypes van functies/routines. Dit houdt in dat een probleem pas echt een probleem is, wanneer het niet in haar eigen context kan worden geanalyseerd en getest. Een motor van een vliegtuig wordt ook niet eerst getest wanneer het vliegtuig in de lucht is. Deze motor wordt apart getest van het vliegtuig.  Dus probeer “bottlenecks” zoveel mogelijk te isoleren en zelfstandig te ontwikkelen.

geen quick and dirty oplossingen[dropcap type=”circle” color=”#ffffff” background=”#555555″]7[/dropcap]Plak niet alles aan elkaar met “quick and dirty temp glue”. Vooral als je voor het web ontwikkelt is de tijd tussen server en bezoeker van cruciaal belang. Zorg er daarom voor dat er geen onnodige zaken worden uitgevoerd, waardoor de communicatie tussen bv databaseserver (mysql?), PHP en Javascript langer duurt dan noodzakelijk (daarom is het gebruik van een framework dat schoonheid boven snelheid prefereert niet wenselijk).

[dropcap type=”circle” color=”#ffffff” background=”#555555″]8[/dropcap]Zorg voor een goede invoer/uitvoer structuur. Zorg ervoor dat de communicatie tussen systemen, platforms en databases met een eenduidige invoer/uitvoer (I/O) structuur plaats vind. Dus niet af en toe JSON gebruiken, dan weer XML of zelfs platte tekst en dan maar weer eens direct een tabel aanspreken.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]9[/dropcap]Beheers de gebruikte tools. Er is een groot verschil tussen iets goed vinden en iets goed kunnen. Ik wou persoonlijk dat ik alles goed kon wat ik goed vind. Een goede kennis van bv. Jquery behelst veel meer dan $(‘iets’) kunnen schrijven. Ajax is geweldig…als het goed wordt toegepast. Zorg er voor dat je DOM goed beheerst als je Javascript toepast.

Betere software tip 10 -15

[dropcap type=”circle” color=”#ffffff” background=”#555555″]10[/dropcap]Voor web ontwikkelaars (in spé): klik niet alleen op de “firebug” in Firefox, maar probeer een goede handleiding te vinden en leer deze add-on. Er zal een wereld voor je open gaan.

Documenteer alles wat je doet

[dropcap type=”circle” color=”#ffffff” background=”#555555″]11[/dropcap]Lees blogs en andere interessante websites, maar niet teveel en zeker niet te lang. Hoe vaak gaat er geen tijd verloren doordat er 150.000 interessante dingen zijn gevonden in het zoeken naar dat ene, wat niet gevonden wordt. Uiteindelijk gaat dit enorm ten koste van het resultaat.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]12[/dropcap]Programmeer consistent. Een goede programmeur weet niet alles, maar wat hij weet, weet hij ook optimaal toe te passen. Programmeer altijd met het perspectief dat jij het programma over tig jaar ook nog zonder kopzorgen moet kunnen aanpassen, met slechts de hulp van je eigen uitmuntende documentatie.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]13[/dropcap]Documenteer! Documenteer gedurende het hele proces. Gebruik desnoods een eenvoudige WIKI vanaf een USB stick en schrijf daarin al je notities. Documenteer ook in de source code.  Als je voor het web programmeert, laat het dan niet na (pas het wat aan misschien), maar documenteer ook hier.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]14[/dropcap]Zorg ook voor een goede afwerking. Na het laatste statement getikt te hebben, is het van belang dat je de productie netjes afwerkt. Hoe vaak gebeurt het niet dat op het eind even snel de source direct op de ftp server wordt aangepast en niet meer op de lokale ontwikkel versie. Dat is niet verstandig. Zorg voor een goede back-up.

[dropcap type=”circle” color=”#ffffff” background=”#555555″]15[/dropcap]Last but not least, leg een catalogus aan van alle technieken, routines en wat al niet meer. Deze zijn voor een volgend project weer nuttig (en dus dan tijd zal besparen).

Johan van de Merwe

Johan van de Merwe is sinds 1985 werkzaam in de automatisering. In 2007 heeft hij Enovision GmbH opgestart, welke is gespecialiseerd in internet toepassingen, presentatie en coaching. Voor Websprinter is hij werkzaam als internet coach voor het MKB.

You may also like...

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *