Wat is Agile?

Voltooid

Agile is een term die wordt gebruikt voor het beschrijven van benaderingen voor softwareontwikkeling, het benadrukken van incrementele levering, teamsamenwerking, continue planning en leren. Agile is niet zozeer een proces als een filosofie of mindset voor het plannen van het werk dat een team gaat doen. Het is gebaseerd op ontwikkelcycli en het biedt teams de mogelijkheid om beter te anticiperen en reageren op de onvermijdelijke wijzigingen die in de softwareontwikkeling plaatsvinden. Laten we eens meeluisteren met het gesprek dat Mara had met Andy na de meest recente release.

Mara had het gevoel dat ze enigszins de interesse van het team had gewekt voor DevOps, maar dat dit uiteindelijk niet tot iets had geleid. Het team is te druk met het oplossen van fouten voor de laatste versie om over iets anders na te denken.

Zoals u zich herinnert, heeft Irwin, de productmanager, het team feedback gegeven over de racegamewebsite. Het was geen pretje om deze problemen op te lossen. Andy en Mara schreven de code en gaven deze vervolgens aan Amita, de tester. Amita vond steeds weer nieuwe fouten en moest de code dan weer teruggeven. De buildserver werkte niet. Tim kon de website van de game niet in productie krijgen, zelfs niet nadat het in ontwikkeling en test werkte. Iedereen werkte lange uren en verloor een paar weekenden.

Nadat ze de release hebben verzonden, zaten Mara en Andy voor koffie. Ze waren allebei moe. Mara werd afgeraden, maar Andy had een andere houding.

Andy: Ik weet niet waarom je verrast bent. Software leveren is altijd een zware klus. Het is altijd een hele kluif. Heb je het ooit anders gedaan?

Mara: Ik heb, en ik denk dat we het hier ook gemakkelijker kunnen maken. Ik denk echt dat DevOps voor ons van nut kan zijn.

Andy: Ik herinner me dat we een oefening voor waardestroomtoewijzing hebben uitgevoerd, maar wat nu? We moeten aan de slag met de nieuwe versie. Ik dacht dat we niets meer aan DevOps deden.

Mara: Er is veel meer dat we kunnen doen. Ik denk dat we een eerste stap moeten zetten en aan Agile-planning moeten gaan doen. Daarbij kunnen we Azure Boards goed gebruiken.

Andy: Wat bedoel je met Agile?

Mara: Agile is een benadering van softwareontwikkeling. De term 'Agile' is in 2001 geïntroduceerd in het Agile-manifest. In het manifest werden enkele belangrijke uitgangspunten geopperd voor een betere methode voor softwareontwikkeling. In het manifest staat het volgende:

We geven de voorkeur aan:

  • Individuen en interacties over processen en hulpprogramma's.
  • Werkende software via uitgebreide documentatie.
  • Samenwerking van klanten via contractonderhandeling.
  • Reageren op wijziging na een plan.

Andy: Als je een magische manier weet om het leven gemakkelijker te maken, ben ik er allemaal voor. Mijn kinderen liggen altijd al op bed, wanneer ik thuis kom. Het klinkt allemaal wel erg zweverig en zonder concrete oplossingen.

Mara: Het is geen magie, maar we kunnen het bit-by-bit doen. Azure DevOps biedt ons de hulpprogramma's die we nodig hebben om Agile-procedures te implementeren. We kunnen nu bij het plannen Azure Boards gebruiken. Kun je me eerst het buildproces uitleggen en aangeven wat de belangrijkste problemen zijn?

Na veel koffie identificeren Mara en Andy de grootste problemen in het bouwproces. Alle problemen zijn opgetreden tijdens de laatste release. Nadat Andy is vertrokken, bekijkt Mara haar neergekrabbelde notities en besluit zelf aan een beetje Agile-planning te doen. Ze past zelf het Basic-proces toe in Azure Boards om alle problemen op één plek te ordenen.

Vervolgens wil ze het board aan het team laten zien en ervoor zorgen dat ze deze aanpak gaan toepassen.

Aanbevelingen voor het aannemen van Agile

Het team bereidt zich voor om hun eerste stappen uit te voeren voor de overstap naar Agile. Hier volgen enkele algemene aanbevelingen die elk team kan gebruiken om Agile in hun organisatie op te nemen.

Een organisatiestructuur maken die Flexibele procedures ondersteunt

Voor de meeste organisaties kan het implementeren van Agile lastig zijn. Het vereist een mind shift en een cultuurverschuiving die veel bestaande beleidsregels en processen binnen de organisatie uitdagt. Traditioneel gebruiken de meeste bedrijven een horizontale teamstructuur. In de praktijk betekent dit dat teams overeenkomen met de softwarearchitectuur. Er kan bijvoorbeeld een team zijn dat verantwoordelijk is voor de gebruikersinterface van een toepassing, een ander team dat verantwoordelijk is voor gegevens en een ander team dat verantwoordelijk is voor de servicegerichte architectuur.

Verticale teams bieden echter betere resultaten voor Agile-projecten. Verticale teams omvatten de architectuur en worden afgestemd op productresultaten. Er kan bijvoorbeeld een team zijn dat verantwoordelijk is voor het e-mailgedeelte van de app en teamleden afkomstig zijn van alle drie de eerder genoemde disciplines. Een ander voordeel van de verticale teamstructuur is dat schalen plaatsvindt door teams toe te voegen.

Mentorteamleden over Agile-technieken en -procedures

Wanneer ze voor het eerst Agile-technieken en -procedures gaan gebruiken, besluiten sommige teams om externe coaches in te huren. Coaches kunnen zelfs met meerdere teams werken om organisatorische obstakels en silo's te verwijderen, zodat ze vaak zowel onderwijs- als leidinggevende vaardigheden hebben. Ze kunnen ook teamleden trainen in Agile-technieken, zoals het uitvoeren van stand-up en het beoordelen van vergaderingen. Na verloop van tijd is het echter belangrijk dat teamleden elkaar kunnen begeleiden. Dit betekent dat de meeste werkzaamheden gezamenlijk moeten worden uitgevoerd en niet door personen die het grootste deel van hun werk alleen doorbrengen.

Samenwerking tussen teams en teams inschakelen

Als samenwerking de sleutel is om succesvol te worden bij Agile, wat zijn een aantal manieren waarop u het kunt aanmoedigen? Hier volgen enkele ideeën.

Cultuurverandering

Houd bij het wijzigen van een cultuur rekening met een paar dingen. Het is belangrijk dat teamleden een rustige, comfortabele plek hebben om te werken. Ze hebben ruimten nodig waar ze zich kunnen concentreren, zonder veel afleiding en lawaai.

Vergaderingen zijn een feit van het leven en ze kunnen het gevoel hebben dat ze het werk van een persoon overnemen. Om teamleden meer controle te geven, hebben vergaderingen een agenda en strikte tijdsbestekken nodig.

Asynchrone communicatie, zoals e-mail en berichten, kan overweldigend zijn en mensen vinden vaak dat ze meteen moeten worden beantwoord. Maak duidelijk dat niet al deze communicatie een onmiddellijke reactie nodig heeft.

Externe teamleden zijn nu de norm in veel bedrijven. Iedereen moet zich comfortabel voelen met al hun teamleden en ze gelijk behandelen, ongeacht of ze op kantoor zijn of op een externe locatie werken. Samenwerking via communicatie moet deel uitmaken van het DNA van de organisatie.

We kunnen het belang van goede communicatie niet te veel benadrukken, zelfs niet als er onenigheid is. Conflictoplossing is een goede vaardigheid voor elk Agile-team.

Functieoverschrijdende teams

Net zoals het belangrijk is dat teamleden samenwerken, is het ook belangrijk dat teams met elkaar samenwerken. Functionele teams voegen nieuwe vaardigheden en perspectieven toe die het vermogen van iedereen om uitdagingen creatief op te lossen kunnen uitbreiden. Functieoverschrijdende teams zorgen er ook voor dat de hele organisatie samenhangender wordt. Ze verminderen turfoorlogen en vergroten het gevoel dat iedereen werkt aan een gemeenschappelijk doel.

Hulpprogramma's voor samenwerking

Goede hulpmiddelen kunnen uw Agile-teamleden helpen effectiever samen te werken, zowel binnen het team als met andere teams. Hier volgen enkele suggesties om u op weg te helpen:

  • Microsoft Teams: Teams is een toepassing die een werkplek biedt voor chatten, vergaderingen, notities en bestandsopslag.
  • Skype: Skype is eenvoudig te gebruiken en een goed algemeen hulpmiddel. Veel mensen hebben het al geïnstalleerd.
  • Slack: Slack biedt veel afzonderlijke communicatiekanalen, allemaal vanuit één interface. U kunt deze kanalen op veel manieren organiseren, zoals op project, team of onderwerp. Gesprekken worden bewaard en kunnen worden doorzocht. Het is eenvoudig om zowel interne als externe teamleden toe te voegen. Slack kan rechtstreeks worden geïntegreerd met veel hulpprogramma's van derden, zoals GitHub voor broncode.

Andere veelgebruikte hulpprogramma's zijn Google Hangouts, Asana, Trello, GoToMeeting en monday.com. Probeer uzelf vertrouwd te maken met de opties om te zien welke van hen aansluiten bij de behoeften van uw team en uw bedrijf.