And how to start your journey
Software is eating the world. People are told they need DevOps, but what is it exactly and what does it mean? This post helps you get your DevOps facts straight.
The DORA organization spends its time looking at DevOps in the real world - its adoption and effects. They present their findings in the annual State of DevOps Report, available online.
The bottom line is unambiguous: DevOps is a good idea.
In fact, the reports show more evidence each year. Yes, the authors want to sell the message. Obviously. But they back it up with facts and numbers. There’s even C-Suite candy like Key Findings and Executive Summary. And let’s face it: I want to sell the message too, hence I am writing this post.
So why is it a good idea? I really want you to read the reports yourself, but here are some headlines: Save money by delivering innovation faster. Save money by discovering defects earlier. Improve your culture and get happier employees.
DevOps is a mindset. Period. Practice that sentence until it becomes your instant reply if I wake you up at 3 AM.
The goal is to improve both quality and speed of software delivery. Gene Kim explains this as The Three Ways.
The first way is systems thinking. Focus on the performance of the entire system, from development to delivering value to your users. This is where automation helps a lot. Identify bottlenecks and remove them. Any executive understands the business value of delivering stuff faster.
The second way is to amplify feedback loops. Get feedback earlier and respond to it. If you can find a defect before it reaches a customer, it won’t hurt as much.
The third way is to experiment and learn. It is enabled by the two other ways, because they provide an environment where we feel safe to make changes. Because we get to see how changes affect the entire system.
It is important to realize that this affects our culture. We must learn that it is in fact desirable to fail fast. Let’s digress for a moment. Suppose you have a kid and you want to teach her how to cook. Would you shout at her when she drops the jar of flour on the floor? Nah. You would probably tell her: don’t worry, keep going, practice makes perfect.
To adopt the mindset, it is not enough to do knowledge sharing sessions. We need implementation too. You need evangelists that spread the good message. You need to get the practices implemented in the teams. Most people just don’t get started by themselves.
Sometimes you can find early adopters. Acknowledge them and support them in convincing their team members. If you cannot find early adopters, try to create some. Perhaps by doing pair programming. Maybe you kickstart an improvement initiative, say, Jenkins as code or automated deployments.
Not everything can be solved with a cool technology or piece of code. That is part of why you need the evangelists. Someone needs to spread the message, not by sending mails or newsletters, but by meeting the developers in their daily context. At eye level.
Some people are afraid to change. Sit down with them and listen to their concerns. Show that you care. The last thing you want is for your awesome frontrunner engineering support team to become yet another silo that people loath.
Finally, some people just don’t want to change. I say ignore them. Win the majority and eventually the squares will be forced to change. Maybe their career.
To get an idea of some of the emotions you may encounter, read The Inside Out of DevOps.
It is important to remember that moving to DevOps or continuous delivery is a big thing. See it as a journey rather than a fixed task. In fact, you are never done, because there will always be room for improvement.
But this does not mean that you will never complete tasks. Take care to break down the journey in steps. Look out for the small improvements you make every day, week or month. Be explicit about celebrating these wins in your team. It can be done in many ways: Put post-its on a board, make announcements, serve cake. Anything to make it visible that you are making progress, even though the entire journey is huge.
In this post, we have taken a quick look at what a DevOps journey means and why you should board the train. I hope to see you there.
Some points to take away:
Had enough of sluggish polling? With instant Artifactory event triggers you can give responsiveness in Jenkins a real boost. Here’s an easy way to set it up.
A super easy configuration guide
With the arrival of microservices code is becoming disposable. Does this mean that we no longer need maintainable code? Is it the end of refactoring?
Still relevant or increasingly redundant?
In software development tight coupling is one of our biggest enemies. On the function level it makes our application hard to change and fragile. Unfortunately, tight coupling is like the entropy of software development, so we have always have to be working to reduce it.
How to safely introduce modular architecture to legacy software.
I am an Atlassian certified trainer and over the years I have been spending much time with clients and their Jiras. In this blogpost, I have collected some small tips and tricks that will make your Jira usage better.
Jira Software is a powerful tool deployed in so many organizations, yet in day to day usage people are missing out on improvements, big and small.
In this post, I’ll take a closer look at the version of Jenkins X using Tekton, to give you an idea of how the general development, build, test, deploy flow looks like with Jenkins X. How does it feel to ship your code to production using a product coming from the Jenkins community that has very little Jenkins in it?
A crash course in Jenkins X and how to test it out on a local Kubernetes cluster
In this blog I will show you how to create snapshots of Persistent volumes in Kubernetes clusters and restore them again by only talking to the api server. This can be useful for either backups or when scaling stateful applications that need “startup data”.
Sneak peak at CSI Volume snapshotting Alpha feature
When I read Fowler’s new ‘Refactoring’ book I felt sure the example from the first chapter would make a good Code Kata. However, he didn’t include the code for the test cases. I can fix that!
Writing tests for ‘Theatrical Players’
Nicole Forsgren and the Accelerate DORA team has just released the newest iteration of the State of DevOps report. The report investigates what practices make us better at delivering valuable software to our users as measured by business outcomes. Read on for our analysis of the report, and how it can be best put to use.
The latest drivers of software delivery performance
A major challenge of software development is that our work is by and large invisible. This makes our folklore essential in business matters. Some of our commonly used arguments and visualizations are digital urban legends rather than solid foundations for informed decisions. Here, we’ll go through a few examples and some measures to address our misconceptions.
How the stories we tell influence our decisions
When you embark on your cloud native journey there will be important choices to make about cloud providers, continuous deployment, environments’ setup and separation. This guide will help you make the right choices by sharing lessons learnt from running cloud native apps in production.
Kubernetes has become the de facto container orchestration platform. When we help clients of different sizes and domains start their cloud native journeys in Kubernetes, we assist them in making sound decisions and technology choices. There is no one-size-fits-all solution when it comes to choosing cloud providers, CI tools, continuous deployment pipelines etc., so it is important to make the right decisions at the start. Failing to do so can be very costly in terms of lost time and money.
How to make the right technical choices on your cloud native journey
Learn how Docker and Kubernetes work and the key benefits they bring. Using real demos, I show how Docker is a great packaging and distribution technology, and how Kubernetes provides a powerful runtime for containerized applications.
Watch this introduction to Docker and Kubernetes at the Trondheim Developer Conference (TDC)
In the world of Agile and DevOps we use many figures, charts and diagrams to argue and reason about our world and how we prioritize and make choices. However, at all levels of the organization, we misuse and misinterpret figures. It’s time to be explicit, measure the right things and act on them. Watch this talk from DevOpsDays Zurich in May 2019.
Watch this talk from DevOpsDays Zurich
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps