Post

State of DevOps: Vision and Business Context

Why State of DevOps exists: replacing status-meeting opinions about DevOps best practices with daily numbers across four GitHub organizations.

State of DevOps: Vision and Business Context

“How many of our repositories have branch protection?” For a long time the honest answer was “most of them, I think.” Progress on DevOps best practices was reported by people, in meetings, from memory, and only the DevOps team could see the data that would settle the question. State of DevOps is the project I built to make that answer a number that anyone can look up, and that goes up when we do the work.

Business problem and opportunity

Across four GitHub organizations and the enterprise account, nobody had a single view of repo hygiene, pipeline coverage, GitHub Advanced Security (GHAS) findings or platform cost. The raw data existed, but it was spread across GitHub settings pages, security tabs, JFrog and Azure billing, and only the DevOps team had the access to look at all of it.

So best-practice adoption was tracked the way most organizations track it: someone asked in a meeting, someone else gave an update. Updates like “we’re rolling out CODEOWNERS” are not wrong, but you can’t chart them, compare them month to month, or show them to an auditor.

The opportunity was bigger than a dashboard. If the state of every repository can be measured automatically every day, then:

  • progress becomes visible, and people can see the numbers climb after a push;
  • gaps become a ranked list instead of a feeling;
  • audit evidence for HIPAA, PCI and internal IT audits comes from a daily snapshot instead of a scramble the week before.

Goals, objectives, and expected outcomes

The goal I set was simple: measure, don’t ask. Every best practice that can be checked through an API should be checked by a job, not reported by a person.

ObjectiveOutcome I expected
Daily, automated audit of repos, pipelines, IaC, GHAS and costNo more manual status collection for these areas
One place anyone in the organization can lookFewer “can you send me the numbers” requests to the DevOps team
History, not just a snapshotDaily, weekly and monthly trends that show whether initiatives work
A path from finding to fixCreate a Jira story straight from a finding in the dashboard
A foundation for an enterprise scorecardThe same pattern reused for other teams’ best practices

That last row matters most long term. State of DevOps is deliberately the first part of a larger, enterprise-wide effort: map the best practices of SRE, CloudOps, platform architecture, database and other teams against the actual infrastructure, and derive one health score and progress card covering best practices, security and compliance. I kept that in mind when choosing a design that adds a new domain by adding a cronjob, not by rewriting the dashboard (see Technical Architecture).

Stakeholders, sponsors, and decision-makers

The dashboard is open to everyone in the organization, but its real audience is the people who decide where engineering effort goes: stakeholders and C-level executives who want to know whether the organization is getting healthier, and where it isn’t.

RoleWhat they need from it
Executive sponsor (VP of Platform Engineering) / C-levelOne page that says “better or worse than last month”, plus audit readiness
Engineering and DevOps leadershipWhich orgs and teams are behind, and on what
DevOps team (owners)A working backlog of gaps, and proof that their rollouts landed
SecurityGHAS coverage and open findings across orgs
Repository ownersWhat’s wrong with their repo and how to fix it

The executive sponsor is the VP of Platform Engineering, which fits: the enterprise scorecard phase spans every platform team, not just DevOps.

TODO: Who approves changes to what the scorecard measures (new checks, thresholds, exemptions)? Naming the decision-maker matters once scores start influencing priorities.

Target users and personas

Three personas cover almost every visit:

  • The executive (weekly, 2 minutes). Opens the Home tab, looks at the headline numbers and the trend lines, closes it. Needs it to load instantly, which is why the home page reads one pre-computed file (more in Data and Integration).
  • The DevOps engineer (daily, 20 minutes). Drills from an org into a repository, checks a sub-analyzer’s output, raises a Jira story, and checks the stale and new repository reports.
  • The repository owner (occasionally). Arrives from a link or a Jira story, wants to see one repository’s findings and what “good” looks like.

The executive persona is the one to design for first. If the first screen is slow or needs explaining, the dashboard loses the audience that funds the follow-up work.

Success metrics and business KPIs

The dashboard itself produces the metrics, so the KPIs are the trends of what the analyzers measure:

AreaExample KPI the analyzers can produce
Repo hygiene% of repos with branch protection / rulesets, CODEOWNERS, README and docs
LifecycleNumber of stale repos (no push in 365 days), new repos per week
Pipelines% of repos with CI, with security scanning, with coverage reporting
SecurityOpen code scanning, secret scanning and Dependabot alerts per org
CostGitHub seats, JFrog storage and transfer, Azure spend, month over month
Adoption of the toolDashboard visits, Jira stories created from findings

TODO: Which of these are the official KPIs, what were their baselines when the dashboard went live, and what targets were agreed? Numbers like “stale repos down from X to Y” are the strongest story this project has.

Scope, assumptions, constraints, and dependencies

In scope: four GitHub organizations plus the enterprise account; repository, pipeline, IaC, GHAS, enterprise-compliance and cost analysis; container and package registry scans; new and stale repository reports; a read-only dashboard with Jira story creation.

Out of scope (for this phase): fixing findings automatically, and the other teams’ best practices, which belong to the enterprise scorecard phase.

Constraints:

  • Only non-PHI data. The system reads metadata about repositories, pipelines and spend; it never needs patient data, and the design keeps it that way.
  • Checks include organization-specific rules and certification-driven checks such as HIPAA-specific ones, so the rules have to be configurable rather than hard-coded.
  • GitHub API rate limits shape the schedule and the data collection design.

Assumptions and dependencies: GitHub Apps installed on every org; JFrog and Azure Cost Management APIs reachable; an AKS cluster with Azure Files, External Secrets Operator and ArgoCD already provided by the platform.

Checklist

  • Problem statement agreed: “best-practice progress is reported, not measured”
  • Executive sponsor and scorecard owner named
  • Personas confirmed with at least one real executive and one repo owner
  • Official KPIs chosen, with baselines captured on go-live day
  • Non-PHI data rule written down and reviewed by security
  • Scope boundary with the future enterprise scorecard documented
  • Dependencies (GitHub Apps, JFrog, Azure Cost, AKS platform services) confirmed with their owners

This post is licensed under CC BY 4.0 by the author.