IT Blogs | Lees onze laatste blogs

Het geheim van succesvolle software (1): begin met inzicht in de business drivers

Geschreven door Joris Vertommen | 26-apr-2021 9:27:00

"Ken uw klant" is niet alleen het belangrijkste gebod in alles wat met marketing en verkoop te maken heeft, het is net zo belangrijk voor software development. Hoewel softwareprojecten tegenwoordig vaak een iteratief en agile karakter hebben, is het toch cruciaal om de juiste fundering voor een softwareapplicatie te bouwen voordat het project van start gaat. Daarom begint uw project met een opstartfase, waarin we een reeks workshops organiseren en visualisatie, héél veel visualisatie zelfs, gebruiken om een diepgaand inzicht te krijgen in uw organisatie en behoeften.

Van aanvraag tot voorstel in 4 stappen:

Stap 1: De business drivers in kaart brengen - doelstellingen, actoren, impact en deliverables

Om een duidelijk beeld te krijgen van uw project, identificeren we eerst de high-level business drivers, oftewel de uiteindelijke doelstellingen van het project, en wijzen we die een prioriteit toe. Hierbij proberen we een antwoord te krijgen op de volgende vragen:

  • Waarom hebt u nieuwe software nodig? En welke problemen moet de applicatie oplossen?
  • Wie zal de applicatie gebruiken? Wat zijn hun behoeften, verwachtingen en aandachtspunten?
  • Met welke systemen zal de software communiceren (bestaande bedrijfsapplicaties, data stores, data warehouse, externe systemen, cloud services...)?
  • Wat moet de oplossing omvatten – en wat niet?

Door de business drivers te identificeren, krijgen we een diepgaand inzicht in uw organisatie en uw behoeften. Hierdoor kunnen we tijdens het hele development project meedenken met u, onze klant.

Het traject van de klant in kaart brengen

Tijdens de eerste stap van de opstartfase brengen we uw "traject" in kaart. Dit zijn de paden die uw verschillende gebruikers volgen wanneer ze met de software in contact komen. Op die manier kunnen we de beste gebruikerservaring garanderen in elke stap.

Door inzicht te krijgen in de business drivers, kunnen we met de klant meedenken tijdens de hele levensduur van het softwareproject.

Stap 2: Definiëren van de projectscope - de functionele, niet-functionele, contextafhankelijke en technische vereisten

Zodra we inzicht hebben in uw business drivers, vertalen we die inzichten naar een beschrijving van de vereiste functies van de software: de functionele vereisten. Verder stellen wij een lijst op van niet-functionele vereisten (kwaliteitsattributen, zoals de gewenste prestaties). Op basis van deze inzichten en de context van de software bepalen we vervolgens de technische scope, oftewel de vereiste architectuur en technology stack.

Hierbij komen de volgende vragen aan bod:

  • Wat moet het systeem mogelijk maken, welke functies zijn nodig (functioneel)?
  • Aan welke criteria moet worden voldaan?
  • Wat is het Minimum Viable Product, de minimale set van functies die absoluut noodzakelijk zijn om een eerste impact te creëren?
  • Wat zijn de kritieke niet-functionele vereisten, met andere woorden hoe moet het systeem werken op het gebied van prestaties, schaalbaarheid, beschikbaarheid, beveiliging, betrouwbaarheid, interoperabiliteit, onderhoudbaarheid, enzovoort (niet-functioneel)?
  • Wat is de projectcontext: het applicatielandschap, de use cases, enzovoort?

Alle functies die we in deze stap identificeren worden opgenomen in een feature map, die we gebruiken om de functies in te plannen op basis van de vastgelegde prioriteiten. Zodra we de niet-functionele vereisten en de context hebben gedefinieerd, stellen we context-, component- en containerdiagrammen op. Al deze documenten vormen de richtlijnen en referentiepunten voor de software developers vanaf dag 1 tot de voltooiing van uw softwareproject.

Niet-functionele vereisten: de juiste balans vinden

Het vastleggen van de niet-functionele vereisten is essentieel, maar wordt vaak vergeten bij de voorbereiding van een softwareproject. Klanten beschouwen bepaalde kenmerken zoals prestaties en veiligheid vaak als vanzelfsprekend, omdat ze ervan uitgaan dat ze inherent zijn aan elke applicatie. Dat klopt, maar slechts tot op zekere hoogte. Factoren zoals projectbehoeften, budgetbeperkingen, bedrijfsbeleid en regelgeving hebben allemaal een invloed op uw keuze om al dan niet te investeren in een bepaalde niet-functionele vereiste. Dit is geen eenvoudige taak. Als u te veel niet-functionele vereisten vastlegt, is de oplossing mogelijk te duur om haalbaar te zijn. Maar als u te weinig niet-functionele vereisten bepaalt, zal de kwaliteit van uw software aanzienlijk dalen. Er zullen dus afwegingen moeten worden gemaakt. Wij beschikken over de vereiste ervaring om onze klanten te helpen bij het maken van de juiste keuzes.

Stap 3: De prijs bepalen

Pas wanneer alle bovengenoemde vereisten zijn opgelijst, stellen wij het projectbudget op. Samen met de software developers verdelen we de software in subtaken en koppelen we aan elke subtaak een aantal "mandagen". Onze uiteindelijke kostenraming combineert dat budget met een budget voor onvoorziene uitgaven om onverwachte gebeurtenissen tijdens de ontwikkeling te kunnen opvangen.

Stap 4: De roadmap uitstippelen

Aan het einde van de opstartfase stellen we een concreet draaiboek voor het project op, waarin de tijdlijn, releases, het aantal benodigde software developers, de behoefte aan ander personeel zoals security- of UI-experts enzovoort, worden vastgelegd.

In close cooperation

In de opstartfase is goed teamwerk vereist. Idealiter vormt deze fase immers het begin van een succesvolle samenwerking op lange termijn. Om uw behoeften en wensen volledig te begrijpen, zal een functieoverschrijdend Cegeka-team naar uw managers en IT-medewerkers luisteren en met hen overleggen. Dit team bestaat onder meer uit een projectmanager, domeinexperten en developers. Deze dialoog wordt tijdens het gehele softwareproject voortgezet om te verzekeren dat de uiteindelijke software uw verwachtingen zal overtreffen.

In de opstartfase is goed teamwerk vereist. Idealiter vormt deze fase immers het begin van een succesvolle samenwerking op lange termijn.