{"id":5947,"date":"2026-10-22T18:20:00","date_gmt":"2026-10-22T18:20:00","guid":{"rendered":"https:\/\/www.cmsgalaxy.com\/blog\/?p=5947"},"modified":"2026-10-22T18:20:00","modified_gmt":"2026-10-22T18:20:00","slug":"devexops-first-90-day-cycle","status":"publish","type":"post","link":"https:\/\/www.cmsgalaxy.com\/blog\/devexops-first-90-day-cycle\/","title":{"rendered":"How to Run Your First DevExOps Cycle"},"content":{"rendered":"<p>Programmes stall when they begin with tools; they succeed when they begin with a procedure. This guide walks through a complete DevExOps cycle \u2014 ninety days, six steps, no new headcount \u2014 written for a web or CMS team that ships regularly and suspects its week is leaking time into gaps it cannot name. Follow the steps in order; each one sets up the next, and skipping the early ones is why most measurement efforts die by the second month.<\/p>\n<h2>What a DevExOps Cycle Assumes<\/h2>\n<p>The label is recent; the procedure underneath is ordinary engineering discipline. As the <a href=\"https:\/\/www.xopsschool.com\/devexops\/\">full DevExOps briefing at Ops Atlas<\/a> notes, the term carries no published definition; what it names is the habit of looping \u2014 friction observed, friction measured, friction repaired \u2014 rather than a one-off audit. Three prerequisites decide whether your first cycle finishes. A sponsor who can fund or block the eventual fix. Read access to the systems where waits already leave traces: pipelines, repositories, review queues. And a team willing to answer a short survey honestly. With those in place, the whole method compresses to six moves:<\/p>\n<ol>\n<li>Frame one question and name the person who will decide on the result.<\/li>\n<li>Wire two instruments: a brief survey plus the telemetry you already own.<\/li>\n<li>Let them collect through a full quarter.<\/li>\n<li>Cut the findings by team and by persona.<\/li>\n<li>Choose repairs and give each one an accountable name and date.<\/li>\n<li>Re-measure with the same instruments and judge honestly.<\/li>\n<\/ol>\n<h2>Step One: Frame the Question Before Touching Data<\/h2>\n<p>A cycle answers one question well, never five badly. &#8220;Why do pull requests sit longest on Mondays?&#8221; is a question. &#8220;Make developers happier&#8221; is a mood. The difference matters because the question dictates which telemetry you pull, what the survey asks, and which repair would even count as success. Well-shaped questions share a pattern: a specific wait, a specific population, a timeframe. &#8220;Which pipeline stage grew the most this half?&#8221; will produce an answer; a vague ambition never will. Bring the decider into this step, not the last one: the manager who will eventually approve or refuse the fix should see the question while it is still editable, so the answer lands on a desk that already expects it.<\/p>\n<h2>Step Two: Wire the Two Instruments<\/h2>\n<p>The survey side needs five to eight items, worded once and left alone for quarters, mixing perception questions with one or two free-text prompts. The telemetry side comes from systems you already run. For every wait you care about, pull two figures: what the typical change experiences and what the unluckiest tenth endures, because the mean flatters exactly the queues you are hunting. Reasonable starting reads are pipeline answer times, the span from request to first human review, routine build durations on ordinary laptops, and the days a new joiner needs to land a first merged contribution. Environment choices belong in this step too: local machines, standardised dev containers and cloud workspaces each trade cost against consistency, and a four-core cloud workspace runs to roughly forty-five dollars per developer per month \u2014 cheap against a senior salary, wasteful against a queue that was the real problem.<\/p>\n<h2>Step Three: Let the Quarter Accumulate Evidence<\/h2>\n<p>Collection technique separates a diagnosis from a data dump. A single-question prompt that fires when a build fails catches pain while the cause is still on screen. A few random mid-week samples fill the space between survey rounds. Before spending on infrastructure, slice queue data by hour \u2014 a morning stampede and an all-day crawl have opposite cures. Time a representative build from the command line with a benchmarking utility whenever a candidate change claims to speed it up. And where reviews linger, a polite automated nudge after a day costs nothing and often clears the backlog by itself.<\/p>\n<h2>Step Four: Cut the Results by Team and Persona<\/h2>\n<p>Blended numbers protect nobody. The average that looks healthy hides the newcomer who cannot get an environment running and the maintainer drowning in review requests. Slice findings by team, by seniority and by working style, and the causes usually separate cleanly. A useful companion cut is by repository or service: friction that looks cultural in the aggregate often turns out to live inside one legacy codebase. One rule keeps the cutting legitimate: every published view stays at group level, and any slice holding fewer than five people is retired into a larger bucket, because anonymity at that size does not exist. Guarding this from day one is what keeps the next survey&#8217;s answers truthful.<\/p>\n<h2>Step Five: Turn Findings Into Owned Fixes<\/h2>\n<p>Rank what you found by how much it hurts against how tractable it is, then do something beginner teams skip: before anyone changes anything, write down the success test \u2014 which number moves, by how much, judged with the same instruments that found the problem. Then give every chosen repair one accountable name and one date. Split the work into two speeds. Quick wins \u2014 a nudge bot, a cache, a default template \u2014 ship inside the cycle so the team sees the loop is real. Structural repairs, like queue architecture, get scheduled openly rather than promised vaguely.<\/p>\n<h2>A DevExOps Quarter on One Calendar<\/h2>\n<p>Mapped onto ninety days the rhythm reads: days one to thirty, win the sponsor, publish the data-use policy that rules out appraisals, and switch on telemetry. Days thirty-one to sixty, run the survey and hold readouts \u2014 results go to the teams who answered them before any summary travels upward. Days sixty-one to ninety, land three owned findings and whatever quick wins the quarter surfaced. Then the cycle either repeats with a new question or stops, and both outcomes are respectable.<\/p>\n<p>Verification carries traps of its own. Numbers usually improve right after any attention arrives, so an early gain may belong to the visit rather than the repair; ask the same direction to hold across two consecutive cycles, or stage the change so one team receives it first and the next quarter speaks. A result that survives only one noisy cycle was never a result. And the loop deliberately does not build the fixes itself: diagnosing and verifying is its job, while the platform group and the teams own the engineering.<\/p>\n<p>Teams adapting this procedure to a website project will find these fit alongside it: a <a href=\"https:\/\/www.cmsgalaxy.com\/blog\/how-to-plan-a-business-website-before-development-starts-a-complete-step-by-step-guide\/\">step-by-step website planning guide<\/a> for the same plan-first instinct, a <a href=\"https:\/\/www.cmsgalaxy.com\/blog\/essential-pages-every-business-website-should-include-a-complete-structural-guide\/\">structural guide to essential website pages<\/a> for scope decisions, and a <a href=\"https:\/\/www.cmsgalaxy.com\/blog\/building-a-practical-roadmap-for-devops-sre-and-platform-engineering\/\">practical DevOps, SRE and platform engineering roadmap<\/a> for the delivery side the loop depends on.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A working procedure for a first DevExOps cycle: frame one question, pair surveys with telemetry, collect for ninety days, fix owned items, verify.<\/p>\n","protected":false},"author":14,"featured_media":5948,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1455],"tags":[],"class_list":["post-5947","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development"],"_links":{"self":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/comments?post=5947"}],"version-history":[{"count":1,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5947\/revisions"}],"predecessor-version":[{"id":5963,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5947\/revisions\/5963"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/media\/5948"}],"wp:attachment":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/media?parent=5947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/categories?post=5947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/tags?post=5947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}