# How We Run a UX Engagement

A six phase process built around embedded delivery.

<style>
body::before {
    content: '';
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
    background-image: none;
    background-size: 60px 60px;
  }

  .container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 2;
  }

  .container-narrow {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 2;
  }

  /* NAV: defer to brand.css. Earlier inline overrides were targeting a
     legacy logo structure that no longer exists in the shared nav.html
     include, and were also blocking the mobile drawer toggle. */

  /* HERO */
  .page-hero {
    padding: 100px 0 60px;
    border-bottom: 1px solid var(--line);
  }

  .breadcrumb {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 28px;
  }
  .breadcrumb a { color: var(--text-muted); text-decoration: none; }
  .breadcrumb a:hover { color: var(--accent); }
  .breadcrumb span { color: var(--accent); margin: 0 12px; }

  .page-hero h1 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: clamp(44px, 5.5vw, 72px);
    line-height: 1.05;
    letter-spacing: -0.025em;
    margin-bottom: 28px;
    max-width: 920px;
  }
  .page-hero h1 em { font-style: italic; color: var(--accent); }
  .page-hero .lede {
    font-size: 21px;
    line-height: 1.55;
    color: var(--text-soft);
    max-width: 720px;
    font-weight: 300;
  }

  /* PHASES */
  .phases-section { padding: 100px 0; }

  .phases-list {
    max-width: 920px;
    margin: 0 auto;
  }

  .phase {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 48px;
    padding: 60px 0;
    border-bottom: 1px solid var(--line);
    position: relative;
  }

  .phase:first-child { padding-top: 0; }
  .phase:last-child { border-bottom: none; }

  .phase-num {
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
    font-weight: 400;
    font-size: 72px;
    color: var(--accent);
    line-height: 1;
  }

  .phase-content h2 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 8px;
    letter-spacing: -0.015em;
  }

  .phase-duration {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 20px;
  }

  .phase-content p {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-soft);
    margin-bottom: 16px;
  }

  .phase-deliverables {
    margin-top: 24px;
    padding: 24px 28px;
    background: var(--bg-card);
    border-left: 3px solid var(--accent);
    border-radius: 4px;
  }

  .phase-deliverables-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 12px;
  }

  .phase-deliverables ul {
    list-style: none;
    padding: 0;
  }

  .phase-deliverables li {
    padding: 6px 0 6px 20px;
    position: relative;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-soft);
  }

  .phase-deliverables li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--accent);
  }

  /* PRINCIPLES */
  .principles-section {
    padding: 100px 0;
    background: var(--bg-soft);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .section-header {
    text-align: center;
    margin-bottom: 60px;
  }

  .section-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 20px;
  }

  .section-h2 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: clamp(36px, 4.5vw, 52px);
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--ink);
    max-width: 880px;
    margin: 0 auto;
  }

  .section-h2 em { font-style: italic; color: var(--accent); }

  .principles-grid {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .principle {
    padding: 32px 0;
    border-bottom: 1px solid var(--line);
  }

  .principle:last-child { border-bottom: none; }

  .principle h3 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 22px;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 12px;
    letter-spacing: -0.005em;
  }

  .principle p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-soft);
  }

  /* CTA */
  .cta-section {
    padding: 100px 0;
    text-align: center;
  }

  .cta-section h2 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: clamp(36px, 4.5vw, 52px);
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 24px;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
  }

  .cta-section h2 em { color: var(--accent); font-style: italic; }

  .cta-section p {
    font-size: 18px;
    color: var(--text-soft);
    margin-bottom: 40px;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
  }

  .btn-primary {
    background: var(--accent);
    color: var(--bg);
    padding: 18px 36px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    display: inline-block;
    letter-spacing: 0.02em;
    transition: all 0.25s;
  }

  .btn-primary:hover {
    background: var(--accent-bright);
    transform: translateY(-2px);
  }

  /* FOOTER */
  footer {
    background: #0a0a0a;
    border-top: 1px solid var(--line);
    padding: 50px 0 40px;
  }

  .footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-muted);
  }

  .footer-inner a {
    color: var(--text-muted);
    text-decoration: none;
    margin-left: 20px;
  }

  .footer-inner a:hover { color: var(--accent); }

  @media (max-width: 980px) {
    .container, .container-narrow { padding: 0 24px; }
    .phase { grid-template-columns: 1fr; gap: 16px; }
    .phase-num { font-size: 48px; }
  }
</style>

<!-- HERO -->
<section class="page-hero">
  <div class="container">
    <div class="breadcrumb">
      <a href="/">Density Labs</a> <span>/</span> <a href="/design/">Product Design</a> <span>/</span> Process
    </div>
    <h1>How we run a <em>UX engagement</em>.</h1>
    <p class="lede">A six phase process built around embedded delivery, not vendor style handoff. Designed for product organizations that need to ship while building toward design maturity. Read this if you are evaluating partners.</p>
  </div>
</section>

<!-- PHASES -->
<section class="phases-section">
  <div class="container">
    <div class="phases-list">

      <div class="phase">
        <div class="phase-num">01</div>
        <div class="phase-content">
          <h2>Discovery</h2>
          <div class="phase-duration">Week 1 · 5 days</div>
          <p>We start by understanding what is actually broken, not what was scoped. Most engagements arrive with a brief that describes a symptom (the app feels dated, conversion is dropping, the team is stuck). The first week is about finding the underlying cause before we commit to a direction.</p>
          <p>This is intentionally short. If discovery extends past a week, it usually means we're substituting analysis for action. We end Week 1 with a working hypothesis and proceed.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Stakeholder interview synthesis (5,8 conversations)</li>
              <li>Existing product audit with prioritized issues</li>
              <li>Working hypothesis on the underlying UX problem</li>
              <li>Engagement plan for Phases 2,6</li>
            </ul>
          </div>
        </div>
      </div>

      <div class="phase">
        <div class="phase-num">02</div>
        <div class="phase-content">
          <h2>Foundations</h2>
          <div class="phase-duration">Weeks 2 to 3 · 10 days</div>
          <p>Before we design new things, we make sure the foundations support what comes next. That can mean tokens, components, naming conventions, file structure in Figma, or how design hands off to engineering. Foundations work is unglamorous. It is also what prevents the engagement from producing pretty mockups that engineers cannot actually build.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Design token audit and consolidation</li>
              <li>Component library state assessment</li>
              <li>Design-to-engineering handoff protocol</li>
              <li>Figma file structure and naming conventions</li>
            </ul>
          </div>
        </div>
      </div>

      <div class="phase">
        <div class="phase-num">03</div>
        <div class="phase-content">
          <h2>Embed</h2>
          <div class="phase-duration">Week 4 onwards · ongoing</div>
          <p>The designer or design squad joins the team. Same Slack, same Jira, same standups. Pairs with engineers, attends roadmap discussions, contributes to PR reviews when relevant. This is the shape of the engagement for most of its duration. Not "design hands off mockups and disappears" but "design is part of the team that ships features."</p>
          <p>The Ooma engagement (5.0 Clutch rating, 4 years and counting) has been in this phase since Week 4 of 2022.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Active feature design across the roadmap</li>
              <li>Pairing sessions with engineering</li>
              <li>Continuous prototype work</li>
              <li>Design QA on shipped features</li>
            </ul>
          </div>
        </div>
      </div>

      <div class="phase">
        <div class="phase-num">04</div>
        <div class="phase-content">
          <h2>Research &amp; iterate</h2>
          <div class="phase-duration">Continuous</div>
          <p>Every quarter we run usability research on what shipped. Not formal lab studies, the kind of focused, low overhead testing that produces actionable insight in 2 weeks. The findings feed back into the next quarter's roadmap. Research is woven into delivery, not separated from it.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Quarterly usability sessions (5,8 users per round)</li>
              <li>Research synthesis with prioritized recommendations</li>
              <li>A/B test design and analysis when applicable</li>
              <li>Feedback loop with product and engineering</li>
            </ul>
          </div>
        </div>
      </div>

      <div class="phase">
        <div class="phase-num">05</div>
        <div class="phase-content">
          <h2>Mature the function</h2>
          <div class="phase-duration">Ongoing</div>
          <p>As the engagement progresses, we work alongside your team to build the structures that let design contribute strategically: design rituals, review cadences, the documentation that lets a new designer onboard quickly. The goal is to leave the design function more capable than we found it, regardless of whether we stay long term.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Design ritual cadence (critique, review, planning)</li>
              <li>Design documentation and decision log</li>
              <li>Onboarding playbook for new designers</li>
              <li>Quarterly design org review</li>
            </ul>
          </div>
        </div>
      </div>

      <div class="phase">
        <div class="phase-num">06</div>
        <div class="phase-content">
          <h2>Handoff or extend</h2>
          <div class="phase-duration">As required</div>
          <p>Some engagements are time bounded. Others extend for years (Ooma: 4 years and counting). Either is fine. What matters is that the transition is clean: documentation is current, knowledge has transferred, and your in house team owns the work. We design every engagement to be exitable from month three onwards. That changes how we work, in a good way.</p>

          <div class="phase-deliverables">
            <div class="phase-deliverables-label">Deliverables</div>
            <ul>
              <li>Complete design documentation</li>
              <li>Transition plan to in house ownership</li>
              <li>Knowledge transfer sessions</li>
              <li>Design system handover (if applicable)</li>
            </ul>
          </div>
        </div>
      </div>

    </div>
  </div>
</section>

<!-- PRINCIPLES -->
<section class="principles-section">
  <div class="container">
    <div class="section-header">
      <div class="section-eyebrow">Operating principles</div>
      <h2 class="section-h2">Five non-negotiables that <em>shape every engagement</em>.</h2>
    </div>

    <div class="principles-grid">
      <div class="principle">
        <h3>Embedded over vendor</h3>
        <p>Designers join your team. Same tools, same standups, same accountability. Not "external resources delivering to a SOW" but team members contributing to outcomes.</p>
      </div>
      <div class="principle">
        <h3>Foundations before features</h3>
        <p>Pretty mockups that engineering cannot build are waste. We invest in tokens, components, and handoff protocols before we design the next feature.</p>
      </div>
      <div class="principle">
        <h3>Tenure compounds</h3>
        <p>The senior designer who has been on your product for two years can move ten times faster than the equivalent designer hired last quarter. We optimize for retention, not rotation.</p>
      </div>
      <div class="principle">
        <h3>Exitable from month three</h3>
        <p>We work in a way that lets you end the engagement cleanly at any point past month three. That constraint changes our documentation and handoff practices for the better.</p>
      </div>
      <div class="principle">
        <h3>Research is woven, not bolted on</h3>
        <p>Every quarter we test what shipped. Not formal lab studies. Focused, low overhead research that produces actionable insight in two weeks.</p>
      </div>
    </div>
  </div>
</section>

<!-- CTA -->
<section class="cta-section">
  <div class="container">
    <h2>Ready to talk about <em>your design problem</em>?</h2>
    <p>Book a 30 minute discovery call. We'll tell you honestly whether this process fits your situation, and what to look for if it doesn't.</p>
    <a href="" class="btn-primary">Book a discovery call →</a>
  </div>
</section>

<!-- FOOTER -->
