Tips voor het opnieuw ontwikkelen van software.

Herontwikkelen van uw software.

Het opnieuw ontwikkelen van een bestaand softwareproduct lijkt vaak alleen een technisch georiënteerde exercitie. Technische legacy wegwerken is lang niet altijd even spannend soms kan u het gevoel bekruipen dat evolutie van uw applicatie stilstaat. Dit hoeft echter niet het geval te zijn, het opnieuw ontwikkelen van uw software is juist een uitgelezen kans om te innoveren en meer waarde te creëren voor eindgebruikers. Hoe? Met deze tips!

Herontdek uw eigen product.

In sommige gevallen is het raadzaam om, voordat u begint aan het maken van een backlog van uw legacy en mogelijke van de implementatie van nieuwe features, uw product opnieuw te ontdekken. Neem een stapje terug. Bekijk wie uw product daadwerkelijk gebruikt en hoe deze mensen dat doen. Welke klantengroep is het meest winstgevend? Welke functionaliteit is primair? Welke functionaliteit wordt weinig gebruikt? En, misschien wel het belangrijkste, waarom is dit zo? Het in kaart brengen van de user journey kan in dit geval een waardevolle exercitie zijn.

Een andere goede manier om het gebruik van uw product te analyseren is het maken van de consumption chain. Een visuele illustratie van het gebruik van uw product. Zo brengen we niet alleen de gebruikte features maar ook mogelijke fouten en vertragingen in beeld.  

Tijdens dit process van (her)ontdekking is het aan te raden om uw ontwikkelaars de mogelijkheid te geven om zelf een kleine ontdekkingsreis te ondernemen. Zou er misschien een framework zijn dat beter voor uw product kan werken dan het huidige? Misschien dat machine learning de werking van uw product zou kunnen verbeteren?

Tot slot, leg al deze nieuwe inzichten vast in een productstrategie. Beschrijf de mensen die uw product bedient, de waarde die het creëert en de belangrijkste functionaliteit. Gebruik hiervoor een Product Vision Board.

Overigens, mocht u twijfelen over de investering die een dergelijk traject met zich meebrengt. Bedenkt u zich dan eens wat niets doen kost. Wat zou er gebeuren als u blind uw product kopieert en moderniseert? Denk aan alle voordelen u misloopt, de mogelijkheid om onderhoudskosten te besparen door overbodige functionaliteit te verwijderen. Probeer deze voordelen te kwantificeren en te vergelijken met de investering.  

Verken uw strategische opties.

Het volgende dat u te doen staat is het verkennen van de mogelijkheden die uw product vooruit gaan helpen. Vraag uzelf af, is het zinvol om mijn (SaaS)product te blijven aanbieden als een compleet pakket? Als dat zo is, is uw aanbod compleet genoeg of juist te uitgebreid?

Wanneer is een product te uitgebreid? Dat is in de meeste gevallen wat genuanceerder. Het is niet ongebruikelijk dat in de loop van de tijd functies aan een product worden toegevoegd om tegemoet te komen aan verzoeken van belangrijke klanten of afnemers en niet noodzakelijk omdat ze de meerderheid van de gebruikers ten goede komen. Hoort dergelijke functionaliteit dan thuis in uw basisproduct of is dit functionaliteit die tegen een meerprijs aangeboden kan worden? Of misschien ligt een splitsing meer voor de hand. Denk hierbij aan Facebook, in 2014 werd Messenger afgesplitst van het sociale netwerk en aangeboden als zelfstandige app.

Leg uw beslissingen vast en documenteer de nieuwe strategie voor uw product, bijvoorbeeld door een (nieuw) Product Vision-board te maken. Bestudeer voordat u verder gaat zorgvuldig uw bord voor belangrijke risico’s en aannames. Neem de tijd om uw beslissingen te valideren. Anders riskeert u de implementatie van een ongeldige en mogelijk incorrecte strategie.

Herontwikkel uw software product geleidelijk.

Uw huidige product is waarschijnlijk niet in een weekje ontwikkeld. Sterker nog, de kans is groot dat de huidige vorm van uw product in jaren tot stand is gekomen. Software is niet bepaald statisch, het groeit en evolueert. De vervanging van uw gehele product in één keer kan een aanzienlijke hoeveelheid tijd en een fikse investering vergen en brengt het risico met zich mee dat u pas laat in het proces problemen ontdekt.

Het stapsgewijs vervangen van een product, in bijvoorbeeld maandelijkse of tweemaandelijkse releases, biedt u controle. Zeker als u deze releases laat begeleiden door partij die hier ervaring mee heeft . Bovendien kunt u feedback en gegevens van gebruikers verzamelen en problemen en kansen in een vroeg stadium ontdekken en zonodig bijsturen. Maar, het betekent natuurlijk ook dat u het oude product moet laten werken totdat de nieuwe klaar is om het te vervangen.

Als u eerder besloten hebt om varianten van uw product aan te bieden of bepaalde functies te ontkoppelen dient u eerst te beslissen welk product/variant u aan wilt gaan bieden en dus feitelijk welk product u in eerste instantie gaat ontwikkelen. Het huidige of het nieuwe. Het is raadzaam om een kleine groep klanten/gebruikers te vinden die bereid zijn om innovators / early adopters van het herontwikkelde product te zijn en u feedback te leveren.

Wanneer u weet welke kant u met uw product op wilt gaan is het handig om uw beslissingen te beschrijven in product roadmap.

Neem de tijd en investeer in kwaliteit.

Software ontwikkeling in het algemeen behoeft altijd een sterke focus op kwaliteit, dit geldt misschien nog wel het meest voor de refactoring van uw software. Sterker nog, het is niet minder dan paradoxaal om een product opnieuw te ontwikkelen omdat u de fouten op wilt lossen om vervolgens deze poging haastig en slordig af te werken.

Neem de tijd om ervoor te zorgen dat de nieuwe versie van uw product over de juiste architectuur kan beschikken en een schone codebase heeft. Uw product is dan gemakkelijker (en dus goedkoper) te onderhouden.

Op January 15, 2019