Close

Negatieve snelheid: hoe verhoog je de complexiteitslimiet


Een van de meest voorkomende doelen van een technische organisatie is snel hoogwaardige software leveren.

Bekijk de visieverklaring van je CIO of CTO en luister naar wat ze zeggen. De kans is groot dat ze dit doel op hun eigen manier nastreven. Hoewel het een gemeenschappelijk doel is, is er een groot verschil tussen teams die dit ultieme doel bereiken en teams die vastzitten in het leveren van software. Sommige teams brengen voortdurend nieuwe code op de markt met weinig incidenten of negatieve gevolgen voor de klant, terwijl andere teams moeite hebben met releases per kwartaal.

Een van de meest voorkomende doelen van een technische organisatie is snel hoogwaardige software leveren.

Bekijk de visieverklaring van je CIO of CTO en luister naar wat ze zeggen. De kans is groot dat ze dit doel op hun eigen manier nastreven. Hoewel het een gemeenschappelijk doel is, is er een groot verschil tussen teams die dit ultieme doel bereiken en teams die vastzitten in het leveren van software. Sommige teams brengen voortdurend nieuwe code op de markt met weinig incidenten of negatieve gevolgen voor de klant, terwijl andere teams moeite hebben met releases per kwartaal.

Hoe zijn deze prestatieverschillen te verklaren?


Wat de levering van software complex maakt, is het verschil tussen hoogwaardige software snel leveren en … niet. Het is het verschil tussen elke week de vlag uithangen na een succesvolle release en een team dat zich niet meer betrokken voelt bij de levering van software, gefrustreerd dat maandenlang werken aan de nieuwste release tot zes nieuwe bugs en een rollback heeft geleid.

Vergelijk de snelheid en kwaliteit waarmee startups nieuwe producten en functies leveren met die van een gevestigde, grote organisatie. In de financiële sector hebben fintech-startups het afgelopen decennium bijvoorbeeld marktaandeel van grote, gevestigde banken afgesnoept. Grote banken wijzen vaak op de oneerlijke concurrentie van fintech-startups, die aan minder regelgeving hoeven te voldoen en geen verouderde, monolithische toepassingen hoeven te onderhouden. Een kleiner team biedt meer flexibiliteit en de mogelijkheid om te schakelen op basis van de behoeften van de klant. In wezen hebben fintechs niet de complexiteit van gevestigde banken, waardoor ze sneller en met minder risico kunnen handelen. Hoewel het softwareteams kan vertragen, is complexiteit niet altijd een slechte zaak.

Wereldwijd netwerk
gerelateerd materiaal

Wildgroei van software inperken

Pictogram van drie ringen
Oplossing bekijken

Beheer je componenten met Compass

Complexiteit bij het leveren van software


Complexiteit kan een goede zaak zijn: het is enorm lonend om lastige problemen op te lossen. Het motiveert teams om de uitdaging aan te gaan, moeilijke problemen op te lossen en een branche op zijn kop te zetten. Er is daarentegen een punt waarop complexiteit niet langer gaat over een lastig probleem oplossen, maar negatieve gevolgen heeft voor softwareteams.

Organisatorische complexiteit speelt een belangrijke rol bij het afnemen van de effectiviteit van softwareteams. In het Collins-woordenboek wordt complexiteit gedefinieerd als 'de toestand waarin veel verschillende onderdelen op een ingewikkelde manier met elkaar verbonden of gerelateerd zijn'. In de praktijk is organisatorische complexiteit de combinatie van informatie, afhankelijkheden, wijzigingen, andere teams, tools en verzoeken die softwareteams nodig hebben om met de rest van de organisatie te communiceren.

Hogere organisatorische complexiteitsniveaus maken het uiteraard lastiger om snel hoogwaardige software te leveren, omdat teams meer tijd besteden aan het navigeren binnen de organisatie dan aan het oplossen van lastige problemen. Groeiende organisaties komen er al snel achter dat softwareteams een complexiteitslimiet bereiken – het aantal complexiteitsteams dat kan navigeren voordat dat invloed heeft op werktevredenheid en de kwaliteit en snelheid van de geproduceerde software. Het lijkt dus logisch dat teams door organisatorische complexiteit te verminderen, zich kunnen concentreren op het oplossen van lastige problemen en op software sneller en met een hogere kwaliteit leveren. Laten we eens kijken waarom dit niet altijd het geval is.

Hoe weet je wanneer je de complexiteitslimiet bijna hebt bereikt


De complexiteitslimiet bereiken lijkt misschien onvermijdelijk, maar er zijn een aantal indicaties dat teams hun limiet bijna hebben bereikt. Ik moet ook zeggen dat er geen absolute statistiek is die je vertelt hoe dicht je bij de complexiteitslimiet zit, maar deze indicaties kunnen je helpen om vast te stellen hoe dichtbij je bij de limiet zit.

De duidelijkste indicatie dat een team de complexiteitslimiet heeft bereikt, is wanneer ze meer tijd besteden aan het omgaan met organisatorische complexiteit dan aan het oplossen van lastige problemen waarop ze zich zouden moeten concentreren. De statistieken over de doorlooptijd van DORA voor wijzigingen (snelheid) en het uitvalpercentage van wijzigingen (kwaliteit) laten zien of teams na verloop van tijd langzamer of sneller werken. Hoewel er nog andere factoren van invloed zijn op deze statistieken, zijn ze een goede indicatie voor de effectiviteit van het team.

De tevredenheid van ontwikkelaars is een andere indicatie van met hoeveel organisatorische complexiteit softwareteams te maken krijgen. Ontwikkelaars besteden hun tijd graag aan het oplossen van lastige problemen, maar ze hebben ook een hekel aan overbodige taken waar ze last van hebben. Een lage tevredenheid van ontwikkelaars is een goede aanwijzing dat de organisatorische complexiteit een issue is voor je softwareteam.

Best for managing microservices: Compass

Compass hero screen.

Compass is an ideal server management tool. It simplifies handling microservices architectures by putting disconnected data about engineering work and teamwork together in one central, searchable location. 

Compass' features include: 

  • Get full visibility into service details with relevant APIs, libraries, documentation, key health metrics, latest deployment activities, on-call schedules, and more.
  • Document and track upstream and downstream dependencies and understand performance impact across teams and services.
  • View all incidents, deployments, and other critical activities for a service and its dependencies in one place.

Best for CI/CD: Bitbucket Pipelines

Bitbucket pipeline screenshot.

CI/CD is an acronym for continuous integration and continuous deployment

Bitbucket Pipelines is a CI tool that automates processes. It works right out of the box with Bitbucket, an Atlassian cloud-based version control system. It can use code to manage pipelines, letting users commit pipeline definitions and start builds fast. Bitbucket Pipelines also has CD features that allow you to deploy projects to live infrastructure.

Part of the CI/CD development process is to build microservices. Bitbucket Pipelines fosters efficiency by simplifying workflows and integrating with Bitbucket's cloud version control system.

Best for ITSM: Jira Service Management

Jira Service Management is an add-on for Jira Software, a microservices-based application that lets you control IT services, such as incident, problem, and change management. Jira Service Management’s ITSM features allow IT teams to provide excellent service. There are several reasons why that is the case: 

  • Flexibility: JSM's collaborative approach can help streamline service delivery processes.
  • Automation: The automation suite can help automate recurring tasks.
  • Integration: JSM integrates seamlessly with other Atlassian tools.
  • Security: It encrypts all data in transit using TLS 1.2+.
  • Scalability: JSM is an agile ITSM product that can scale up to the enterprise level.

Best for documentation: Confluence

Confluence is a collaborative documentation tool. It’s ideal for creating and sharing documentation, critical in microservices architectures. Confluence offers a wide range of Confluence templates for various setups, including those using Kubernetes and Docker, a microservices tool that helps developers build, deploy, and run containers. 

Confluence templates include multiple features and apps to help you capture, distribute, and update your technical documentation. Also, with Confluence, you can centralize all your documentation in one place and grant access to users only to what they need.

Best for bug tracking: Jira Software

JSW issues screenshot.

Jira Software excels at bug tracking and project management. It provides a platform to track, prioritize, and resolve bugs effectively through an easily navigable interface. Jira Software's bug-tracking features contribute significantly to successful microservices management. They also address the potential for software sprawl.

With Jira Service Management, Jira's capabilities extend to streamline IT service management, including incident, problem, and change management within microservices and monolithic architecture.

Best for monitoring and logging: Prometheus

Prometheus is an open-source tool developers use to manage microservices. It collects extensive metrics, including counters, gauges, histograms, and summaries, that comprehensively view the application's performance. Prometheus also assists in real-time troubleshooting by providing a comprehensive monitoring and alerting system that enables developers and IT teams to identify and resolve issues promptly.

Best for testing microservices APIs: Postman

The distributed nature of microservices architectures significantly hamper traditional testing methodologies. Testing the entire system becomes complex and time-consuming because each microservice is an independent component. This is where a specific microservices testing tool like Postman comes in handy.

Postman simplifies the process of testing microservices APIs. Developers love that it can automate testing, enabling faster and more accurate results.

Some of the ways Postman simplifies the process of testing microservices APIs include: 

  • Visual request builder: Postman's visual request builder makes it easy to construct HTTP requests without writing code. 
  • Request collections: Postman allows you to organize your API requests into collections, making it easy to group related requests and share them with other team members.
  • Predefined tests: Postman provides a library of predefined tests that you can use to validate the responses from your API requests. 
  • Test scripts: Postman allows you to write test scripts using JavaScript, giving you more control over your tests and enabling you to automate complex testing scenarios.

Hoe weet je wanneer je de complexiteitslimiet bijna hebt bereikt


De complexiteitslimiet bereiken lijkt misschien onvermijdelijk, maar er zijn een aantal indicaties dat teams hun limiet bijna hebben bereikt. Ik moet ook zeggen dat er geen absolute statistiek is die je vertelt hoe dicht je bij de complexiteitslimiet zit, maar deze indicaties kunnen je helpen om vast te stellen hoe dichtbij je bij de limiet zit.

De duidelijkste indicatie dat een team de complexiteitslimiet heeft bereikt, is wanneer ze meer tijd besteden aan het omgaan met organisatorische complexiteit dan aan het oplossen van lastige problemen waarop ze zich zouden moeten concentreren. De statistieken over de doorlooptijd van DORA voor wijzigingen (snelheid) en het uitvalpercentage van wijzigingen (kwaliteit) laten zien of teams na verloop van tijd langzamer of sneller werken. Hoewel er nog andere factoren van invloed zijn op deze statistieken, zijn ze een goede indicatie voor de effectiviteit van het team.

De tevredenheid van ontwikkelaars is een andere indicatie van met hoeveel organisatorische complexiteit softwareteams te maken krijgen. Ontwikkelaars besteden hun tijd graag aan het oplossen van lastige problemen, maar ze hebben ook een hekel aan overbodige taken waar ze last van hebben. Een lage tevredenheid van ontwikkelaars is een goede aanwijzing dat de organisatorische complexiteit een issue is voor je softwareteam.

De complexiteitslimiet verhogen


Why is monitoring and testing important in microservices architecture?

Om softwareteams effectiever te maken, moeten organisaties de complexiteitslimiet verhogen. De complexiteitslimiet verhogen betekent in wezen dat elk team zich kan aanpassen aan organisatorische complexiteit, voordat dit invloed heeft op de werktevredenheid en kwaliteit en snelheid waarmee het team software produceert.

Platformontwikkeling is een belangrijk concept in de zoektocht om de complexiteitslimiet voor een organisatie te verhogen. Teams voor sterke platformontwikkeling richten zich op het verminderen van de cognitieve belasting van softwareteams door organisatorische complexiteit uit hun dagelijkse werk te filteren. Mits correct geïmplementeerd, stelt platformontwikkeling teams in staat om de meeste inspanningen om lastige problemen op te lossen weer in evenwicht te brengen, waarbij minder tijd wordt besteed aan organisatorische complexiteit.

What are some common challenges in monitoring microservices?

Om deze reden heeft Atlassian Compass aangemaakt, een ervaringsplatform voor ontwikkelaars. Compass helpt de complexiteitslimiet te verhogen door het voor softwareteams eenvoudiger te maken om te gaan met organisatorische complexiteit via de componentencatalogus, statistieken en scorecards, en zich te concentreren op het creëren van een gezonde technische cultuur. Het belangrijkste hierbij is dat organisatorische complexiteit binnen Atlassian niet is afgenomen; de complexiteit bleef zelfs groeien naarmate een groter deel van de organisatie overstapte op een microservices-architectuur. We hebben de tijd die softwareteams besteden aan die complexiteit gereduceerd, wat het verschil is tussen een vereenvoudigingsproject en de complexiteitslimiet verhogen.

Atlassian heeft meer dan 10.000 werknemers en meer dan 17.000 softwarecomponenten, maar onze softwareteams werken grotendeels met startup-achtige vrijheid en leveren snel hoogwaardige software. Onze sleutel tot succes? De complexiteitslimiet verhogen om de effectiviteit van het softwareteam te verbeteren.

Hier volgen twee acties om je complexiteitslimiet te verhogen:

  • Houd je DORA-statistieken bij en evalueer ze. Hoe zien de DORA-statistieken eruit voor jouw team? Als je ze niet al bijhoudt, worden de DORA-statistieken klaar voor gebruik meegeleverd met Compass.
  • Begrijp en beoordeel de tevredenheid van ontwikkelaars. Hoe voelen de ontwikkelaars in jouw softwareteams zich? De meeste organisaties voeren medewerkerstevredenheidsonderzoeken uit. Vraag naar de resultaten, ingedeeld per functiegebied, om inzicht te krijgen in de tevredenheid van ontwikkelaars. Belangrijke vragen zijn onder andere de volgende beweringen beoordelen:
    • Ik ben trots op leveringen
    • De hoeveelheid stress in mijn werk is beheersbaar
    • Ik begrijp hoe mijn werk bijdraagt aan de bedrijfsdoelen

Compass verzamelt deze informatie ook tijdens het CheckOps-proces, waarbij teams vertellen wat ze van de afgelopen week vonden en wat er beter had gekund.

De complexiteitslimiet verhogen vereist een combinatie van tools, processen en gewoontes. Een ervaringsplatform voor ontwikkelaars zoals Compass kan je helpen inzicht te krijgen in de systeemstatus, afhankelijkheden in kaart te brengen en doorlopende processen aan te maken, om zo de complexiteitslimiet te verhogen en het potentieel van softwareteams binnen je organisatie te benutten.

Probeer Compass vandaag nog gratis uit.

What are some best practices for monitoring and testing microservices?

To test and monitor microservices effectively, use monitoring data, set the proper alert levels, automate tests, set up continuous integration and delivery pipelines, and regularly test their performance and security. These methods ensure that your platforms work reliably. 

Join the Atlassian Community for more Microservices articles and discussions.


Deel dit artikel
Volgend onderwerp

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Toelichting DevOps

Compass-community

illustratie obstakels overwinnen

Tutorial: Een component aanmaken

Afbeelding van kaart

Ga gratis aan de slag met Compass

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up