DogOps: Campaign for Metadata
Today we are excited to bring you the first of a few posts on how we dogfood maturity improvements and campaigns at OpsLevel to help drive initiatives and bring some gamification to the maturity improvement process.
What’s a Campaign
Campaigns are a feature in OpsLevel which helps drive a cross organization effort to make some kind of maturity improvement.
They provide you a way to track an initiative over time on a filtered set of services with a target end date. You can then complete the campaign and optionally choose to move the campaign's checks into your rubric to set a new standard for a rubric level.
If you have ever tried to do this at a large organization you'll understand the benefits of this feature immediately but in case you have not what this usually looks like is some kickoff meeting with dozens of people, a very large spreadsheet for tracking progress and usually some sort of weekly cadence meeting to nag team leaders to get the things they are responsible for to be updated or completed. Often times things fall through the cracks or people drag their feet until the very final day when it then becomes a scramble.
Our Campaigns feature potentially can eliminate all of that in one fell swoop and then also bring on top of that burn-up tracking, auto inclusion of new services if they match the filter, reminder notifications via slack or e-mail and a central location for everyone to read the project brief.
When to use a Campaign?
Personally, I prefer to start all new maturity standards with a campaign as this kickoff usually has a high degree interest and often comes out of a need to be resolved before some other effort can be done.
Some of the time campaigns will not lead to a new maturity standard and are just used to track an effort across the organization. In this post and the upcoming ones we’ll detail some of the different campaigns we’ve run in Circular her at OpsLevel.
Getting Started
One of the best first campaigns to run is something around service metadata to ensure every service has an owner or the all the language or framework fields are filled out or that a repository is attached. Getting your catalog metadata up to snuff is very important to help with targeting checks towards certain shapes and types of services. If all your golang services have their language field filled out its possible to make a check that targets all our golang services.
These campaigns will likely turn into maturity standards that go into your bronze level. If you are not constantly creating new services you can just run the campaign once and if you ever need to you can run it again in 6-12 months.
Ownership
Today we’ll walk through setting up a campaign to help ensure ownership is attributed to each of our services.
This will turn into a maturity standard for our bronze level as ownership is a keystone to making OpsLevel work for you. Navigate to Campaigns on the sidebar and click `+ New Campaign` where you can define the name, owner of the campaign and the filter. We want to target every service in our account so we leave the filter blank.
After creating the campaign this leaves you on the campaign summary page where you can begin to work on the project brief that helps describe to your co-workers the what, why and how of this organization wide effort. We've found that having a good clear project brief helps create alignment and helps drive adoption as everyone understand the effort and is more likely to comply so do not skimp on what you write here as it goes along way to getting your campaign adopted. Here is an example from another campaign we ran internally to ensure a Readme was in all our repos that we maintain the code for.
Once you have your project brief outlined it time to get working on setting up the checks. As you can see in the above example we added a table to the brief to let our co-workers know which checks will go into which rubric level's and categories. Making the brief can also act as a way help you plan out your campaign.