Net zoals een blauwdruk wordt gebruikt in de bouw, en een recept wordt gevolgd bij het bereiden van een maaltijd, zo zijn er principes die moeten worden gevolgd voor efficiënte software-ontwikkeling. Deze principes komen neer op wat gewoonlijk wordt aangeduid als een methodologie voor softwareontwikkeling. Een software-ontwikkelingsmethodologie is noodzakelijk omdat het procedures bevat die leiden tot het succes van een software-ontwikkelingsproject.
Zonder het volgen van een blauwdruk in de bouw, zijn de resultaten rampzalig, en dat geldt ook voor het bouwen van een softwareproduct zonder de juiste principes te volgen. Je zult veel cruciale stappen missen en uiteindelijk een groot aantal uitdagingen krijgen op het gebied van softwarekwaliteit. Als project manager, is het van vitaal belang om te weten dat er veel benaderingen te volgen voor een software-project met inbegrip van lean development aanpak en dat wanneer juist gekozen, een software-ontwikkeling methodologie zal altijd een hoge kwaliteit software product.
Lean Software Development
Lean ontwikkeling methodologie is een type agile aanpak die werd opgericht op lean manufacturing principes. Lean manufacturing omvat zeer succesvolle principes die voor het eerst werden gebruikt door de Toyota Production System als een praktijk te beheren en optimaliseren van het proces van de productie van voertuigen aan de klant waarde te verhogen en afval te minimaliseren.
Dus, als lean principes hebben te maken met de productie van motorvoertuigen, waar komt de ontwikkeling van software in? We weten dat productie en software ontwikkeling verschillend zijn – productie betreft de creatie van fysieke producten, terwijl software ontwikkeling product is immaterieel en de waarde ervan kan alleen worden waargenomen en gecreëerd in de hoofden van het ontwikkelteam.
De mapping tussen lean manufacturing en lean software ontwikkeling ontstond voor het eerst in 2003 in een boek getiteld “Lean Software Development: An Agile Toolkit” van Mary en Tom Poppendieck. In het boek interpreteren de Poppendiecks hoe lean manufacturing principes productief kunnen worden toegepast op software ontwikkeling. Zowel productie als software ontwikkeling volgen herhaalbare procedures en vereisen precieze kwaliteitsnormen. Ze zijn ook afhankelijk van teamwerk om iets voor elkaar te krijgen. Dus, de zeven lean manufacturing principes kunnen van toepassing zijn en worden gebruikt in de ontwikkeling van software.
Zeven Lean Principles to Follow for Software Development
Omdat een snellere manier van het ontwikkelen van software producten mogelijk te maken, agile ontwikkeling benaderingen zijn populair voor veel ontwikkeling bedrijven. Dergelijke bedrijven zijn al de implementatie van lean development principes. Hier volgen de 7 lean-principes die u in uw softwareontwikkelingsprojecten kunt toepassen:
- Eliminate Waste
Het eerste principe dat bij lean-ontwikkeling moet worden gevolgd, is het elimineren van alles wat geen waarde oplevert voor de eindgebruiker. Bij softwareontwikkeling kan dit principe worden toegepast door eerst de waarde van het te bouwen softwareproduct vast te stellen. Zodra dat is gedaan, wordt het gemakkelijker om de ‘verspilling’ te detecteren – alles wat geen waarde toevoegt aan het product en uiteindelijk aan de gebruikers, inclusief onnodige code, onduidelijke eisen, extra functies, en processen, enz. Andere fasen van de methodologie die geen waarde opleveren, moeten ook worden verwijderd. Er bestaan hulpmiddelen om verspilling in softwareontwikkeling te identificeren, zoals Value Stream Mapping.
- Create Knowledge
Softwareontwikkeling is op zich een proces dat kennis genereert. Het principe van kennis creëren stimuleert ontwikkelingsteams dus om de juiste structuren te hebben om goed te kunnen leren. Klinkt eenvoudig, maar het principe vereist totale focus en toewijding. Het kan worden geïmplementeerd door middel van trainingen, code reviews, adequaat codecommentaar, pair programming, projectdocumentatie, sharing sessies en meer.
- Build Quality In
Een lean ontwikkelteam moet ervoor zorgen dat hun focus ligt op het ontwikkelen van kwaliteit in het product. Ze mogen dus niet afhankelijk zijn van het idee dat het eindproduct geen fouten mag vertonen. Omgekeerd moeten teams het ontwikkelingsproces blijven verbeteren en vanaf het allereerste begin stoppen met het verspreiden van defecten in het product voor een functioneel eindproduct.
- Snelle levering
Agile ontwikkelingstechnieken richten zich op het zo snel mogelijk opleveren van software. Lean development is een agile aanpak en legt ook de nadruk op het snel opleveren van software. Het betekent dat een projectteam een doelgericht onderdeel op het juiste moment aan gebruikers moet leveren. Creëer voor uw team gelijkmatige en stabiele workflows die voortkomen uit inzicht in de proceswaarde om snellere resultaten mogelijk te maken.
- Empower Your Team
Empower your project team requires that you respect everyone – people working together as a team should respect each other. Als er iets misgaat, en dat zal meestal gebeuren, geef dan niet iedereen de schuld. Ga in plaats daarvan na of er hiaten in het proces zitten die tot uitdagingen en conflicten kunnen leiden. Creëer een gunstige werkomgeving voor iedereen en geef het goede voorbeeld. Geef teamleden bovendien de innovatieve vrijheid om de juiste aanpak en hulpmiddelen te kiezen en te identificeren voor alle toegewezen taken.
- Traag bij het nemen van beslissingen
Ik weet dat dit controversieel klinkt omdat we conventioneel de neiging hebben om zo snel mogelijk beslissingen te nemen. Als een lean principe betekent te laat beslissen niet dat je onverantwoordelijk bent in het nemen van beslissingen. In plaats daarvan moedigt het een projectteam aan om opties langer open te houden om meer gegevens en informatie te verzamelen die hen kunnen helpen bij het nemen van cruciale beslissingen. Uitstellen om een beslissing te nemen geeft je meer tijd om te leren en meer kennis op te doen wat resulteert in nog betere beslissingen. Het gevolg is dat uw project geen negatieve gevolgen ondervindt die het gevolg kunnen zijn van een slechte besluitvorming. Denk er eens over na: zou u liever een overhaaste beslissing nemen en daar later spijt van krijgen, of zou u de tijd nemen om informatie te verzamelen en de juiste beslissing te nemen?
- Optimaliseer het geheel
Ga altijd voor de optimalisatie van het gehele ontwikkelingsproces en niet alleen van deelprocessen. Als u waarde toevoegt aan slechts één of enkele processen, zal het eindproduct worden beïnvloed en zullen uw resultaten suboptimaal zijn. U moet geen inferieur product lanceren omdat u niet genoeg tijd had. Om met sub-optimalisatie om te gaan, moedigt het optimaliseer als een geheel principe aan om vicieuze ontwikkelings- en testcycli te elimineren en in plaats daarvan met veel betere werkcapaciteiten te werken. Door het geheel te optimaliseren kunnen de waardestromen van het proces voor een volledig team worden geïdentificeerd, wat een snellere en waardevolle levering mogelijk maakt. Dus, focus op de gehele waardestroom van begin tot eind om optimalisatie te bereiken.