Azure DevOps is een cloud dienst van Microsoft die de mogelijkheid biedt om iedereen op alle niveaus samen te laten werken tijdens een project. Denk bijvoorbeeld aan projectmanagers, developers, andere stakeholders of scrum masters en product owners. Als developer werk ik zelf ook vaak met Azure DevOps aan verschillende projecten. In dit blog ga ik dieper in op wat werken in DevOps nou inhoudt voor software developers. Zo bespreek ik of er veel overhead en administratie ontstaat door deze tool te gebruiken,  maar ook of de tool developers juist helpt. Laten we eerste eens kijken welke onderdelen Azure DevOps te bieden heeft.

De vier onderdelen binnen Azure DevOps

Binnen Azure DevOps maak je als developer het meeste gebruik van de onderstaande vier functionaliteiten:

  • Repos – Source control van code
  • Boards – Backlog items
  • Pipelines – Geautomatiseerde builds en deployments
  • Artifacts – Interne Nuget opslag voor eigen gemaakte packages

Naast de bovengenoemde functionaliteiten zijn er natuurlijk nog meer interessante features, maar daarvoor verwijs ik graag door naar Microsoft, aangezien deze in mindere mate of niet interessant zijn voor developers. Ik zal de bovenstaande vier functionaliteiten hieronder uitlichten en neem jullie mee in de mogelijkheden en mijn ervaringen.

Azure DevOps Repos

Repositories maken het mogelijk om de code van jouw project online te hosten voor jou en je team. In Azure DevOps maak je nieuwe git repositories, of je importeert er een vanuit bijvoorbeeld Github. De import kan vanaf iedere geldige git url.

De git repository is de basis voor ieder development project. Vanaf hier breid je het project verder uit en gebruik je het om build, deployments en het project board in te regelen.

Als je met verschillende mensen samenwerkt aan een project, is het altijd verstandig om met Pull Requests te werken. Dit maakt het mogelijk om code reviews te doen voordat het in de master branch gaat en deze released wordt naar test, acceptatie en productie. Azure DevOps stelt ook hier niet in teleur en geeft een goed overzicht van de wijzigingen per pull request, de work items die erbij horen en wie de reviewer is. Na het afronden van deze pull request, zal de code samengevoegd worden met de master branch.

Bij het afronden van de pull request heb je de optie om ook gelijk het toegevoegde work item te sluiten. Voordat je dat doet gaan we eerst even kijken wat deze work items zijn.

Azure DevOps Boards

Binnen Azure DevOps kun je gebruik maken van Kanban boards. De kanban boards stellen je in staat om het werk vooruit in te plannen binnen sprints en je ziet ook gelijk wie waar mee bezig is. Binnen Azure DevOps wordt dit gedaan met zogeheten work items. Dit kunnen o.a. de volgende items zijn: User stories, bugs, product backlog items, features, epics. Welke er beschikbaar zijn is afhankelijk van de template die je kiest tijdens het aanmaken van een project. Denk hierbij aan Agile of Scrum of een custom template die je helemaal zelf kan invullen volgens de werkwijze die past bij het project of organisatie.

Naast het board heb je ook nog een onderdeel genaamd Sprints. Hierin kan je tot op taak niveau zien welke teamleden met een item bezig zijn. Taken kunnen verschoven worden en ook deze taken kunnen weer gelinkt worden aan de code commits die daarbij horen.

Azure DevOps boards biedt natuurlijk nog veel meer mogelijkheden zoals je ook al kan zien in de afbeeldingen. Voor nu houden we het bij de essentiële onderdelen die je dagelijks gebruikt als een developer. De overige onderdelen zijn onder andere:

  • Teamdashboards
  • Projectwiki
  • Discussie optie binnen work items
  • Meldingen die worden beheerd per gebruiker, team, project of organisatie waarschuwingen en wijzigingen wijzigen
  • Mogelijkheid om feedback op te vragen en te beheren
  • Analytics-service, analytische weergaven en Power BI-rapportage

Nu het duidelijk is wat de mogelijkheden zijn van repositories en boards binnen Azure DevOps, gaan we door naar build en deployments. De build en deployment van jouw code naar verschillende omgevingen zonder dat je dit elke keer handmatig moet gaan doen vanaf jouw machine. Dit gebeurt in Azure DevOps Pipelines.

Azure DevOps Pipelines

Als de ontwikkelde code klaar is voor release, zou het wel zo makkelijk zijn als jij je als developer nergens zorgen om hoeft te maken. Wil je als organisatie snel en betrouwbaar de nieuwste versie van de software releasen? Dan is het wel zo verstandig om dit te automatiseren. Laat dit nu precies zijn waar Pipelines voor bedoeld is.

In Pipelines kan je de build en eventueel zelfs de release configureren in Yaml. Deze Yaml definitie moet je vervolgens ook committen in je repository zodat je ook op dit niveau verschillende versies kan beheren. Aangezien puur Yaml schrijven niet voor iedereen is weggelegd is er ook simpele task editor beschikbaar. Hier kan je via de userinterface (rechts op de afbeelding) de Yaml in elkaar klikken.

Azure DevOps Artifacts

Tijdens de implementatie van een project heb je altijd onderdelen die op meerdere projecten of zelfs in meerdere repositories gebruikt kunnen worden. Binnen het artifacts onderdeel heb je de mogelijkheid om je eigen packages feed op te zetten.

Deze feed bied je de mogelijkheid om NuGet, npm, Maven of python packages te delen met meerdere personen of groepen. Artifacts biedt hier drie onderscheidingen in:

Zodra de feed is opgezet kan deze in projecten maar ook in je huidige pipelines gebruikt worden.

Wat betekent Azure DevOps voor Developers?

Nu we weten wat Azure DevOps kan betekenen is de vraag bij developers al snel: Wat gaat het me opleveren? Hierbij kan ik natuurlijk alleen mijn persoonlijke mening geven. Azure DevOps geeft mij persoonlijk veel controle over een project. Met het board waar exact de huidige voortgang van het project staat, maar ook wat er vervolgens opgepakt kan worden. In de praktijk voorkomt dit veel vragen van andere stakeholders over de voortgang en wat ze kunnen verwachten in de komende iteraties.

Naast het board is voor mij als developer ook heel belangrijk wat er allemaal gebeurt op code gebied. Met een duidelijk overzicht van de history en code reviews via pull requests, blijft iedereen op de hoogte van veranderingen. Dit brengt vaak ook discussies over de architectuur omdat iedereen meekijkt, wat de oplossing alleen maar beter maakt.

Developers hebben over het algemeen weinig zin om tijd door te brengen op een project board en work items te verslepen. Daarom voorziet Azure DevOps hier volledig in door de items automatisch te sluiten met een pull request. Dit voorkomt ook dat een board achter gaat lopen van de huidige staat van ontwikkeling.

Heeft Azure DevOps dan geen nadelen? Ja tuurlijk wel, zo heb ik gemerkt dat het voor mensen die helemaal niet in de Microsoft wereld zitten, een grote stap is om te beginnen aan Azure DevOps. Ze hebben vaak ook geen Microsoft account (live, outlook of Azure Active Directory). Dit zal je merken als je externe partijen gaat gebruiken voor bijvoorbeeld het design, pentester of andere zeer gespecialiseerde onderdelen. Door deze partijen een account te geven binnen jouw eigen active directory zal daarna ook alles sneller ingeregeld worden.

Conclusie

Met Azure DevOps gaat het samenwerken aan projecten met een team op afstand, sneller, en veel gecontroleerder. Daarnaast is het voor externen en klanten duidelijk wat er allemaal gebeurt, wat veel rust brengt binnen het development team. Dit bevordert de focus en snelheid van het hele team. Ben jij nou nieuwsgierig geworden naar Azure DevOps en wil je dit ook implementeren in jouw organisatie? Neem dan onder aan dit blog contact met ons op. Wij helpen je graag verder. Lees in de tussentijd ook meer over development en onze projecten bij InSpark.

SHARE
Mark Foppen
Share

Gerelateerde blogs

Mark Foppen

Developer

Meer weten over DevOps?
Ik kan je meer vertellen over hoe ik als developer met de tool werk!
Altijd up to date?
Blijf op de hoogte van de laatste innovaties. Geef aan welke mailings jij maandelijks wil ontvangen. Schrijf je nu in!