DevOps - Core and Context Work
Dr. Geoffrey Alexander Moore, author of "Crossing the Chasm" is often referenced, when it comes to the core/context framework. This framework was also mentioned in the popular "Unicorn Project" from Gene Kim. What is it about? What is Core Work and Context Work?
For me, this framework is immensely helpful when it comes to prioritization and decision-making processes. It is not only adaptable by organizations and companies, but can be used for your personal development or everyday life, too.
Let's have a look at the core/context framework, what it is about and why it is important for DevOps.
Work in DevOps culture
Before going into Core and Context work, I want to explain how this relates to DevOps. For me, DevOps is about a single, easy to remember sentence/statement.
"You build it, you run it [, you own it]."
This idea should reduce friction between teams, fasten feedback loops, speed up deployments to production, enhance quality, sharpen customer focus and much more.
But, this also means, that a small team has to handle lots of things. You will be responsible, not only for features, but also uptime, quality control, deployments, documentation and so much more.
This can only be achieved by a clear prioritization of work. Furthermore, you need to ensure, that you don't waste your time with work, that can be done faster, better or cheaper by others.
The framework is pretty easy under the hood, but can be a bit overwhelming. Before going into details, how I understand and use it, let's see how Dr. Geoffrey Alexander Moore presents it.
You can find the slideshow of the presentation here. Below is the framework at a glance.
After getting this theoretical background out of the way, I want to summarize the ideas in my own words.
So, what about Core Work? What is it? And why is it important?
Core Work is the one thing that helps you to earn money, improve your skills and get better in what you want to do. If your organization wants to deliver processed tomatoes to the customer, you need to buy tomatoes, process tomatoes and deliver tomatoes.
It is important to focus the majority of your budget (time, money, knowledge) on this work to stay in business and become better. You need to take care of the risks on your own, measure the success and innovate.
Otherwise... well, what happens if you want to become the perfect tomato processor, but you putt most of your money into your IT infrastructure? You will have an awesome IT environment, but less budget for processed tomatoes.
Fine, and what is Context Work? Well, let's stick with the tomato example.
You may want to hire new people, do marketing, design a logo, do legal work, pay taxes or provide IT infrastructure to your colleagues. These are not important for tomato processing, but they are important to run the organization. Someone has to do these things.
Yep, you are right. But... do you need to have all of them IN the organization? Do you really need to focus on these? I have seen companies with 200 employees working for HR, Sales, Marketing, IT Operations and other context departments, but only 100 that are in the tomato processing business. Is this a valid approach to spend your resources? Shouldn't it be the other way around?
Context Work will lower your margin. It will increase management overhead and process complexity. In addition, it will reduce your awareness for the important topics (processing tomatoes).
If you want to become successful with your business (processing tomatoes), should you spend half (or more) of your resources (time, money, knowledge) on Context Work?
Is it your job to do hiring, controlling, design the website and much more on your own? For me: "No". I want to spend approximately 70-80% of my work on processing tomatoes, buying tomatoes, shipping tomatoes, ensure a safe processing environment and find new recipes.
But who should do all the other things? How to get rid of Context Work? I want to present some examples below.
- Hiring can be done by an agency, that has all the infrastructure already. They know which hiring platforms work and which not. They are experts when it comes to hiring. And if they found someone, you can still get involved and do the interview work.
- IT can use cloud services and stop "building everything on your own". You need to prepare laptops for your employees? This can be done by vendors and resellers, too. Just ask them. And internal things? Automate them, reduce costs by limiting on-call activities or huge tool zoos. But, do you really need to use Ansible AND Terraform AND CloudFormation AND Puppet? Learning and managing new tools takes time, time that must be compensated by the benefits of this software. If you have working tools already, do you really need to jump on the next tech train, because it executes 1s faster?
- Marketing and Branding? Nothing that needs to be done In-House. The best logos and slogans were made up by marketing agencies. Just work and connect with them. Make them understand what you need and what you want, listen to their expertise and focus on your product. Let them develop a website and even run it. There is no need to put focus on these topics, unless something is going sideways or not meeting your expectations.
In general, one can say: If the desired outcome and process is well-defined and the risk (with control mechanisms in place) is low enough, don't care too much about it.
But my organization is about IT consulting/engineering! Sure, if this IS your core business, invest in it. But then you don't need to invest in tomato processing, even if 90% of your employees love to eat processed tomatoes or if it helps you to get 2% more hires. Just let it do the experts and buy awesome processed tomatoes.
If you spend 20 hours per week on Context Work, you will have 20 hours less to spend on Core Work. Establishing mature processes and reducing costs (and time) for Context Work is key, to bring focus on the one thing that you want to do.
If you struggle with prioritization, ask yourself: "Is this core or context work?" and then decide, if this should be done by yourself, a 3rd party or maybe nobody. :)
References and Link
Let me provide some links that helped me to understand this better and get the gist of it. Be aware, none of the below are affiliate links, even if you can buy something there.
I hope you liked the second article of this series. I am eager to see how you think about this topic and how you differentiate your work. Furthermore, I would love to get feedback and suggestions, if you want.
Is this interesting for you? Have you learned something? Do you have another opinion?