Last Wednesday (13th of May 2015) I was in Florianopolis at The Developer’s Conference giving a short introduction about DevOps and the new culture. I published the deck in slideshare.
One point that I hadn’t time to develop enough is the fact that DevOps comes with the same philosophy as Lean. This is a huge change of mindset for the majority of companies. Without this mindset change, companies trying to adopt devops won’t have the benefits that everybody is talking about: shrinking your lead time (time between the moment BAs have an idea and the time its implementation is in production) and having products that keep growing and inovating.
Lean basics
Summarizing it a lot, it comes down to trusting people of your organization and helping them to perform better. This is a big mindset change because it implies that you litterally remove everything that your company have in place to control people. With Lean, you don’t control, you educate, teaches and show how to things better. According to Deming, the father of Lean, you need to base your decisions on two majors assumptions:
- A mature organization looks at the whole system, it does not focus on optimizing disaggregatting parts
- A mature organization focuses on learning effectively and empowers the people who do the work to make decisions
Systems that are being built today are extremely complex and cannot be built the same way we were building them ten years ago. That’s why a culture of learning and systemic thinking are required. Applying DevOps as a book of receipes will probably not work because those receipes have been created to solve another company problems. Your company probably need similar solutions, but to know which solutions and how to adapt them, you need to change the way you treat problems.
Another way to solve problems
Your company probably faces several problems that delay the release date of every feature. In order to fix them you can either look at what other companies are doing, either try to find solution yourself. DevOps is being applied by several companies successfully, like Twitter, Facebook and Amazon. However, those companies found those solutions by themsevles. In order to fix complex problems, you need people who are facing the problem on a daily basis: people who do the work, to have time to fix those problems. They also need to feel confortable to fail at fixing those problems. If failing is ok, then they will experiment more and probably find a better solution than if they only have one shot.
My two cents on how to start
Look for the problems that your company have when delivering software. Classify your problems so you can easily identify the problems that are easy to fix, like automation from the problem that are harder (cutural ones) and priorize them. You don’t need to fix all at once. But if you allow everybody in the company to spend 1h per week in improving something, you soon will have tremendous results. Most importantly, a cultural change will be starting.