Uitleg
Om gezamenlijk op een efficiente en prettige wijze goede software af te leveren, nu en in de toekomst, zijn er richtlijnen nodig waar één ieder zich aan moet houden. Door middel van dit manifest trachten wij in die richtlijnen te voorzien.
Algemeen
In het algemeen verwachten wij van onze ontwikkelaars kennis, vaardigheid en ervaring op het gebied van software development en programmeertalen, met name op het gebied van de producten die wij leveren. Affiniteit met je vakgebied en de bereidheid om op de hoogte te blijven van de nieuwste ontwikkelingen op het gebied van nieuwe media en technologie zijn van groot belang en dienen ook gestimuleerd te worden vanuit het bedrijf.
Communicatie & Samenwerking
Misschien wel de belangrijkste factoren tijdens het ontwikkelingsproces zijn communicatie en samenwerking. Er zit een heel traject tussen het oorspronkelijke idee en het eindproduct en om dit allemaal soepel te laten verlopen is het onontbeerlijk dat er regelmatig wordt overlegd en getoetst.
In het algemeen bestaat de realisatie van een product uit de volgende fases:
- Initialisatie
- Ontwerp (zowel technisch als grafisch)
- Planning
- Ontwikkeling
- Analyse (review)
- Ingebruikname (deployment)
Enkele punten met betrekking tot de genoemde fases:
- Het grafisch ontwerp van het product dient afgestemd te worden op het technisch ontwerp zoals aangegeven door de front- en/of back-end developers.
- De projectleider maakt samen met de ontwikkelaars een realistische planning.
- Overleg voorafgaand en tijdens de ontwikkeling van de software vooral ook met je collega's. Dit helpt je om jouw ideeen te staven en zorgt er ook voor dat je tijdens de reviewfase niet voor verassingen komt te staan.
Software Ontwikkeling
Er zijn een aantal bestaande ontwikkelingsprincipes waar wij graag aan vast houden. We leggen ze kort even uit:
- KISS - Dit betekend letterlijk "Keep It Simple, Stupid" en komt er op neer dat een eenvoudige, begrijpbare aanpak de voorkeur verdient boven een complexe oplossing.
- Agile Development - Dit principe gaat uit van een proces waarin er iteratief wordt gewerkt. Dat wil zeggen, werk met prototypes en pseudo-code en zet dit stap voor stap om tot een eindproduct. M.a.w.: ontwikkelingen en functionaliteit komen iteratief en incrementeel tot stand.
- Refactor - Herschrijven. Past goed bij bovenstaand punt. Code is nooit af, maar altijd in ontwikkeling. Is er ruimte voor verbetering, doe dat dan.
- Daar tegenover staat wel dat pragmatisme en perfectionisme in balans moeten zijn. Zoals in de intro al staat: "practicality beats purity"
- Test-Driven Development - Schrijf code met het doel de unit tests succesvol te doorlopen, maak de unit tests niet achteraf.
- Don't Reinvent The Wheel - Maak liever gebruik van bestaande oplossingen die hun effectiviteit hebben bewezen dan zelf iets nieuws te verzinnen.
- Expliciet - Schrijf duidelijke code die nauwelijks of geen uitleg behoeft.
- Documentatie - Waar nodig, documenteer je code en houdt ook wikipagina's bij. Dit voorkomt frustratie in de toekomst.
- Maintainable Code - Veel van wat we nu maken moeten we in de toekomst blijven onderhouden en op voortbouwen. Zorg er dus voor dat je code begrijpelijk, beheersbaar en uitbreidbaar is, ook voor eventuele nieuwe collega's.
- Stick To The Model - Door niet af te wijken van onze bouwprincipes wordt het voor iedereen prettiger werken.