Close

CALMS-framework

Beoordeel je vaardigheden en meet de voortgang van je DevOps-traject.

Ian Buchanan

Principal Solutions Engineer


CALMS is een framework dat het vermogen beoordeelt van een bedrijf om DevOps-processen te implementeren, evenals een manier om resultaten tijdens een DevOps-transformatie te meten. Het acroniem is bedacht door Jez Humble, co-auteur van 'The DevOps Handbook', en staat voor Cultuur, Automatisering, Lean, Meten en Samenwerken.

Cultuur


DevOps is niet zomaar een proces, of een andere ontwikkelingsaanpak, maar een daadwerkelijke cultuurverandering. En een belangrijk onderdeel van een DevOps-cultuur is samenwerking.

Iedere tool en iedere vorm van automatisering is alleen nuttig als de IT/Ops-teams samenwerken. DevOps lost namelijk geen technische problemen op. Het lost menselijke problemen op.

Beschouw DevOps als een evolutie van agile teams — het verschil is dat nu operaties standaard zijn opgenomen. Een goede eerste stap is om teams te vormen op basis van producten, in plaats van op basis van functie. Betrek ontwikkeling, QA, productmanagement, design, operations, projectmanagement en andere vaardigheden die voor het product nodig zijn. In plaats van één team alles te laten doen of 'DevOps-professionals' in te huren, is het belangrijker om productgebaseerde teams te hebben die naadloos kunnen samenwerken.

Er zijn maar weinig dingen zo goed voor de samenwerking als een gedeeld doel en een plan om dat samen te bereiken. Bij sommige bedrijven is de overstap naar teams op basis van producten echter te groot, in te korte tijd. Zet dan kleinere stappen. Ontwikkelingsteams kunnen bijvoorbeeld geschikte leden van het operationsteam uitnodigen om deel te nemen aan sprintplanningen, dagelijkse stand-ups en sprintdemo's. Operationsteams kunnen belangrijke ontwikkelaars uitnodigen voor hun vergaderingen. Dit is een agile en natuurlijke manier om op de hoogte te blijven van de projecten, ideeën en problemen van het andere team.

gerelateerde content

Meer informatie over de voordelen van DevOps

gerelateerde content

Een DevOps-cultuur creëren

Uitdagingen en zelfs noodgevallen zijn effectieve tests voor de DevOps-cultuur. Werpen ontwikkelaars, operations en klantvertegenwoordigers zich op een probleem en lossen ze het op als team? Richten postmortems van het incident zich op het verbeteren van resultaten voor het volgende incident in plaats van het aanwijzen van schuldigen? Als het antwoord 'ja' is, betekent dit dat jouw organisatie een DevOps-cultuur omarmt.

De meest succesvolle bedrijven hebben een DevOps-cultuur verwerkt in iedere afdeling en op elk niveau van de organisatiestructuur. Op zo'n grote schaal dekt de term 'DevOps' de lading vaak niet en is de term niet meer nodig. Zulke bedrijven hebben open communicatiekanalen en overleggen regelmatig. Ze gaan er vanuit dat het tevreden houden van de klant net zo zeer de verantwoordelijkheid van productmanagement is als van het ontwikkelingsteam. Ze begrijpen dat DevOps niet de taak van één team is. Het is de taak van iedereen.

Automatisering


Automation helps eliminate repetitive manual work, yields repeatable processes, and creates reliable systems.

Build, test, deploy, and provisioning automation are typical starting points for teams who don’t have them in place already. And hey: what better reason for developers, testers, and operators to work together than building systems to benefit everyone?

Teams new to automation usually start with continuous delivery: the practice of running each code change through a gauntlet of automated tests — often facilitated by cloud-based infrastructure — then packaging up builds and promoting them through environments using automated deployments.

Why? Computers execute tests more rigorously and faithfully than humans. These tests catch bugs and security flaws sooner. And automated deployments alert IT/Ops about drift between environments, which reduces surprises when it’s time to release.

Another major contribution of DevOps is “configuration as code.” Developers strive to create modular, composable applications because they are more reliable and maintainable. That same thinking can be extended to the infrastructure that hosts them, whether it lives in the cloud or on the company's own network.

“Configuration as code” and “continuous delivery” aren’t the only types of automation seen in the DevOps world, but they’re worth special mention because they help break down the wall between development and operations. And when DevOps uses automated deploys to send thoroughly tested code to identically provisioned environments, “works on my machine!” becomes irrelevant.

Lean


When we hear “lean” in the context of software, we usually think about eliminating low-value activities and moving quickly — being scrappy and agile. Even more relevant for DevOps are the concepts of continuous improvement and embracing failure — which lay the foundation of an experimental mindset.

A DevOps mindset recognizes opportunities for continuous improvement everywhere. Some are obvious, like holding regular retrospectives so your team’s processes can improve. Others are subtle, like A/B testing different on-boarding approaches for new users of your product.

We have agile development to thank for making continuous improvement a mainstream idea. Early adopters of the agile methodology proved that a simple product in the hands of customers today is more valuable than a perfect product in the hands of customers six months from now. If the product is improved continuously, customers will stick around.

And guess what: failure is inevitable. So you might as well set up your team to absorb it, recover, and learn from it (some call this “being anti-fragile”). At Atlassian, we believe that if you’re not failing once in a while, you’re not trying hard enough.

In the context of DevOps, failure is not a punishable offense. Teams assume that things are bound to go pear-shaped at some point, so they build for fast detection and rapid recovery. Postmortems focus on where processes fell down and how to strengthen them — not on which team member messed up the code. Why? Because continuous improvement and failure go hand in hand.

Meten


It’s hard to prove your continuous improvement efforts actually improve anything without data. Fortunately, there are loads of tools and technologies for measuring performance, like how much time users spend with your product, whether that blog post generated any sales, or how often critical alerts pop up in your logs.

Although you can measure just about anything, that doesn’t mean you have to (or should) measure everything. Take a page from agile development and start with the basics:

How long did it take to go from development to deployment?

How often do recurring bugs or failures happen?

How long does it take to recover after a system failure?

How many people are using your product right now?

How many users did you gain / lose this week?

With a solid foundation in place, it’s easier to capture sophisticated metrics around feature usage, customer journeys, and service level agreements (SLAs). The information you get comes in handy when it’s time for road mapping and spec’ing out your next big move.

All this juicy data will help your team make decisions, but it’s even more powerful when shared with other teams — especially teams in other departments. For example, your marketing team wants shiny new features they can sell. But meanwhile, you’re seeing high customer churn because the product is awash in technical debt. Providing user data that supports your roadmap — even if it’s light on features and heavy on fixes — makes it easier to build consensus and get buy-in from stakeholders.

Delen


As much as we wished that there was a magic wand to transform all teams into high-performing DevOps teams, DevOps transformations require a blend of practices, cultural philosophies, and tools. But like you’ve read, the benefits to breaking down the Development and Operations siloes are well worth it — increased trust, faster software releases, more reliable deployments, and a better feedback loop between teams and customers.

Embracing DevOps is no small task. Yet given the right mindset, effort, and tools, an organization can undergo a DevOps transformation that yields significant benefits.

The long-standing friction between development and operations teams is largely due to a lack of common ground. We believe that sharing responsibility and success goes a long way toward bridging that divide. Developers can win instant goodwill by helping to carry one of operations’ biggest burdens: the pager (a figurative construct these days). DevOps is big on the idea that the same people who build an application should be involved in shipping and running it.

In conclusion…


Out of this idea comes the phrase, "you built it, you run it," which fosters a hands-on approach accross teams. This doesn’t mean that you hire developers and simply expect them to be excellent operators as well. It means that developers and operators pair with each other throughout the application’s lifecycle. Moreover, reports have shown that peer-reviewed code and products are the only review that results in better delivery and performance; in fact, external reviewers were no more effective that conducting no review at all.

Teams that embrace DevOps often have a rotating role whereby developers address issues caught by end users while, at the same, troubleshooting production problems. This person responds to urgent customer-reported issues, creating patches when necessary, and works through the backlog of customer-reported defects. The “developer on support” learns a lot about how the application is used in the wild. And by being highly available to the operations team, the development teams build trust and mutual respect.

Ian Buchanan
Ian Buchanan

Ian Buchanan is een Principal Solutions Engineer voor DevOps bij Atlassian waar hij zich richt op de opkomende DevOps-community en de toepassing van Jira, Bitbucket en Bamboo voor betere continue integratie en continue levering. Hoewel Ian Buchanan een brede en uitgebreide kennis heeft van zowel Java als .NET, staat hij vooral bekend als expert op het gebied van lean en agile methoden bij grote ondernemingen.

Tijdens zijn carrière heeft hij met succes enterprise softwareontwikkelingstools beheerd in alle fases van hun levenscyclus, van begin tot eind. Ook was hij de motor achter organisatiebrede procesverbeteringen resulterend in een hogere productiviteit, kwaliteit en klanttevredenheid. Hij heeft agile teams met meerdere nationaliteiten onder zijn leiding opgericht. Voor deze teams was zelfsturing en zelforganisatie erg belangrijk. Wanneer hij geen presentaties geeft of codeert, is hij waarschijnlijk bezig met een van zijn passies als parsers, metaprogramming en domeinspecifieke talen.


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

DevOps-community

Toelichting DevOps

Simulatieworkshop

Map-illustratie

Gratis aan de slag

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up