Skip to main content
Test Double company logo
Services
Pragmatic Services Overview
Holistic software investment consulting
Acccelerate Software Delivery
Balance efficiency and quality
Improve Product Impact
Drive results that matter
Upgrade Rails Seamlessly
Update Ruby and Rails versions
Scale DevOps
Dev experience and infrastructure
Technical Recruitment
Build tech & product teams
Case Studies
Solutions
Legacy Modernization
Renovate legacy software systems
Pragmatic AI
Solve business problems without hype
Technical & Product Assessments
Uncover root causes & improvements
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say Hello
Test Double logo
Menu
Services
BackGrid of dots icon
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Impact
Drive results that matter
Cycle icon
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Case Studies
Solutions
Solutions
Legacy Modernization
Renovate legacy software systems
Pragmatic AI
Solve business problems without hype
Technical & Product Assessments
Uncover root causes & improvements
About
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say hello
Developers
Developers
Developers
AI

Horizontal Progression for Software

More capable AI doesn't automatically make better software. A longtime WoW player explores what horizontal progression could teach us about building products people love.
Dave Mosher
|
October 8, 2026
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

November 23, 2004. The date that World of Warcraft came out is seared in my mind as a significant inflection point for the gaming industry. The previous titans of the massively multiplayer online (MMO) genre, EverQuest, Dark Age of Camelot, Asheron's Call, and Ultima Online, were unseated from their throne by an immersive, engaging, and innovative entry from Blizzard.

I've been an avid WoW player since the original beta, playing on and off for more than two decades, and it has been fun to watch it evolve (and sometimes devolve) into the platform it is today. At a certain point, it started to feel like the growth-hackers had gotten their hooks into the gameplay. Repetitive seasonal content gave us plenty of reasons to keep logging in, while class abilities and mechanics started being pruned.

Some of that makes a game that has been around for 20+ years easier for new players to pick up, but it really sucks when the thing that made your class of choice distinct—hunter, in my case—starts to feel like it's being eroded in favor of homogenization. Like, I get it, there are good reasons to make the game more approachable. I don't know which metrics drove those decisions, but as a player, keeping me engaged and giving me an experience I love have not always felt like the same goal. The formula that's landed WoW where it is today with the retail offering has, for me, lost much of the mystery, intrigue, and magic that made those original first few steps into Azeroth so enjoyable.

I see a lot of parallels with the world of software as we continue to see inflection points with the rise of agentic coding and AI. I don't think increasingly capable models guarantee increasingly useful products, and I'd hate to watch these tools become more powerful while the products we build with them become less enjoyable to use.

It goes to eleven

Of late, the discourse around World of Warcraft has involved much punditry about something gamers think they know well called "horizontal progression". Since nobody in the gaming community can actually agree on what this means, let me narrow it down a bit: I think of it as focusing on parallel or adjacent systems that let you progress without directly increasing your character's raw combat power—more damage or more healing. Perks that make leveling “alts”—additional characters you play besides your primary character—easier, improvements to gathering efficiency, or rewards that let you show off something you've accomplished all fit that definition. They can make your life easier without making you hit harder.

Historically, WoW expansions have led with vertical progression: a higher level cap, stronger gear, bigger numbers. The power ceiling moves up, and off we go again to slay the virtual dragons.

For software, vertical progression might look like swapping in the latest AI model, announcing that new point release with all the shiny new features, or the never-ending quest to bump dependencies to the latest version. Better models, better evals, better harnesses; there is always another engineering improvement to chase. Those improvements can be worthwhile, but it's easy to get so caught up in the mechanics of building software that we stop asking whether we're making something people love to use.

The architecture astronaut was me

Maybe vertical progression for software means pivoting tech stacks to appease the almighty architecture astronaut, hell-bent on architecting a system that is so modular that any one component can be replaced on a whim, as if that was some sort of worthy goal in and of itself.

I can say this with pretty biting criticism because I committed this sin frequently talking about frontend architecture in the days of yore, when Searls and I were writing about quality and practicing TDD in the JavaScript ecosystem. It's an easy trap to fall into when you think you have the market cornered on quality. In hindsight, I swayed too far into the idea that I knew better, and that a focus on modularity, testing, or quality automatically led to better software, and by extension better outcomes.

The Forever beta had some unexpected downtime while I was playing, and this was the explanation we got. As a software engineer, I’ve never felt more at home in Azeroth.

‍

‍

Software is a means to an end, not the end in and of itself. Modularity, reuse, and any of their ilk can become weak proxies for value when viewed through an overly engineering-centric worldview.

And I still catch myself doing this! Recently, I changed the processing pipeline in one of our internal tools. I brought in Jev for batched semantic classification and early filtering so we could skip most of the expensive Llama calls we were using for extracting structured data. Along with some parsing changes, that brought the end-to-end runtime down from about 12 minutes to about 90 seconds in a local comparison—a roughly 88% reduction. That's a win for the whole pipeline, not a pure model benchmark. Yay! Engineering points++.

I was excited enough to post the numbers in Slack. Faster and cheaper can absolutely make a product better, but those numbers alone didn't tell me whether the report that the tool generates was more useful to the people reading it, whether it helped them make a decision, or whether we'd addressed something they were frustrated with. I'd measured an engineering win, and there was still a product question that hadn't been answered.

More reasons to inhabit Azeroth

Which brings me back to the real inspiration for this post: WoW: Forever, announced at BlizzCon 2026. The beta opened on September 17, with the full release scheduled for November 4. Since 2019, the community has been hoping for a "Classic+": a chance to build on the original game rather than march through its expansions again. Forever is Blizzard's answer, a new permanent home in the original Azeroth alongside Modern and Classic WoW.

Its Legacy system is a good example of what I mean by horizontal progression. Completing challenges earns points you can spend on perks like more rested experience for your alts or better yields from gathering professions. You're progressing in systems adjacent to combat, with benefits that give you more reasons to spend time in the world you already enjoy.

Alongside those systems, Blizzard is updating the visuals while preserving the original art style: mist over Darkshore, moonlight through the trees in Ashenvale. Those aren't progression systems, but they support one of Forever's stated design pillars: "the world as the main character". From what I've seen, the community is optimistic, and this is a big part of why I am too. I want more reasons to inhabit Azeroth, not just more reasons to finish my chores there.

Old School RuneScape has plenty of vertical progression of its own, but its gathering skills illustrate progression outside combat. Chop more trees, improve your Woodcutting, and you can gather logs faster and access different trees. You don't have to hit max combat level first, and getting better at woodcutting doesn't directly make you smack a boss any harder. There are economic benefits and connections to other systems, of course, but there's also the satisfaction of becoming a 'Master Woodchopper' or whatever thing makes you proud of an achievement. As someone with an eye for design, the aesthetic and interface really aren't for me, but I've played enough games to understand the appeal of seeing that bar fill up. Conveniently, it's horizontal.

Something worth coming back to

Maybe software that progresses horizontally focuses less on how many feature bullets we can print on the back of the box, and more on making the things people already depend on better. In a gaming context, I might call that feeling "immersion". In software, it's closer to the feeling that somebody understood what I was trying to do and cared enough to make it work well. Sometimes well enough to make me smile.

I love that the Forever team has named what they want to preserve about Azeroth. I'd like to see more software teams make their product vision specific enough to help decide what belongs—and what doesn't. If "the world as the main character" guides what Blizzard adds—and what it leaves out—what's the equivalent for the product we're building? What do customers already value that we need to protect as we add AI?

Maybe the models will produce more interface variants than we can possibly evaluate, or tailor an experience to each person using it. We still have to decide what makes one experience better than another, and listening to the people using it seems like a pretty good place to start.

Good enough to build on

Are we trapped in an endless cycle of video game expansion-like releases with models that come out with new capabilities that force us to rethink all of our assumptions about what's possible? Probably, at least for the short term. I've become more selective in my own practice, as it has increasingly felt fruitless to immediately pivot to the latest and greatest frontier model upon release. They seem to have the same early adopter curse that macOS does: an older, wiser me has learned it's better to wait for the point release (or even skip entire OS upgrades altogether), especially if I prioritize getting things done and providing value to my clients.

What would software in the age of AI look like if we just planted our flag and said, "This model is good enough for what we need. Let's freeze it for now and focus on making the most of the system we have"? Is the system the right shape, allowing us to move at the speed we want and with the just-in-time level of quality we need to get to product-market fit, extend our runway, or make something our customers would genuinely miss if it disappeared?

For the internal platforms I work on, all of this reminds me that I need to ask the people using them what helps, what frustrates them, and what they still have to do by hand. Listening, responding to feedback, and making changes that show we care might not give me another 88% improvement to post in Slack, but they seem much more likely to earn the kind of affection that has kept me returning to Azeroth for more than two decades.

Software's next expansion pack should be like WoW: Forever—a return to the foundations, with some modern twists and upgrades that continue to make us fall in love with software and solving customer problems all over again.

‍

Dave Mosher is a Principal Consultant at Test Double with experience in legacy modernization, agentic coding, and occasionally remembering that the customer isn’t another engineer.

Believe in better software?

Sign up for the Test Double newsletter to receive more tips for accelerating quality software.

Subscribe

Related Insights

No items found.

Explore our insights

See all insights
Developers
Developers
Developers
AI tooling may have solved coding, but not solutions delivery

AI made writing code faster, and software delivery didn't speed up to match. The Theory of Constraints predicted exactly this outcome forty years ago, and it also tells you what to do about it: measure your own end-to-end flow before you name the constraint or buy the tooling.

by
River Lynn Bailey
Developers
Developers
Developers
Defend your downtime to improve agentic output

With agentic tools writing code, it feels natural to fill the waiting time by reaching for the next task. Before you do, though, have you considered what you might be losing by trying to parallelize more work? River Bailey digs into the question to understand why we should protect that downtime instead of filling it with more activity.

by
River Lynn Bailey
Developers
Developers
Developers
What Feels Easy Might Be Your Greatest Strength

We often mistake effort for value. By combining feedback, work history, and AI, James Walker discovered that the work that felt easiest was often what others valued most.

by
James Walker
Letter art spelling out NEAT

Join the conversation

Technology is a means to an end: answers to very human questions. That’s why we created a community for developers and product managers.

Explore the community
Test Double Executive Leadership Team

Learn about our team

Like what we have to say about building great software and great teams?

Get to know us
Test Double company logo
Improving the way the world builds software.
What we do
Services OverviewSoftware DeliveryProduct StrategyLegacy ModernizationPragmatic AIDevOpsUpgrade RailsTechnical RecruitmentAssessments
Who WE ARE
About UsCulture & CareersGreat CausesEDIOur TeamContact UsNews & AwardsN.E.A.T.
Resources
Case StudiesAll InsightsLeadership InsightsDeveloper InsightsProduct InsightsPairing & Office Hours
NEWSLETTER
Sign up hear about our latest innovations.
Your email has been added!
Oops! Something went wrong while submitting the form.
Standard Ruby badge
614.349.4279hello@testdouble.com
Privacy PolicyTerms & Conditions
© 2020 Test Double. All Rights Reserved.

Believe in better software?

Sign up for the Test Double newsletter to receive more tips for accelerating quality software.

Subscribe