Skip to main content

DevOps is naar voren gekomen als een essentiële filosofie die de kloof tussen softwareontwikkeling en IT-activiteiten overbrugt. Het gaat verder dan alleen het gebruik van DevOps-tools. Een succesvol DevOps-team versnelt niet alleen het leveringsproces, maar zorgt ook voor kwaliteit en betrouwbaarheid. Het creëren van zo'n team vereist echter een harmonieuze combinatie van tools, cultuur, processen, samenwerking en meer. Wat zijn de cruciale onderdelen van een eersteklas DevOps-team en hoe kunnen organisaties deze integreren voor optimale resultaten? Als onderdeel van deze serie hadden we het genoegen om Dylan Etkin, medeoprichter en CEO van Sleuth, te interviewen.

Hoi Dylan – Kun je ons iets vertellen over je achtergrond? 

Ik ben mijn loopbaan als softwareontwikkelaar begonnen. Ik had het geluk om me aan te sluiten bij een kleine start-up, Atlassian, als hun twintigste werknemer. Ik heb 10 jaar bij Atlassian gewerkt, ontzettend veel geleerd en de organisatie zien groeien van 20 naar 1200 medewerkers. Ik was een van de eerste 3 ontwikkelaars op Jira, de eerste Jira-architect en de technisch leider voor Bitbucket, waarbij ik dat product heb helpen groeien van 40K naar 2M gebruikers. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Ik verliet Atlassian en ging aan de slag bij een kleine start-up, Statuspage. Een jaar later werd Statuspage overgenomen door Atlassian en merkte ik dat ik weer terug was bij het moederbedrijf. Na 3 jaar leiding te hebben gegeven aan dat team bij Atlassian, besloot ik voor mezelf te beginnen en Sleuth op te richten om datgene waar ik altijd gepassioneerd over ben geweest tot een product te maken: het bouwen van efficiënte ontwikkelteams.

Ik ben altijd gefascineerd geweest door hulpmiddelen voor ontwikkelaars en door het helpen van teams om efficiënt te werken en continu te leren.

Aan wie schrijft u uw succes toe?

Veel mensen hebben me onderweg geholpen. Naarmate ik ouder ben geworden, ben ik me steeds meer gaan realiseren wat voor bijzonder netwerk ik heb opgebouwd en hoe bereid iedereen is om te helpen wanneer daarom wordt gevraagd.

Een voorbeeld dat eruit springt is John Kodumal, de medeoprichter en CTO van LaunchDarkly. John en ik waren collega's bij Atlassian. Toen hij LaunchDarkly oprichtte, was hij altijd open over zijn ervaringen met start-ups.

Toen ik mezelf begon te motiveren om Sleuth te starten, steunde hij me op elk niveau. Van het uitwisselen van ideeën en open gesprekken over hoe verder te gaan tot het worden van onze eerste klant: John heeft me op elk punt van mijn reis geholpen. 

Kun je drie sterke punten, vaardigheden of kenmerken met ons delen die je hebben geholpen om dit punt in je carrière te bereiken? Hoe kunnen anderen deze gebieden actief in zichzelf ontwikkelen? 

  1. Doorzettingsvermogen. Vaardigheid en intelligentie brengen je maar tot op zekere hoogte. Steeds opnieuw terugkomen op een probleem is veel krachtiger. Doorzettingsvermogen, zelfs bij meerdere mislukkingen, heeft voor mij succes bepaald.
  2. Oog voor detail. Dit is een eigenschap die voor mij altijd vanzelfsprekend is geweest. Als ontwikkelaar is het een essentiële vaardigheid waarmee je de taken die voor je liggen op een uitstekende manier kunt uitvoeren. In een start-upomgeving is deze vaardigheid nog belangrijker. Wanneer je een product van visie naar werkelijkheid begeleidt, maakt oog voor detail het verschil tussen een middelmatig product en iets waar gebruikers dol op zijn.
  3. Delegeren. Hoezeer je je bedrijf ook volledig moet aansturen, een start-up verandert al snel in een oefening waarbij je mensen aanneemt die op veel gebieden slimmer zijn dan jij en leert je legoblokjes uit handen te geven, zodat anderen kunnen slagen en je bedrijf vooruit kunnen helpen. 

Aan welke vaardigheden probeer je momenteel nog te werken?

Ik werk altijd aan veel dingen; er is nooit een tekort aan vaardigheden om aan te werken. Op dit moment houd ik me vooral bezig met de kunst om het beste uit je mensen te halen. Iedereen is anders en weten hoe je een omgeving creëert waarin ieder individu zijn beste werk kan leveren, is een uitdaging.

Laten we het hebben over een succesvol DevOps-team. Wat zijn de belangrijkste doelen die een DevOps-team kan bepalen voor een traject van digitale transformatie?

DevOps-teams krijgen de bevoegdheid om werk efficiënt van concept tot een succesvolle lancering in productie te brengen. Daarom is het belangrijkste doel voor een DevOps-team het bouwen van de hulpmiddelen, processen en cultuur waarmee individuele ontwikkelaars werk snel van concept tot een succesvolle lancering kunnen brengen. 

Doelen die het bereiken van het belangrijkste doel ondersteunen zijn:

  • De mogelijkheid om werk in kleine batches te definiëren
  • Een volledig geautomatiseerde CI/CD-pijplijn
  • Observeerbaarheid en preproductieomgevingen  die als vangnet fungeren, zodat ontwikkelaars vol vertrouwen wijzigingen naar productie kunnen pushen
  • Een duidelijk proces voor wat je moet doen wanneer wijzigingen misgaan. Iedereen weet hoe een fout moet worden gedetecteerd en hoe het systeem weer in een werkende toestand kan worden gebracht
  • Draagvlak binnen de rest van de organisatie: PM's, marketing, ondersteuning, verkoop en leidinggevenden. Teams kunnen geen DevOps-transformatie realiseren zonder de steun van de hele organisatie

Zijn er uitdagingen of veelvoorkomende valkuilen waar DevOps-teams rekening mee moeten houden?

Er zijn er te veel om op te noemen. Een belangrijk punt is dat je moet beseffen dat het toepassen van DevOps betekent dat je meer verantwoordelijkheid bij de ontwikkelaar legt. Dat gaat niet vanzelf en als je niet investeert in processen en hulpmiddelen, loop je het risico een systeem te bouwen waarin ontwikkelaars geen tijd meer overhouden om daadwerkelijk werk gedaan te krijgen.

Je loopt ook het risico een omgeving op te bouwen waarin ontwikkelaars snel opgebrand raken. Je moet onthouden dat mensen maar een beperkte capaciteit hebben. Daarom moet je goed nadenken over wat je invoert om ontwikkelaars die DevOps toepassen te ondersteunen.

Hoe kunnen effectieve samenwerking en communicatie tussen teamleden de productiviteit en het succes van een DevOps-team vergroten, en welke werkwijzen kunnen dit faciliteren?

Communicatie en samenwerking zijn vereist om DevOps toe te passen. Enkele belangrijke werkwijzen zijn:

  • Een issue-tracker gebruiken voor al het werk en die context en informatie opnemen in commits en codebeoordelingen
  • Codebeoordeling met pull requests
  • Je team een realtime chatoplossing zoals Slack bieden
  • Teamgebaseerde implementatiemeldingen in Slack of de ChatOps-tool van je team
  • Op Slack gebaseerde goedkeuringen voor het promoten van wijzigingen van preproductieomgevingen naar productie
  • Individuele meldingen voor ontwikkelaars wanneer hun wijzigingen worden uitgerold en wanneer ze foutcondities hebben overschreden
  • Zichtbaarheid voor het team in incidenten en perioden waarin implementaties moeten wachten
  • Teampresentaties met PM's en andere belanghebbenden
  • Dagelijkse stand-ups

Welke rol speelt CI/CD in DevOps, en wat zijn de beste werkwijzen voor het implementeren van CI/CD-pipelines om een soepel en betrouwbaar proces voor software-releases te garanderen?

CI/CD is waarschijnlijk het belangrijkste toolingonderdeel dat een team ondersteunt dat DevOps toepast. Het ideaalbeeld is dat teams beschikken over een volledig geautomatiseerde implementatiepipeline die binnen een redelijke tijd wordt uitgevoerd, zodat ontwikkelaars niet lang hoeven te wachten en hun wijzigingen naar productie kunnen begeleiden. Het is belangrijk om CI en het uitvoeren van tests onderdeel te maken van deze ideale pipeline. Het uitvoeren van een robuuste testsuite op je wijzigingen als poort voor implementatie is je belangrijkste vangnet om ervoor te zorgen dat goede wijzigingen worden uitgerold. 

Als teams slechts eenmaal per week willen implementeren, is het mogelijk om een implementatiepipeline te hebben die niet volledig geautomatiseerd is. Als je team echter minstens eenmaal per dag wil implementeren, moet je volledig geautomatiseerd zijn en mag implementatie geen gebeurtenis van betekenis meer zijn.

Hoe draagt het stimuleren van een DevOps-cultuur en -mindset bij aan het algehele succes van een DevOps-team, en welke strategieën kunnen organisaties gebruiken om deze cultuur binnen hun ontwikkel- en operationele teams te bevorderen?

Voor ontwikkelaars:

  • Wekelijkse of tweewekelijkse sprintplanning kan helpen de omvang van taken vast te stellen en binnen het team overeenstemming te bereiken over hoe taken in deze periode passen
  • Geautomatiseerde CI tegen de releasebranch en zichtbaarheid van de resultaten voor het hele team, zodat het team de release bouwbaar kan houden
  • Een “verstoorde” rol binnen een team onderhouden, waarbij duidelijk is wiens taak het is om de releasebranch bouwbaar te houden
  • Een van de beste mechanismen om onvolledig werk te kunnen uitbrengen is het invoeren van een vorm van feature flags.
  • Het kan ook zeer effectief zijn om elke pull request afzonderlijk te implementeren. Met dit patroon kun je het beoordelen van de omvang van een wijziging opnemen in je codebeoordeling van de pull request. Als een batch te groot is, kunnen andere teamleden een ontwikkelaar vragen zijn wijziging op te splitsen in meerdere pull requests.
  • Zorg voor voldoende metrieken en inzicht in hun normwaarden om een implementatie te kunnen verifiëren
  • Begrijp hoe je indien nodig moet escaleren en terugdraaien
  • Zijn bevoegd om hun eigen wijzigingen naar alle omgevingen die je beheert te implementeren en kunnen dit snel en zonder fouten doen

Voor PM's en ontwerpers:

  • Betrek een PM bij het planningsproces om die persoon de gelegenheid te geven de behoeften van de klant bij incrementele implementaties kenbaar te maken.
  • Implementeer feature flags, zodat code kan worden uitgerold maar nog niet zichtbaar is voor klanten. Dit helpt PM's de flexibiliteit te behouden die ze nodig hebben, terwijl ontwikkelaars vooruitgang kunnen blijven boeken.
  • Zorg voor een overeengekomen mechanisme voor feedback en herwerking, zoals een issue dat rechtstreeks aan een ontwikkelaar wordt toegewezen. Een strategie om het probleem van onvolledig werk op te lossen is dat een team cycli van zes weken hanteert.

Voor engineeringmanagers:

  • Implementeer processen die communicatie faciliteren, zoals terugkerende planningsvergaderingen, codebeoordelingen en wekelijkse demo's.
  • Maak tijd vrij voor engineering om ervoor te zorgen dat builds van de releasebranch blijven slagen. De code blijven laten doorstromen betekent ook investeren in dit nieuwe systeem. Wanneer het team een knelpunt identificeert, moet de manager het team in staat kunnen stellen dit weg te nemen (bijvoorbeeld door CI-tests te repareren die in meer dan 20% van de gevallen onvoorspelbaar falen).
  • Implementeer tools waarmee je DORA-metrieken continu kunt meten

Voor leidinggevenden:

  • Maak de Accelerate-metrieken voor je projecten zichtbaar en stel ze, voorzien van context, beschikbaar aan je leidinggevenden.
  • Maak de beschikbaarheid of het equivalent daarvan voor je applicaties zichtbaar.
  • Voorzie je managementteam van dezelfde informatie op hoofdlijnen over grote stukken functionaliteit die worden uitgebracht.
  • Als je een leidinggevende bent, begrijp dan dat verandering tijd kost. Houd je teams strikt verantwoordelijk voor doelen op hoofdlijnen, maar wees flexibel in de manier waarop ze die bereiken. Vertrouw, maar controleer.
  • Neem de tijd om je organisatie uit te leggen hoe je waarde levert aan je klanten. Leg uit hoe incrementele levering werkt, welke zaken in één grote lancering worden uitgebracht en hoe deze manier van werken je in staat stelt om sneller waarde aan klanten te leveren.

Wat zijn de essentiële onderdelen van een succesvol DevOps-team?

1 . Het team werkt samen in een cultuur zonder schuldigen aan te wijzen. 

Softwareontwikkeling is teamsport. Incidenten en fouten zijn kansen voor teams om te leren, geen kansen om iemand de schuld te geven. Een cultuur zonder schuldigen aan te wijzen kan verder reiken dan incidenten. Bij het vaststellen van doelen voor teamverbetering kan een team zich richten op het verbeteren van resultaten, in plaats van individuen of processen de schuld te geven van het feit dat zaken niet zijn zoals ze zouden moeten zijn.

2 . Implementaties zijn gebeurtenissen zonder impact.

Om in kleine stappen te kunnen uitbrengen en snel te kunnen reageren op incidenten en reacties van klanten, moet de implementatie eenvoudig zijn en geen angst of zorgen oproepen. Als een team geen vertrouwen heeft in zijn implementaties, of als deze te lang duren of handmatige stappen vereisen, leidt dit tot angst en aarzeling. Hierdoor kunnen teams DevOps niet invoeren.

3 . Ontwikkelaars krijgen individueel de bevoegdheid om wijzigingen van concept tot een betrouwbare lancering in productie door te voeren. DevOps werkt wanneer je de verantwoordelijkheid voor het volledige proces, van concept tot lancering, in handen van ontwikkelaars legt. Hierdoor kan je team werk opdelen in kleine batches en snel waarde in kleine stappen aan de klant leveren.

4 . Het team beschikt over vangnetten, zoals observeerbaarheid en maatregelen voor storingen, zodat het met vertrouwen snel kan werken (dit is een van de vele voordelen van hulpmiddelen voor data-observeerbaarheid). De dagen van snel werken en dingen kapotmaken zijn voorbij. Nu moet je betrouwbaar snel werken. Hiervoor moet je geautomatiseerde vangnetten invoeren.

5 . De hele organisatie staat achter het werken volgens een DevOps-stroom.

Welke opkomende trends verwacht je in het DevOps-landschap die digitale-transformatiestrategieën in de toekomst aanzienlijk kunnen beïnvloeden?

Dit lijkt nu misschien een voor de hand liggend antwoord, maar AI-hulpmiddelen veranderen nu al de manier waarop ontwikkelaars werken en zullen zeker een grote invloed hebben op de manier waarop DevOps in de toekomst wordt toegepast. AI zal op zijn minst worden gebruikt om storingen te detecteren en te identificeren op manieren die vandaag de dag niet mogelijk zijn.

Als AI al zijn beloften waarmaakt, zal het de ingewikkelde implementatie- en testpijplijnen die we vandaag de dag hebben volledig vervangen.

Abonneer je op de nieuwsbrief van The CTO Club voor meer inzichten, overzichten, vraag-en-antwoordsessies en meer!