{"id":177,"date":"2026-04-05T22:17:11","date_gmt":"2026-04-06T03:17:11","guid":{"rendered":"https:\/\/harmonic-framework.com\/introducing-harmonic-design\/"},"modified":"2026-04-08T17:03:54","modified_gmt":"2026-04-08T22:03:54","slug":"introducing-harmonic-design","status":"publish","type":"post","link":"https:\/\/harmonic-framework.com\/es\/introducing-harmonic-design\/","title":{"rendered":"Introducing Harmonic Design"},"content":{"rendered":"<p class=\"hf-lead\">Software teams rarely suffer from a lack of frameworks. They suffer from frameworks that do not speak to each other.<\/p>\n\n\n\n<p>A team might apply Domain-Driven Design to their backend, atomic design to their component library, coverage targets to their test strategy, and agile ceremonies to their project management. Each framework is locally sensible. Together, they produce a system where the backend&#8217;s bounded contexts do not correspond to the frontend&#8217;s component hierarchy, the test strategy was written by convention rather than derived from the architecture, and the project plan was estimated from user stories rather than from the system&#8217;s structural dependencies.<\/p>\n\n\n\n<p>When something changes, the engineer must simultaneously reason in four different structural languages. The seams between frameworks become the places where coupling hides and where plans fail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">One Principle Across Every Layer<\/h2>\n\n\n\n<p>Harmonic Design is a unified software engineering framework built on a single organizing principle:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Software should be organized by how it changes, not by what it currently does.<\/strong><\/p><\/blockquote>\n\n\n\n<p>This isn&#8217;t a new idea in isolation \u2014 it&#8217;s the underlying insight of four independently developed frameworks that we&#8217;ve been building and refining over the past several years. What&#8217;s new is the recognition that they all ask the same fundamental question, and that applying that question coherently across every layer of a system produces structural properties that none of the frameworks achieves alone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Four Pillars<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Volatility-Based Decomposition (VBD)<\/strong> \u2014 Backend system architecture organized around axes of anticipated change. Components are classified as Managers (orchestration), Engines (business logic), Resource Accessors (external boundaries), or Utilities (cross-cutting concerns). Each role isolates a distinct axis of volatility.<\/li><li><strong>Experience-Based Decomposition (EBD)<\/strong> \u2014 Interface architecture built on the same principle. Experiences, Flows, Interactions, and Utilities \u2014 the same four volatility axes, applied to the interface layer \u2014 because interface change follows the same four axes, just with different drivers.<\/li><li><strong>Boundary-Driven Testing (BDT)<\/strong> \u2014 Test strategy derived from the architecture, not written by convention. The test profile for each component role is determined by its structural position: what it orchestrates, what it executes, and where its boundaries lie. Testing difficulty is diagnostic \u2014 if a component is hard to test, its boundaries are in the wrong place.<\/li><li><strong>Project Design (PD)<\/strong> \u2014 Project planning derived from the same structural map. Work packages correspond to components. Dependencies in the project network mirror dependencies in the architecture. Estimation difficulty signals the same class of problem as testing difficulty.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The Structural Isomorphism<\/h2>\n\n\n\n<p>The central claim of Harmonic Design is precise: the four pillars are structurally isomorphic. The same four roles appear at every layer, carrying the same responsibilities, the same communication rules, and the same test and planning characteristics \u2014 because they isolate the same axes of anticipated change.<\/p>\n\n\n\n<figure class=\"wp-block-table hf-table\"><table><thead><tr><th>VBD Role<\/th><th>EBD Tier<\/th><th>BDT Scope<\/th><th>PD Work Package<\/th><\/tr><\/thead><tbody><tr><td>Manager<\/td><td>Experience<\/td><td>Integration test (real orchestrator, mocked deps)<\/td><td>Integration milestone<\/td><\/tr><tr><td>Engine<\/td><td>Flow<\/td><td>Unit test (pure logic)<\/td><td>Core work package<\/td><\/tr><tr><td>Resource Accessor<\/td><td>Interaction<\/td><td>Unit (translation only)<\/td><td>Boundary work package<\/td><\/tr><tr><td>Utility<\/td><td>Utility<\/td><td>Exercised via consumers<\/td><td>Shared infrastructure<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The Whitepapers<\/h2>\n\n\n\n<p>Each pillar has a formal whitepaper \u2014 written for practitioners who want to understand not just what HD prescribes, but why each decision was made. They are available now on the <a href=\"\/es\/whitepapers\/\">whitepapers page<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core Framework<\/h3>\n\n\n\n<p>The <a href=\"\/es\/whitepapers\/harmonic-design\/\">Harmonic Design overview<\/a> is the best starting point \u2014 it describes the structural isomorphism that connects all four pillars. From there: <a href=\"\/es\/whitepapers\/volatility-based-decomposition\/\">VBD<\/a> for backend architecture, <a href=\"\/es\/whitepapers\/experience-based-decomposition\/\">EBD<\/a> for frontend architecture, <a href=\"\/es\/whitepapers\/boundary-driven-testing\/\">BDT<\/a> for testing strategy, and <a href=\"\/es\/whitepapers\/project-design\/\">Project Design<\/a> for planning. Each builds on the previous; together they form a complete engineering system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AI<\/h3>\n\n\n\n<p>The <a href=\"\/es\/whitepapers\/compiled-context-runtime\/\">Compiled Context Runtime<\/a> paper applies the same structural principles to AI agent systems \u2014 covering stateless orchestration, process definitions, compiled context injection, and the memory architecture that gives LLM-based systems durable state across sessions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s Coming<\/h2>\n\n\n\n<p>Over the next several months we&#8217;re publishing deep dives, tutorials, and implementation guides across all four pillars and the stacks they apply to \u2014 starting with VBD and moving through EBD, BDT, and Project Design before broadening into case studies, language-specific guides, and the organisational patterns that determine whether good architecture takes root or dies in a pull request.<\/p>\n\n\n\n<p>If you want to follow along, <a href=\"\/es\/contact\/\">subscribe below<\/a>. Posts go out twice a week, and every post is grounded in the whitepapers rather than opinion.<\/p>","protected":false},"excerpt":{"rendered":"<p>Software teams rarely suffer from a lack of frameworks. They suffer from frameworks that do not speak to each other. A team might apply Domain-Driven Design to their backend, atomic design to their component library, coverage targets to their test strategy, and agile ceremonies to their project management. Each framework is locally sensible. Together, they &#8230; <a title=\"Introducing Harmonic Design\" class=\"read-more\" href=\"https:\/\/harmonic-framework.com\/es\/introducing-harmonic-design\/\" aria-label=\"Read more about Introducing Harmonic Design\">Read more<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[6],"tags":[],"methodology":[],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-announcements"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"post-thumbnail":false,"hf-card":false,"hf-hero":false},"uagb_author_info":{"display_name":"William Christopher Anderson","author_link":"https:\/\/harmonic-framework.com\/es\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Software teams rarely suffer from a lack of frameworks. They suffer from frameworks that do not speak to each other. A team might apply Domain-Driven Design to their backend, atomic design to their component library, coverage targets to their test strategy, and agile ceremonies to their project management. Each framework is locally sensible. Together, they&hellip;","_links":{"self":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":6,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/posts\/177\/revisions\/663"}],"wp:attachment":[{"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/tags?post=177"},{"taxonomy":"methodology","embeddable":true,"href":"https:\/\/harmonic-framework.com\/es\/wp-json\/wp\/v2\/methodology?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}