This is a phrase I end up using a lot while talking with clients. I used to use a different phrase about elephants but moved away from that language to be more respectful. Let’s start with what it means, at least in the context I use it, and why this phrase is so useful when talking about Devops.
I’ve seen and heard a few meanings and usages of the phrase, “Boil(ing) the Ocean”. I’ve heard many negative contexts like: to undertake an impossible task or project. I usually use it in this context, Here is a big task with lots to do, how do you get started and make progress?
Applied to DevOps
So how, and why do I apply this strange phrase to DevOps? Because as I work with clients, educating them and enabling them, they start getting excited. Depending on where they are in their DevOps journey, they might have a bigger or smaller list of things they want help with. Maybe its Infrastructure as Code (IaC), and a pipeline to help release it consistently and repeatedly. Maybe they are using a centralized version control system and are interested in moving to git and picking a branching strategy to work more effectively. When they release those cool new features, do they have monitoring and observability in place to know if and how their users are using those features? I could go on for a while, there are so many things that can impact an organization’s software delivery performance. And like “boiling the ocean” it seems like that can be an impossible task.
So how do you “boil the ocean”? One cup at a time. Iteratively make progress. Progress over perfection. Don’t choose to do nothing because its not perfect. Make an improvement, any improvement. Pay attention to the results, take that feedback and make another improvement. Just like a pot of water, the ocean won’t go from cold to boiling, it takes time.