Bright Answers

Bright Answers biedt branchespecifieke ICT oplossingen en maatwerk aangepast op jouw bedrijfsvoering. Wij helpen bedrijven op het gebied van:

Gerelateerde onderwerpen

Welke ontwikkelmethode voor software

Dit artikel is gepubliceerd op: 11-11-2015

Softwareontwikkelmethoden

We schreven al eerder over de evolutie van ontwikkelmethodes voor software. Welke methodes worden vandaag de dag gebruikt en hoe speelt Bright Answers in op de ontwikkelmethoden die onze klanten gebruiken? Hoe gaat Bright Answers om met opdrachten bij klanten die geen standaard ontwikkelmethode hebben?

In de softwareontwikkeling kennen we drie hoofdgroepen met elk specifieke kenmerken.

  • Lineaire methoden: fases worden stap voor stap afgerond en processtappen worden niet herhaald.
  • Iteratieve of incrementele methoden: vooraf gedefinieerde set van herhalingen. Stappen worden herhaaldelijk genomen.
  • Agile methoden: vooraf gelimiteerde set van herhalingen. Gebaseerd op grondbeginselen van iteratieve methoden. Maar: verantwoordelijkheden liggen bij zelfsturende teams en feedback van gebruikers is belangrijker dan planning.

Bij de eerste twee methoden staat een vooraf gedefinieerd eindresultaat voorop. Er moet een goede basis bestaat. Een set van requirements en concrete verwachtingen. Dit geeft gelijk het manco van deze methoden aan. Als een opdrachtgever niet voldoende duidelijke verwachtingen of een eindbeeld heeft, of tussentijds verwachtingen wijzigt, maar wel binnen een bepaalde tijd een resultaat verwacht, is de kans op teleurstellingen groot. Bij een agile ontwikkelmethode is bij het begin van een ontwikkeltraject het eindresultaat nog niet concreet en duidelijk. Bij die ontwikkelmethoden is van belang dat doelstellingen duidelijk zijn gedefinieerd. Wat wil je aan het eind van het project bereikt hebben?

Laatste update 13-01-2017 || We krijgen regelmatig vragen van belangstellenden en klanten over ontwikkelmethoden voor maatwerksoftware waarop we ons baseren. Het simpele antwoord is: we gebruiken geen specifieke ontwikkelmethode. We stemmen onze werkwijze af op de methoden die onze klanten gebruiken of adviseren ze over de toe te passen methode. Zo simpel? Niet helemaal. Er zit een visie achter die we hier graag met je delen. In dit artikel bespreken we de meest toegepaste ontwikkelmethodieken die we bij onze klanten tegenkomen. Als laatste laten we zien dat een goede ICT-dienstverlener die specifieke methoden, technieken en architecturen in de vingers moet hebben om klanten optimaal van dienst te kunnen zijn. En moet kunnen adviseren over de ontwikkelmethode die het best bij die klant past. Uiteraard leggen we uit hoe wij een werkwijze hebben ontwikkeld waarmee wij voor veel ontwikkelmethoden een oplossing hebben. Onze oplossingen en webapplicaties zijn namelijk in nagenoeg elke omgeving goed in te zetten en eenvoudig te beheren.

Lineaire ontwikkelmethoden

Het meest bekend voorbeeld is de watervalmethode. Lineaire ontwikkelmethoden worden gekenmerkt door het feit dat stappen niet worden herhaald. Het project wordt in een aantal fases met elk een concreet gedefinieerd eindproduct uitgevoerd. Requirements moeten duidelijk zijn en vooraf zijn vastgelegd. Kennisoverdracht en monitoring vinden plaats op basis van specifieke documenten en formats. Een klant/opdrachtgever moet voorafgaande aan het project heel duidelijk en concreet zijn in zijn verwachtingen en eisen. Een ander opvallend kenmerk van deze methoden is een hiërarchische projectorganisatie, waarbij teams door managers worden aangestuurd. Vaste rollen en verantwoordelijkheden zijn vastgelegd en verdeeld. De klantdeelname  tijdens het project is beperkt, en vooral aan de orde tijdens test- en goedkeuringsfases.

In de praktijk zien we dat deze methode langzaam maar gestaag aan het uitsterven is. Opvallend vinden wij wel dat vooral grote organisaties (zoals overheidsinstelling) deze methoden veelvuldig hebben toegepast. Juist bij deze organisaties die complexe en langdurige ontwikkeltrajecten kennen, bleken requirements en verwachtingen gedurende de looptijd van een project te wijzigen. Met alle gevolgen voor planning en kosten van dien. Dit heeft zelfs regelmatig geleid tot mislukking van ICT-projecten. Bij de Rijksoverheid hebben ICT-mislukkingen zelfs geleid tot een parlementair onderzoek en de instelling van een tijdelijke commissie ICT door de Tweede Kamer. De belangrijkste constatering was dat de Rijksoverheid de besturing en beheersing van projecten met een belangrijke ICT-component niet op orde heeft. En dat het geheel van ICT-organisaties bij de rijksoverheid chaotisch en ondoorzichtig is, waarbij taken en verantwoordelijkheden versnipperd en onduidelijk zijn.

Iteratieve ontwikkelmethoden

Iteratieve ontwikkeling is een methodiek waarbij in een groot project niet alles in een keer wordt opgeleverd, maar in kleinere gedeelten steeds een deel wordt geleverd en dus de stappen van een project herhaaldelijk doorlopen worden. Zo is te voorkomen dat een (groot) project ontspoort door problemen of foute aannames. Na elke zogenaamde iteratie wordt het proces geëvalueerd en zo nodig aangepast. Hoewel een groot deel van de requirements vooraf zijn gedefinieerd, biedt een iteratieve methode nog wel mogelijkheden om een deel van de requirements aan te passen gedurende het project. De participatie van klanten tijdens het project vindt geregeld plaats. Iteratieve methoden worden gedreven door een specificatie van verwachte resultaten en de waarde voor de business. In een business case worden al deze elementen beschreven en indien nodig gedurende het project aangepast. Ook een iteratieve methode kent een aanpak met projectteams die door managers worden aangestuurd en heeft teamleden met vaste rollen en verantwoordelijkheden voor op te leveren (deel)producten.

De laatste jaren zien we dat ook overheden deze methoden meer en meer toepassen om risico’s en uitloop in tijd en geld tegen te gaan.

Agile ontwikkelmethoden

De meest flexibele ontwikkelmethoden vallen onder de noemer Agile. Een van de meest populaire methode is SCRUM. De populariteit van scrum neemt met rasse schreden toe. Dat komt doordat een opdrachtgever aan het begin van een ICT-project vaak niet alle verwachtingen en resultaten op een rij heeft. Bij deze methoden is een intensieve deelname van de klant bij de ontwikkeling van software van groot belang en eigenlijk een uitgangspunt.

Een agile methode wordt gekenmerkt door korte, in tijd gelimiteerde sprints. De inhoud van een sprint wordt bij de start ervan bepaald. De gevolgde werkwijze kan desnoods dagelijks worden aangepast al naar gelang de wensen van de zelfsturende teams. Er wordt gebruik gemaakt van een geordende lijst van product features die gedurende het gehele project wordt bijgewerkt op basis van de behoefte van de klant en/of de markt. Daarmee worden in feite de productspecificaties opgebouwd. De nadruk ligt op samenwerking en mondelinge kennisoverdracht. De methode wordt gedreven door waarde voor de business. Prioriteit wordt gegeven aan het opleveren van sprints en producten met de op dat moment hoogste toegevoegde waarde.

De sprints worden gedaan door zelfsturende teams met multidisciplinaire teamleden zonder vastgelegde taken, rollen en verantwoordelijkheden.

Hoewel deze methoden tot volwassenheid kwamen in het bedrijfsleven, heeft ook de overheid inmiddels de agile methode omarmd. Kijk bijvoorbeeld maar naar ICT-dienstverleners van de Rijksoverheid zoals ICTU en Spir-IT. Voor een succesvolle toepassing van dergelijke methoden is wel een shift in de mindset van bestuurders, medewerkers en ontwikkelaars nodig. Samenwerking, vertrouwen en het verleggen van verantwoordelijkheden zijn de succesfactoren van agile. Dat legt gelijk de valkuilen bloot. Als bestuurders verantwoordelijkheden niet los willen laten of medewerkers geen vertrouwen gunnen, is de kans op teleurstelling groot. Evenals wanneer de zelfsturende teams niet goed zijn samengesteld waardoor de samenwerking stroef loopt.

Bright Answers ondersteunt flexibel

Met dit artikel hebben we geprobeerd duidelijk te maken dat wij geen specifieke ontwikkelmethode adviseren of gebruiken. De keuze voor een ontwikkelmethode hangt van een groot aantal factoren af. Zoals van de bedrijfscultuur, de grootte van de organisatie, de ambities, de softwaretoepassing zelf die wordt beoogd, de marktomstandigheden, technologie, en ga zo maar door. We merken in de praktijk wel dat agile ontwikkelmethoden steeds meer de voorkeur van opdrachtgevers heeft. Wat de voorkeur ook is; wij zullen onze klanten altijd eerlijk, oprecht en doelgericht adviseren. Wij willen eerst onze klanten en alle relevante aspecten leren kennen. Pas dan kunnen wij beoordelen of een agile ontwikkelmethode gaat werken of dat we een andere methode zouden adviseren.

Wij hebben webtoepassingen en platforms ontwikkeld die in elke organisatie met welke ontwikkelmethode dan ook eenvoudig geïmplementeerd kunnen worden. Dat is gelukt met flexibele producten en componenten op basis van veel gebruikte standaarden. Een voorbeeld daarvan is onze AppBuilder.

 

Ben je nieuwsgierig geworden naar hoe Bright Answers jouw bedrijf of organisatie kan ondersteunen bij het ontwikkelen van software? Heb je al een specifieke toepassing voor ogen?


Gerelateerde onderwerpen

KlantportalenApps bouwenContext

Andere artikelen over Klantportalen

Andere artikelen over Apps bouwen

Andere artikelen over Context


 

Reacties

Er zijn nog geen reacties.

 

Plaats nieuwe reactie

Velden met een gemarkeerd met een * zijn verplicht.
 
 
 
­