Delen via


Agile-procedures implementeren die worden geschaald

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Enterprise-organisaties gebruiken Agile-procedures om verschillende redenen. Een van de volgende redenen zijn onder andere:

  • Tijdsbestek naar de markt verkorten en productlevering versnellen
  • De effectiviteit van de organisatie verbeteren om veranderende prioriteiten te beheren
  • Softwarekwaliteit en leverings voorspelbaarheid verbeteren
  • Zichtbaarheid van projecten verbeteren en projectrisico's verminderen

Naarmate uw organisatie groeit, wilt u uw procedures schalen om flexibel te blijven en te voldoen aan veranderende doelen. Houd hiervoor rekening met de volgende twee leidende principes:

  • Hoe ziet succes eruit voor u, uw teams en uw organisatie? Wat interesseert u het meest: Tijdige levering? Productkwaliteit? Voorspelbaarheid? Klantentevredenheid?
  • Ga terug naar de eerste principes en ga terug naar de principes en gedeelde waarden die zijn opgesomd in het Agile-manifest zoals vermeld door Ken Opgesomder, een van de oprichters van Scrum:
    • "Waarden en principes schalen, maar procedures zijn contextgevoelig."
    • "Houd de waarden, houd de principes en denk zelf na. Een kernonderdeel van Agile is dat de mensen die het werk doen de mensen zijn die het beste kunnen uitzoeken hoe ze het kunnen doen."

Ritme en stroom maken

Door gebruik te maken van een gedeelde frequentie en een set periodieke communicaties, maakt u een constante activiteitsstroom in de hele organisatie. Procedures voor het creëren van ritme en stroom binnen grotere organisaties zijn onder andere:

  • Gedeelde frequentie: regelmatige sprints en releases zorgen voor het ritme van het bedrijf. Het werken met alle teams aan een gedeelde frequentie helpt bij alle coördinatie- en samenwerkingsactiviteiten.
  • Sprintcommunicatie: Om de organisatie en alle teams op de hoogte te houden van de voortgang en plannen van functieteams, kan elk functieteam een samenvatting van hun vorige sprintresultaten en huidige sprintplannen delen via digitale kanalen, zoals Microsoft Teams, Slack of e-mail.
  • Sprint demo's en video's: Maak snelle video's van 2 tot 3 minuten die nieuwe functies illustreren die het team produceert. Deel koppelingen naar dergelijke video's binnen sprintcommunicatie of teamkanalen.
  • Vergaderingen presenteren: Om andere teams te informeren en feedback te vragen over software die in ontwikkeling is, laten teams het werk zien dat ze hebben voltooid. Voer deze vergaderingen regelmatig uit gedurende de levenscyclus van het project en open ze voor alle belanghebbenden.
  • Dashboards voor metrische gegevens over kwaliteit: ter ondersteuning van inzicht in productkwaliteit en het stimuleren van het onderhouden van bugdisciplines, deelt u periodiek metrische gegevens over de kwaliteit met de organisatie. Deze metrische gegevens kunnen actieve bugs per functieteam, bugtrends, testdekking en escapepercentages voor defecten omvatten.
  • Coördinatievergaderingen en -ceremonies: houd vergaderingen die teams regelmatig coördineren of zo vaak als nodig is om overlappende doelen, afhankelijkheden en risico's aan te pakken. Overweeg om Scrum van Scrums of Program Increment (PI) planningssessies te implementeren.

Interactie met klanten

Klanten betrekken tijdens uw productlevenscyclus is een primair Agile-principe. Elk team in staat stellen om rechtstreeks met klanten te communiceren op de functiesets die ze bezitten.

  • Doorlopende feedbacklussen: Bouw feedbackmechanismen van klanten. Deze lussen kunnen vele vormen aannemen:
    • Spraakplatforms voor klanten: maak het voor klanten gemakkelijk om feedback te geven, ideeën toe te voegen en te stemmen op functies van de volgende generatie via speciale portals, communityforums of geïntegreerde feedbacksystemen.
    • Feedback in het product: Implementeer feedbackknoppen en telemetrie in het product om inzichten te verzamelen over de productervaring en specifieke functies.
    • Klantdemo's en gebruikerstests: plan reguliere demo's die vragen om feedback van uw klanten en gebruiksvriendelijkheidstests uitvoeren om de volgende generatie producten vorm te geven en u op schema te houden om toepassingen te bouwen die uw klanten willen gebruiken.
  • Early adopter- en bètaprogramma's: Ontwikkel programma's met het idee dat alle teams op een bepaald moment willen deelnemen. Early adopters krijgen toegang tot vroege versies van werkende software en geven waardevolle feedback. Deze programma's werken vaak door bepaalde functievlagmen in te schakelen voor een early adopter-lijst.
  • Gegevensgestuurde beslissingen: zoek manieren om uw product te instrumenteren om nuttige gegevens te verkrijgen en verschillende hypothesen te testen. Streven naar een experimentvriendelijke cultuur die leer- en bewijsgebaseerde besluitvorming viert.

Zichtbaarheid van projecten verbeteren

Hoe meer inzicht u en uw teams hebben in het doel, de visie en de voortgang van het werk dat wordt uitgevoerd, hoe beter u risico's kunt verminderen en afhankelijkheden kunt beheren.

  • Teamstructuur: Ongeacht hoe groot uw organisatie wordt, het structureren van uw organisatie rond kleine teams van 6 tot 9 personen wordt effectief geschaald. Maak verticale, autonome functieteams gegroepeerd onder portfoliobeheergebieden.
  • Structuur voor uitsplitsing van werk: het opsplitsen van grote doelen, functies of vereisten in kleinere onderdelen blijft een stap voor projectmanagement. Door werk op te splitsen in taken van vergelijkbare grootte, kunnen teams betere schattingen maken en risico's en afhankelijkheden identificeren.
  • Geconsolideerde weergaven en dashboards: gebruik uw hulpprogramma's voor onlinetracking om werk samen te voegen en kennis te krijgen tussen teams. Bouw realtime dashboards om voortgang, trends en key performance indicators weer te geven met behulp van Azure DevOps Analytics-services.
  • Ervarings- en ontwerpbeoordelingen: Houd deze vergaderingen vast voordat de ontwikkeling begint met een functie om leiding te geven over scenario's en prioriteiten, feedback te verzamelen, verwachtingen in te stellen en eventuele problemen tussen teams over de functie op te lossen.

Een productief personeel in staat stellen

Specifieke Agile-procedures die goed schalen en leiden tot gelukkigere, betrokken en productieve werknemers zijn onder andere:

  • Ingesloten leiderschap en psychologische veiligheid: Geef teams en leiders binnen de organisatie de mogelijkheid om zoveel mogelijk zelf te organiseren en zelf te beheren. De autonomie van het team verhoogt de flexibiliteit van de organisatie en de effectiviteit van het team. Zorg ervoor dat teams beschikken over de corporate sponsorship die nodig is om te slagen en omgevingen te creëren waarin teamleden zich veilig voelen om ideeën en zorgen uit te drukken.
  • Dagelijkse stand-ups: Scrum-vergaderingen helpen teams gefocust te blijven op hun dagelijkse taken, zodat ze hun sprintverplichtingen optimaal kunnen nakomen. Naarmate organisaties groeien, moeten ze overwegen om deze vergaderingen te staken, zodat deelname tussen teams waar nodig kan plaatsvinden.
  • Scrum van scrums: vertegenwoordigers van verschillende Agile-teams komen regelmatig bijeen om voltooid werk, volgende stappen en problemen of blokken binnen hun teams te rapporteren.
  • Teamcommunicatie en kennis delen: Geef teams en moedig ze aan om hun procedures en richtlijnen te delen via bedrijfsnetwerken. Veelgebruikte hulpprogramma's zijn teamwiki's, Microsoft Teams, Confluence of Azure DevOps-wiki's.
  • Samenwerking en codekwaliteit: Moedig informele communicatie en samenwerking tussen teams aan. Institutionaliseer praktijken zoals codebeoordelingen, ontwerpbeoordelingen, paarprogrammering en mob-programmering. Deze procedures vergroten niet alleen de samenwerking van teams, maar helpen bij het ontwikkelen van individuele en algemene bedrijfscompetenties.

Organisatiecultuur verbeteren

U verbetert de effectiviteit van de organisatie door deel te nemen aan de cultuur die u wilt bouwen. Cultuurwijzigingen treden op wanneer individuen, teams en organisaties een of meer continue verbeteringspraktijken aannemen. Enkele schaalbare Agile-procedures zijn:

  • Retrospectieven: Stel vragen als: 'Wat is er goed gegaan?', 'Wat moeten we anders doen?' en 'Wat moeten we stoppen?' om teams te helpen nadenken over hoe ze hun processen en procedures kunnen verbeteren. Retrospectieven helpen teams om te ontdekken wat goed werkt en wat verbetering nodig heeft. U kunt op elk gewenst moment en overal retrospectieven uitvoeren. Het instellen van bepaalde retrospectieven in een regelmatige frequentie helpt echter bij het vaststellen van continue verbeteringspraktijken. Voorbeeld:

    • Sprint retrospectieven helpen teams om gebieden te identificeren die regelmatig moeten worden verbeterd.

    • Release-retrospectieven helpen organisaties bij het identificeren van gebieden om de communicatie en interne praktijken te verbeteren en stimuleren verbetering voor de volgende release.

    • Operationele beoordelingen: doorgaans maandelijks gehouden en vertegenwoordigers van een hele waardestroom bevatten. Een portfolio van projecten en andere initiatieven beslaat en objectieve, kwantitatieve gegevens gebruikt, ontwerpt deze retrospectieven om discussies te veroorzaken over de dynamiek die van invloed is op de prestaties tussen teams.

      Zie de Agile Retrospectievenwiki voor ideeën, tips en hulpprogramma's voor het plannen en uitvoeren van retrospectieven. Zie ook de extensie Marketplace Retrospectieven.

  • Verbeteringsregistratiebord: Goede ideeën om processen te verbeteren kunnen op elk gewenst moment ontstaan door iedereen. Het vastleggen van deze ideeën om deze ideeën te bespreken en te bepalen hoe erop moet worden gehandeld, ondersteunt snel procesverbeteringsinspanningen.

    Een whiteboard biedt een eenvoudige en visuele middelen om ideeën vast te leggen. U kunt ook een verbeteringsteam maken en ideeën vastleggen die u op een elektronisch bord bijhoudt.

  • Delen en leren instellen: het delen van best practices en het communiceren van ideeën helpt alle teams binnen een organisatie te groeien en te verbeteren. Het ontwikkelen van een leercultuur ondersteunt deze en andere continue verbeteringsactiviteiten. Houd rekening met deze ideeën:

    • Interne wiki's en kennisbanken

    • Gemeenschappen van praktijk en gilden

    • Hackathon weken of innovatietijd

    • Interne DevOps- en Agile-coachingteams ter ondersteuning van teams die deze procedures aannemen

    • Reguliere lunch-en-learnsessies

    • Interne conferenties en technische gesprekken

      De Culture Game biedt een goede resource voor Agile-managers om teams te helpen Agile-procedures te gebruiken en best practices te delen.

  • Gemeenschappen van praktijk: ondersteunen interne gemeenschappelijke disciplines (bijvoorbeeld site reliability engineers, softwarearchitecten, UX-ontwerpers, datawetenschappers en beveiligingsspecialisten)

Werksoftware

"Werksoftware regelmatig leveren, van een paar weken tot een paar maanden, met een voorkeur voor de kortere tijdschaal."
"Werkende software is de primaire maat voor de voortgang."
- Agile-manifest

Naarmate de hoeveelheid software, functies en complexiteit toeneemt, moet u procedures gebruiken die u helpen bij het produceren van bruikbare oplossingen.

  • Functievlagmen en progressieve levering: gebruik functievlagmen om de toegang tot verschillende functies veilig in of uit te schakelen. Ondersteuning voor het inschakelen van functies voor vroege gebruikers van nieuwe technologieën om werkende feedback te krijgen. Implementeer progressieve leveringspatronen, zoals canary-releases en blauwgroene implementaties.
  • Release trains en continue levering: Bied een ander soort ritme om een of meerdere features te leveren. Functieteams begrijpen het vooraf geplande schema voor het pushen van nieuwe functies en plan dienovereenkomstig. Releasetreinen kunnen overeenkomen met hetzelfde sprintritme dat voor de organisatie is ingesteld of zich in een ander tempo voordoen. Zie Scaled Agile Framework voor het instellen van sprints en het vrijgeven van treinen.
  • Continue integratie en continue implementatie (CI/CD): gebruik geautomatiseerde processen die handmatig werk elimineren en de stroom van software automatiseren via test-, build- en implementatiecycli. Implementeer uitgebreide teststrategieën, waaronder eenheidstests, integratietests en geautomatiseerde acceptatietests.
  • Interne bron en open ontwikkeling: Breng de waarde en ethos die zijn ontwikkeld in de Open Source Software-community naar uw interne ontwikkelteams. Stimuleer het delen van code, documentatie en samenwerkingsontwikkeling in teams.
  • Cloudeigen procedures: gebruik containerisatie, microservicesarchitecturen en cloudeigen implementatiepatronen om de schaalbaarheid en onderhoudbaarheid te verbeteren.

Moderne praktijken en overwegingen

Naarmate Agile-procedures zich hebben ontwikkeld, kunt u deze andere moderne benaderingen overwegen:

  • DevSecOps-integratie: integreer beveiligingsprocedures gedurende de ontwikkelingslevenscyclus in plaats van beveiliging als een afzonderlijk probleem te behandelen.
  • Site reliability engineering (SRE): Pas SRE-methoden toe om de betrouwbaarheid van systemen te verbeteren en operationele overhead te verminderen.
  • Waardestroomtoewijzing: Wijs de waardestroom toe van idee tot klantlevering en optimaliseer deze.
  • OKR's (doelstellingen en belangrijke resultaten): gebruik OKR's om teams af te stemmen op meetbare resultaten in plaats van alleen uitvoer.
  • Ontwerpdenken: integreer ontwerpbenaderingen op basis van mensen om meer inzicht te krijgen in de behoeften van klanten.

Naast de bovenstaande procedures vindt u meer richtlijnen voor het schalen van uw Agile-hulpprogramma's in de volgende artikelen:

Industriebronnen

Procedures die niet worden geschaald

  • Grote initiatieven schatten: Een deel van de watervalprojectmethoden is betrokken bij het schatten van resources en planningen. Hoe groter de initiatieven, hoe minder waarschijnlijk deze schattingen elke waarde opleveren. Naarmate projecten groeien, kunnen risico's en onvoorziene problemen en belemmeringen ontstaan, waarbij veel schattingen ongeldig worden.
  • Snelheid als metrische gegevens van meerdere teams: hoewel teamsnelheid een nuttige metriek kan bieden om inzicht te krijgen in hoeveel werk elk team tijdens een sprintcyclus kan voltooien, kunt u geen teamsnelheden toevoegen om zinvolle of nuttige metrische gegevens te verkrijgen. Bovendien is het gebruik van snelheid die is opgedaan van veel teams om betrouwbare langetermijnprognoses te voltooien problematisch. Teams kunnen variëren in hoe ze hun werk schatten en deze variaties nemen in de loop van de tijd toe.
  • Top-down prescriptieve oplossingen: Één grootte past niet op alle, en één oplossing past doorgaans niet bij alle teams. Het ondersteunen van teamautonoom betekent dat teams hun eigen oplossingen kunnen vinden en tegelijkertijd de benodigde frameworks en ondersteuning kunnen bieden.
  • Cargo cult Agile: Het eenvoudig aannemen van Agile-ceremonies zonder hun doel te begrijpen of ze aan te passen aan uw context leidt vaak tot ineffectieve implementaties.