Welke functie heeft een functioneel ontwerp? - Qquest

Actualiteit

Welke functie heeft een functioneel ontwerp?

Zoveel verschillende systemen, ontwikkelprocessen en methodieken worden gebruikt om grote hoeveelheden gebruikers te bedienen met werkende software. Vanuit het perspectief van een beheerder is dit een dynamische uitdaging, omdat er daardoor meer verantwoordelijkheden komen te liggen bij de beheerder over de verschillende systemen, producten en/of projecten. Dit is ook een bron van ergernis en frustratie, want hoe meer verantwoordelijkheden en daarbij horende taken er bij komen, hoe meer mensen of afdelingen jouw kennis en hulp nodig hebben.
Vanuit onze expertise op het gebied van beheer willen we in deze blog vooral de startende beheerder kennis laten opdoen in het begrijpen (en wellicht in de toekomst ook maken) van een functioneel ontwerp. Een functioneel ontwerp vertelt jou namelijk alles wat je over een specifiek product of applicatie moet weten. Maar is een functioneel ontwerp dan niet hetzelfde als een handleiding of manual? Dit klopt. Een handleiding voornamelijk bestemd is voor een eindgebruiker van een specifiek product waarin staat beschreven wat je moet doen om het product werkend te krijgen, Een functioneel ontwerp daarbij ook alle genomen stappen en doorgelopen processen om tot dit product te komen, bevat het een overzicht met verholpen problemen, en geeft het duidelijk weer welk persoon, team of afdeling verantwoordelijk is voor welk aspect binnen het product. Dit alles is vaak weergegeven met behulp van diagrammen welke het precieze verloop van werking en verantwoordelijkheden weergeven. Wat bijdraagt aan het snel schakelen binnen de verschillende afdelingen wanneer er zich problemen voordoen of wanneer er bijvoorbeeld veranderingen (moeten) plaats vinden aan een applicatie of product.

Functioneel_Ontwerp

Wat is een functioneel ontwerp?

Een functioneel ontwerp is een digitaal document waarin beschreven staat welke functionaliteiten een applicatie bevat. Dit geldt voor een nieuwe applicatie welke net is gebouwd, of een bestaande applicatie waarbij het functioneel ontwerp ontbreekt of niet compleet is. Reden voor een niet compleet functioneel ontwerp is dat er aan- of toepassingen zijn gedaan aan de applicatie waardoor het originele functioneel ontwerp niet meer up-to-date is. Elke verandering of aanpassing binnen een applicatie is een aanleiding tot het bijwerken van het functioneel ontwerp. Een functioneel ontwerp is namelijk een complete uitwerking van zo’n applicatie waarin alle gewenste functionaliteiten overzichtelijk in één document gebundeld staan. Daarnaast wordt beschreven wat de bedrijfscontext is en wie de belangrijkste stakeholders zijn. Belangrijk is dat een functioneel ontwerp zodanig duidelijk wordt beschreven, dat elke ontwikkelaar, gebruiker, klant of andere stakeholder de gehele functionaliteit van de applicatie inhoudelijk goed begrijpt na het lezen van het functioneel ontwerp. Verder biedt het functioneel ontwerp input voor het technisch ontwerp en het grafisch ontwerp. Het functioneel ontwerp bestaat vooral uit tekst en informatie. Gebruik van illustraties, diagrammen en schermverloop ter visuele ondersteuning raden wij aan. Naast het informatieve en visuele aspect bevat een functioneel ontwerp ook een overzicht van bevindingen rondom de betreffende applicatie. Wanneer een functionaliteit niet naar behoren werkt wordt dit aangepast. Deze aanpassing wordt meegenomen in het functioneel ontwerp zodat makkelijk te zien is welke verandering er is toegepast en waarom deze is toegepast.

Wanneer gebruik je een functioneel ontwerp?

Met een functioneel ontwerp voor je applicatie leg je vast uit welke functionaliteiten de applicatie bestaat en hoe deze dienen te functioneren. Met een compleet en duidelijk functioneel ontwerp blijven er geen vraagtekens meer bij de realisatie van het eindproduct; in dit geval de applicatie. Bij het maken van een functioneel ontwerp is een duidelijke overgang tussen het opstellen van het functioneel ontwerp en het beginnen aan de ontwikkelfase.
Het functioneel ontwerp wordt vaak gebruikt om alle wensen en eisen van de opdrachtgever vast te leggen en die informatie te gebruiken voor verwachtingsmanagement.
Met een goed beschreven functioneel ontwerp breng je de belangrijkste stakeholders op de hoogte van de werking van de applicatie en weet iedereen wat er van hem of haar verwacht wordt wanneer de applicatie daadwerkelijk gebouwd wordt. Dit verkleint uiteindelijk de kans op aanpassingen achteraf en voorkomt dat er een stap terug nodig is naar een eerdere fase van de ontwikkeling.

Zoals eerder beschreven dient een functioneel ontwerp voor alle fases binnen de realisatie van een applicatie of product. Vaak wordt een functioneel ontwerp vanaf de eerste stap van het ontwikkel proces al gebruikt. Maar in sommige gevallen wordt het functioneel ontwerp enkel achteraf gebruikt om de gerealiseerde functionaliteiten en producten te beschrijven. Op deze manier is het voor externe stakeholders of gebruikers makkelijker om de applicatie of website te begrijpen wanneer men niet direct betrokken is geweest bij het ontwikkelen van de applicatie.

Een functioneel ontwerp is voor bijna elk project onmisbaar. Het brengt de applicatie goed in kaart en geeft de klant of de product owner vooraf een duidelijk beeld van de applicatie. Zodra er een aanpassing noodzakelijk of gewenst is, verwerkt de beheerder dit in het functioneel ontwerp.

Wat staat er in een functioneel ontwerp?

Het belangrijkste onderdeel van een functioneel ontwerp is dat de eisen en wensen staan uitgewerkt die de gebruiker of product owner stellen aan de applicatie. Bij het beschrijven van deze functionaliteiten raden wij aan gebruik te maken van de MoSCoW methode. De MoSCoW methode is een techniek waarbij onderscheid gemaakt wordt in de prioriteiten van de applicatie door middel van een aantal eisen: Must haves, Should haves, Could haves en Won’t haves. De Must haves kenmerken zich doordat deze eisen zeker in het eindproduct verwerkt moeten zijn, anders is het niet bruikbaar. Should haves zijn gewenste eisen maar waarbij de applicatie wel bruikbaar is als deze ontbreken. Eisen die verwerkt worden wanneer tijd (en budget) dit toelaat noemen we Could haves. Zonder deze functionaliteiten is het product uiteindelijk alsnog bruikbaar. Won’t haves zijn eisen die op het moment van schrijven niet aan bod komen, maar wellicht voor een volgende update of uitbreiding interessant.

Opbouw functioneel ontwerp

Inleiding
Hier staat beschreven wat het eindproduct is, waar het voor dient, waarom er vraag naar is en wat het doel ervan is.
Doelgroep
Hier beschrijf je wie de doelgroep is; voor wie is het functioneel ontwerp bedoelt?
Stakeholders
Hier beschrijf je wie er allemaal met het eindproduct te maken heeft. Denk aan eindgebruikers, product owner, management en elk belanghebbende die invloed heeft op de werking en functionaliteit van het eindproduct.
Bedrijfscontext
Wat voor organisatie maakt dit product, wat is hun visie, beleid en doelstellingen.
Beschrijving functionaliteiten
Hier staat uitgebreid beschreven welke functies het eindproduct heeft en waar die voor dienen.
Doelen van het project
Waarom is deze applicatie gemaakt, wat is het uiteindelijke doel? Wij raden aan om hier een apart paragraaf van te maken. En daarbij het doel nader toe te lichten.
Structuur van de applicatie
Hoe werkt het eindproduct? Wat is de architectuur van het eindproduct; hoe is het gebouwd? Welke aanpassingen zijn er tot nu toe gemaakt en welke problemen zijn er tot nu toe opgelost (of nog aanwezig)? De complete levensloop van het eindproduct staat hier beschreven.
Schermverloop
Uitwerkingen of screenshots van het eindproduct om visuele ondersteuning te bieden aan de structuur van de applicatie en de beschrijving van de functionaliteiten van de applicatie.

Een functioneel ontwerp wordt bij voorkeur gemaakt tijdens het begin van de ontwikkelfase van een applicatie. Zodat elke bevinding en/of verandering binnen de applicatie, goed of fout, meegenomen is in het ontwerp. Voordeel hiervan is dat elke functionaliteit, werkend of niet, uitgebreid beschreven staat in het ontwerp en zo goed is te zien welke fases de applicatie heeft doorstaan voor het uiteindelijk in productie gaat. Zie het als de levensloop van de applicatie die uitvoerig beschreven staat. Wanneer er bijvoorbeeld nieuwe (of andere) ontwikkelaars aan de applicatie (moeten) werken, zien zij precies welke stappen er achtereenvolgens leiden tot een werkend eindproduct.

Wanneer een functioneel ontwerp gemaakt wordt voor een applicatie die al langer bestaat, is de kans groot dat eerdere bevindingen en/of veranderingen niet in het ontwerp zijn opgenomen terwijl er wel al aan gewerkt is. Bijkomend nadeel is dat stakeholders wellicht met nieuwe ideeën of suggesties komen die in een eerder stadium al zijn uitgeprobeerd maar vanwege redenen (niet gebruiksvriendelijk of niet werkend) niet in de applicatie opgenomen. Gevolg is dat ontwikkelaars, zonder het te weten, aan een functionaliteit werken wat in een eerder stadium al is afgewezen. In andere woorden: bij een functioneel ontwerp wat in een latere fase pas gemaakt wordt, is de kans groot dat niet de volledige levensloop van de applicatie is meegenomen, wat uiteindelijk leidt tot extra werk, dubbel werk of meer kosten dan geraamd. Daarom is het van belang om een functioneel ontwerp vanaf de ‘geboorte’ van de applicatie op te maken, om zo elke fase van de levensloop mee te nemen in het ontwerp.

Is een functioneel ontwerp hetzelfde als een technisch ontwerp?

Hoewel in de basis de twee op elkaar lijken, zit er toch een verschil tussen een technisch ontwerp en een functioneel ontwerp. Zoals hierboven beschreven staat bevat een functioneel ontwerp elke fase die een applicatie heeft doorlopen. Daarbij wordt ook beschreven waarom iets wel of niet werkt(e) en welke keuzes er zijn gemaakt om de applicatie en de bijbehorende functionaliteiten werkend te krijgen. Een technisch ontwerp daarentegen gaat dieper in op de technische kant van de applicatie. Vraag hierbij is dan niet waarom een bepaalde functionaliteit wel of niet werkt, maar welke technische aspecten er nodig zijn om de functionaliteiten te realiseren. En waar een functioneel ontwerp bedoelt is voor een ieder die aan de applicatie werkt of gebruikt, is het technisch ontwerp vooral voor de ontwikkelaars. Dat maakt dat een functioneel ontwerp door elke stakeholder helder en begrijpend te lezen is, waar het technisch ontwerp vooral voor de ontwikkelaars te begrijpen is.

Het functioneel ontwerp binnen een Agile werkomgeving

Agile is een methodiek om toe te werken naar een einddoel als werkend product zodat men ziet hoe en waar bijsturing nodig is. Snel opleveren om zo ook snel waardevolle feedback te ontvangen en daarmee het product weer verder te verbeteren. Wat ons betreft past daar ook prima een Functioneel ontwerp bij. Zolang het maar bijdraagt aan verkregen van een werkend product. Zodra het maken van een Functioneel Ontwerp een doel op zich is dan moet het zo snel mogelijk stoppen.

Juist in kort-cyclisch ontwikkelen is het belangrijk dat onderwerpen helder en direct gedocumenteerd staan. Door gebruik te maken van een Functioneel ontwerp waarin elke nieuwe eis of wens helder en eenduidig vertaald staat in functionaliteit met optioneel toevoeging van een grafische weergave. Daarbij dient het functioneel ontwerp als een manier om het grotere plaatje te bekijken en zo uit te zoomen.
En daarmee “Working Software over comprehensive documentation” na te streven.

Zeker in deze tijd waarin software voor gebruikers steeds intuïtiever en simpeler werkt waarbij de programmatuur en algoritmes om dat mogelijk te maken steeds complexer worden. Dat vraagt om een oplossing waarin zaken helder staan gedocumenteerd en begrijpelijk is voor gebruikers en bouwers. Wat ons betreft het functioneel ontwerp. Een levend document wat met elke sprint groeit en wordt onderhouden.

Enkele tips vanuit onze collega’s

Vanuit onze ervaring delen we graag enkele tips met je:

  • Benoem voordat je begint voor welke doelgroep jij het functioneel ontwerp gaat maken. Als de doelgroep duidelijk is maak je een keuze tussen een technische insteek of een theoretische insteek met behulp van diagrammen, grafieken of andere afbeeldingen
  • Gebruik geen overbodige informatie in je functioneel ontwerp, houd het helder en to-the-point
  • Maak gebruik van hulpmiddelen zoals wireframes en het technisch ontwerp
  • Grafisch weergeven middels tabellen, overzichten en flowdiagrammen is een manier om complexe onderwerpen te duiden
  • Bekijk en beschrijf de functionaliteiten vanuit het gebruikersperspectief
  • Gebruik een gebruikerslijst zodat bij vragen precies en snel duidelijk is met wie er contact opgenomen wordt.
  • Verdiep je in specificatietechnieken zoals natuurlijke taalspecificatie, Use cases en andere UML diagramtechnieken zoals BPMN, SysML, Actimod, ERD en DFD. In het functioneel ontwerp verduidelijken deze modellen de functionele specificaties en kwaliteitseisen van het eindproduct

Meer weten over Beheer?

Lees alles over waar wij goed in zijn met Beheer.

Lees meer

Meer weten over Beheer?

Lees alles over waar wij goed in zijn met Beheer.

Lees meer

De laatste ontwikkelingen

× WhatsApp!