Werkwijze

Om onze bouwstenen “de gebruikers centraal” en “doordachte software maken” te kunnen doorvoeren in al onze projecten besteden we veel zorg aan de manier waarop we software ontwikkelen. Daarnaast is het van belang dat onze werkwijze voorkomt dat een project uitloopt (qua tijd en budget) of zelfs volledig faalt.

Want zeker op het gebied van softwareontwikkeling zijn er de nodige valkuilen. Het zijn voornamelijk bekende fouten en problemen, die lang geleden al zijn erkend, en toch door veel bedrijven steeds weer opnieuw worden gemaakt. Het onder controle krijgen van een ontwikkeltraject vergt dus meer dan alleen een manager en wat programmeurs. (Zie voor meer informatie het volgende artikel in de online encyclopedie wikipedia: History of software engineering)

Bij Think# besteden we dan ook tijd aan het onderzoeken van de beste manieren om een project aan te pakken. We maken gebruik van de laatste nieuwe inzichten op het gebied van projectbeheersing en ontwikkeling. Momenteel zijn dit de zogenaamde lichtgewicht methodieken zoals: agile development en extreme programming (XP). Er zijn een drietal kernmerken hieruit die voor ons centraal staan.

Kernelementen:

  • Verdeel en heers lees meer »

    Grotere projecten worden eerst in kleine modules verdeeld. Elke module beschrijft in de regel een kerngedeelte van het systeem. Vervolgens worden deze losse delen stuk voor stuk ontwikkeld. Elke module is echter na ontwikkeling al te gebruiken. Op deze manier wordt het systeem ‘incrementeel’ opgeleverd.

    Hieraan zijn voor zowel de klant als ontwikkelaar een aantal belangrijke voordelen aan verbonden:

    • het project wordt overzichtelijker en beheersbaarder.
    • U krijgt sneller inzicht in het uiteindelijke systeem doordat u al onderdelen heeft om mee te werken.
    • De volgorde van de ontwikkeling kan na elke module worden aangepast zodat u kunt bepalen welke module als volgende moet worden gebouwd.
    • Het inzicht in de totale doorlooptijd en kosten wordt duidelijker en vooral realistischer.

  • Terugkoppeling met gebruikers lees meer »

    Het belangrijkste onderdeel van een systeem? De gebruiker! Het is voor ons daarom ook niet meer dan logisch dat dit onderdeel de meeste aandacht verdient tijdens de ontwikkeling.

    Zo ontwikkelen we uit een eerste set wensen en eisen al direct een aantal prototypes waarmee we kunnen nagaan of de goede richting wordt ingeslagen. Tijdens het gehele traject zal veelvuldig gebruik worden gemaakt van schetsen en prototypes om alle partijen op één lijn te krijgen en te houden. Hierdoor ontstaan de volgende voordelen:

    • U voelt zich, en bent ook, meer betrokken bij de ontwikkeling van uw systeem of product.
    • U bepaalt vooraf en tijdens wat u wel en niet krijgt (geen verassingen na bijvoorbeeld een half jaar ontwikkeltijd!)
    • U kunt sneller nieuwe of duidelijkere wensen formuleren zodra u iets tastbaars heeft (in plaats van een 160 pagina’s tellende beschrijving).
  • Testen, testen? testen! lees meer »

    Testen is een belangrijk deel van de ontwikkeling en wordt ook als zodanig behandeld. Alle stukken programmatuur worden altijd intern getest, zowel automatisch als handmatig, op een gestructureerde manier.

    De standaard aanpak hierbij is dat de ontwikkelaar van een onderdeel nooit zijn eigen gedeelte test, maar dat een collega dit doet. Op deze manier wordt er altijd ‘vers’ gekeken en is de kans dat fouten er doorheen glippen minimaal. Er is tenslotte niets vervelender dan een nieuw systeem wat de helft van de tijd niet werkt vanwege fouten.

    Zeker voor de acceptatie van het systeem bij nieuwe gebruikers, waarvoor de verandering naar een nieuw systeem al wennen is, is het dan ook belangrijk dat het systeem goed functioneert.

Een gemiddelde ontwikkelcyclus bij Think# ziet er als volgt uit: