Accelerate DevOps: How does your garden grow?
Now I have flowers. Finally. No garden, just seven potted plants on my terrace. I bought plants and had no idea what I had there. I still don't know.
After planting, a big green one showed me that it didn't like how I treated them. Frayed leaves - I guess because of the wind. But who am I to know. Next day I had the first brown leaves.
I started some experiments. Moved the plant into a corner for less wind. More water. Less water. No water. More sun, less in the sun. No sun. Whatever - just ignored them and left the watering to the rain. All in combination.
My experiments were sometimes rough for the plants. I could see that. But what should I do? I had to figure out how it worked for them. Each test brought me closer to my aim. Ok, not each. Some did not survive. Perhaps I should not have thrown away the cards with the names of the plants and I should just have googled it. Blame me.
But that's not the point. I have a goal. I made some changes. I see if this gets me closer to my goal. I learned and repeated the cycle.
In business, that's my improvement cycle. That's how I learned it. This is what we do when we say continuous optimization. We run experiments and see if they have a positive impact on our objective. My objective for my plants was clear: green leaves. In business we have to define them in more detail. I seen that most teams missed two points in their retrospective sessions:
No clear objectives to measure progress against
No defined item for optimization
In these retrospective sessions, we always ask what we can do better in the next iteration. But what does “better” mean? And what are we allowed to change? Can we change the way we are working? Can we get new tools? Can we staff additional experts?
Let’s talk about objectives. On the first point, have you ever seen the objectives laid out at the beginning of the session? What should you improve? The time to market? The bugs in production? Customer satisfaction? The cost of the service? Have you discussed the impact of our last actions based on these objectives?
And as far as what we can or can’t optimize. On the second point , have you ever seen the process which is up for optimization written down? What are we trying to improve? You can only change something after you have initially defined it. Writing it down and then showing the change we want is the best way to communicate clearly and structure your improvements.
The bottom line is, you have to communicate Communication not only to your team, but also to other teams, so that they don't have to make the same mistakes again. Otherwise you are just acting in an empty space and starting again each time. If you have written down your process and add your improvements, you can see your positive impact. The team realizes that they can change their workflow - that's motivating because it shows self-efficacy.
Example: We are working within a software development team. We start by writing down our software development process. At the end of the sprint, we look at the document in our retrospective meeting. We notice a high number of bugs in the production system. We realize that we have not met our objective for quality. After a discussion with the team, we take our process and change it by integrating a step for a 4 eyes source-code control in Bitbucket. We agree to review the progress on this in the following retrospective.
The rain represents the effort we put into the flowers. Like we have to put effort in our continuous improvement. Improving in cycles is the way we scale and improve DevOps. We start small, learn and extend. This is the way our system grows. We don't know exactly what the perfect system for our aim is. We have to calibrate it, to balance. Like the calibration with sun, shadow, water and turf is specific for each plant, your calibration is individual for each team. With our iterations, we have to make sure to stay on track, also if it’s sometimes rainy.
Continuous Optimization starts with writing down the process, defining the objectives, change, control, learn, repeat.