Softwareontwikkeling is geen standaard vak. Het is een ambacht waarin specialistische kennis, inzicht, intuïtie en creativiteit samenkomen. Een complex samenspel dat vraagt om hoogwaardig vakmanschap op allerlei fronten en om samenwerking tussen een grote diversiteit aan mensen. Een vak dat meer eer verdient dan het soms krijgt.
Daarom een blogserie over hoe wij bij Blis Digital naar het vak kijken. Als ode aan alle developers die dagelijks bezig zijn met het maken van waardevolle dingen voor hun gebruikers. Aan de mensen die ‘from scratch’ oplossingen bedenken voor ingewikkelde problemen die niemand ter wereld ooit eerder getackeld heeft en waarvoor dus geen voorbeelden beschikbaar zijn.
Dit is deel 1: hoe je de juiste dingen doet, op de juiste manier.
De juiste dingen doen…
Maximale businesswaarde creëren op de meest efficiënte manier – dat is waar softwareontwikkeling om draait. En met businesswaarde bedoelen we dan ‘een directe bijdrage aan de primaire doelen van onze klant of partner’. Concreet betekent dat:
- Omzetverhoging: door snellere processen, betere gebruikerservaring en nieuwe functionaliteiten die klanten aantrekken en behouden. We zien vaak dat goed ontworpen software leidt tot hogere conversie en betere retentie van gebruikers.
- Kostenverlaging: niet alleen door automatisering van handmatige taken, maar ook door slimmere werkprocessen en betere data-inzichten. Software die precies doet wat nodig is (en liever niet meer dan dat) bespaart op personeelskosten én vermindert fouten die tijd kosten om te herstellen.
- Beheersing van risico’s: door beveiligde systemen, betrouwbare backups en gedegen monitoring. Moderne software moet compliant zijn met wetgeving, schaalbaar bij groei en bestand tegen cyberdreigingen. Zodat bedrijven en andere organisaties veilig kunnen opereren en groeien, zonder onverwachte kosten en ellende.
- Verbetering van de concurrentiepositie: innovatieve oplossingen onderscheiden je in de markt. Dit gaat verder dan alleen features – het gaat om het creëren van een voorsprong die moeilijk te kopiëren is. Dat vraagt innovatiesnelheid, maar vooral visie.
Deze waarde zie je terug in concrete resultaten. Meer betalende gebruikers op je platform, omdat ze een superieure ervaring krijgen. Of processen die veranderen van handmatige administratie naar geautomatiseerde workflows. Ook AI-gebaseerde systemen spelen een steeds grotere rol in het creëren van onderscheidend vermogen in de markt.
Product ownership dat werkt
Veel van de verantwoordelijkheid voor het optimaliseren van de waarde van software ligt bij de product owner. Een goede product owner combineert een diep begrip van de business en eindgebruikers, technisch inzicht, ervaring in het managen van stakeholders en vergaande kennis van ontwikkelprocessen en methodieken.
Die kennis gebruikt een PO om de afweging te maken: wat gaan we bouwen en (ook heel belangrijk) wat niet?
Sommige van onze klanten hebben ervaren product owners die dit allemaal in huis hebben en dus heel goed weten hoe je een ontwikkelteam aanstuurt. Zij bepalen grotendeels zelf wat “the right things” zijn. We zien dat dit vooral goed werkt bij organisaties die al ervaring hebben met softwareontwikkeling. Zij begrijpen de complexiteit en weten hoe je prioriteiten stelt. In zo’n geval sluiten wij met plezier aan als architect, ontwerper en developer.
Maar we werken ook samen met klanten, bijvoorbeeld startups en scale-ups, die de product owner rol bij ons neerleggen. Dit kan ook uitstekend werken, vooral goed als snelheid en innovatie-expertise cruciaal zijn.
Tussenvormen zijn er natuurlijk ook. In die gevallen bieden we waar nodig product owner support of training aan. Hoe dan ook: de functie van de PO is zo cruciaal, dat het goed invullen van deze rol de eerste prioriteit moet zijn bij het starten van een softwareproject.
(de rol van de product owner bij het naar de markt brengen van digitale producten is trouwens veel te interessant en complex om hier in 1 paragraaf af te doen. Gelukkig schreef collega Ton van Dijk er al een whitepaper over met de uitdagende titel ‘Waarom je geen product owner wilt worden’ – download hem hier)
… op de juiste manier
Besluiten wat je wilt maken heeft alleen waarde als je ook weet hoe je het moet maken. Dat is het domein van de developer. En een softwareoplossing ontwikkelen is meer dan coderen. We combineren allerlei disciplines en expertises. Voor iedere functie, module en ieder onderdeel bestaan allerlei manieren om hem te maken. Een kleine greep:
- Code schrijven: nog steeds de basis voor maatwerk en unieke functionaliteit. Onze ontwikkelaars combineren vakmanschap met creativiteit om elegante oplossingen te bouwen in ‘schone code’.
- Cloud-componenten: waarom het wiel opnieuw uitvinden? Moderne ontwikkeling draait om het slim combineren van bestaande services. Dat versnelt ontwikkeling en verlaagt onderhoudskosten.
- AI-assisted development: we zetten AI in om code te genereren waar dat efficiënt is. Dat versnelt het ontwikkelproces zonder in te hoeven leveren op kwaliteit. De kunst zit hem in weten waar en hoe je deze tools inzet (en ja, ook daarover hebben we een whitepaper).
- No-code/Low-code: voor bepaalde onderdelen bieden no-code en low-codeplatforms als Microsoft Power Platform een snelle en kosteneffectieve oplossing. Maar het vraagt expertise om te weten wanneer dit de juiste keuze is en, in tegenstelling tot wat velen denken, zijn no-code en low-code oplossingen niet beheer- en onderhoudsvrij en moeten ze net zo grondig getest worden als andere oplossingen.
Elke keuze in gereedschap beïnvloedt de ontwikkelkosten, beheer, onderhoud, security en performance anders. Het vereist dus ervaring en inzicht om de juiste keuzes te maken.
Solution design als basis
Het wat en het hoe komen bij elkaar in een ‘solution design’. In onze aanpak maakt de solution architect dat aan het begin van het project, samen met de product owner. Het solution design bepaalt welk gereedschap we inzetten voor welke modules en componenten. Dit gebeurt met oog voor:
- De businesswaarden van de klant of partner: niet alleen wat nu nodig is, maar ook wat we nodig hebben om klaar te zijn voor toekomstige groei en verandering
- Budget: we willen grip houden op zowel de initiële investering, als op operationele kosten op lange termijn
- Technische mogelijkheden en beperkingen: inclusief integraties met bestaande systemen, die snel roet in het eten kunnen gooien als je ze niet vooraf in kaart brengt
- Bestaande technologievoorkeuren of technisch beleid: aansluiten bij de IT-strategie van de organisatie, bij de aanwezige kennis en ervaring en bij bestaande leverancierscontracten maakt dat de oplossing straks beter landt in de organisatie
- Vereisten voor de planning: fasering en prioritering van functionaliteit, zodat we snel live kunnen maar ook daarna kunnen blijven innoveren
Dit solution design is dus de blauwdruk voor de software, en gedeeltelijk ook voor het project. Het toont ook de impact op de kosten in allerlei scenario’s en de impact op planning en risico’s van tegenvallers. Maar het solution design ligt niet vast. Het is een ‘levend document’ dat we aanpassen als inzichten of omstandigheden veranderen.
Een vak van uitersten
Met deze aanpak zorgen we dat we niet alleen de juiste dingen doen, maar ze ook op de juiste manier aanpakken. Want softwareontwikkeling is een vak van uitersten: precisie én flexibiliteit, techniek én creativiteit, standaarden én maatwerk… Soms moeten we tussen die dingen kiezen, maar vaak moeten we ze ook allemaal tegelijk doen.
No one said it would be easy.
In de volgende blogs ga ik dieper in op hoe we dit vakmanschap in de praktijk brengen – van het voorkomen van budgetoverschrijdingen tot het samenstellen van het perfecte team.