← Writing

Design Technology

Design Is Creation With Researched Intent

Why designers and developers misunderstand each other — and the simple reframe that fixes it

Oct 2023 · 5 min

Walk into most product teams and you will find the same tension running quietly beneath the surface.

Designers feel like developers don't respect the work. Developers feel like designers don't understand constraints. Both feel like the other is making their job harder.

Stand-ups get political. Handoffs become negotiations. The product that ships is a compromise nobody is proud of.

This is not a personality problem. It is not a process problem. It is a definitional problem — and it has a surprisingly simple fix.

What Design Actually Is

Design is not aesthetics. It is not Figma files. It is not the phase that happens before development.

Design is creation with researched intent.

That is my whole definition. Every designed thing — a chair, a codebase, a dashboard, a typeface, a military operation — was created in response to an understood need, with deliberate decisions made about how to meet it. The research may be formal or informal, the intent may be explicit or implicit, but both are always present. Remove them and you don't have bad design. You have no design at all — just making.

This definition matters because it immediately dissolves the boundary that causes most team friction. Developers are not the people who implement design. Developers are designers. They design architecture. They design systems. They design the structures that every future decision will be built on top of.

The discipline is shared. What differs is the focus — and understanding that difference is what makes cross-functional teams actually function.

The Focus Flip

Here is the insight that changes how designers and developers understand each other:

Design and development are not sequential phases. They are the same activity with the priority of the audience flipped.

When a designer works, the hierarchy looks like this:

User first. Every decision starts with the person who will interact with the product. What do they need? What do they understand? What do they feel? The user is the primary audience for every design choice.

Team second. The designs need to be communicable — to developers, to stakeholders, to other designers. A design that only exists in one person's head is not a design. It is an intention.

Functionality last. Not unimportant — but last. The functionality serves the user experience, not the other way around. A feature that works perfectly but that no one uses or understands has failed regardless of its technical correctness.

When a developer works, the hierarchy inverts:

Architecture first. Every decision starts with the system. What structure will support this feature today and the ten features that follow it? What patterns will make this codebase navigable for the next developer who opens it? The code is being designed for the people who will read, maintain, and extend it — which is rarely the end user.

Team second. The code needs to be readable, documented, and consistent with the patterns the team has established. Code that works but that nobody else can understand is technical debt disguised as a deliverable. The sprint velocity looks fine. The damage shows up six months later when nobody can touch that part of the codebase without breaking something else.

User last. Not unimportant — but last. The user experiences the output of the code, not the code itself. Functionality ships to the user as the final expression of all the decisions made above it.

Design and development are not sequential phases. They are the same activity with the priority of the audience flipped.

Why This Reframe Matters

When designers understand that developers are designing for their team and their system first, the frustration of "why won't they just build what I designed" dissolves. The developer is not being difficult. They are doing their job — making decisions about architecture and patterns that will determine the quality of everything built after this feature. Those decisions deserve the same respect as a considered layout or a typographic choice.

Two pairs of hands working on the same surface — one sketching a mechanical drawing with a pencil, one typing on a keyboard — surrounded by gears, drafting tools and workshop equipment on a worn wooden workbench
REF_001 // SAME SURFACE

When developers understand that designers are designing for the user first, the frustration of "why are they asking for something that makes no technical sense" also dissolves. The designer is not being naive about constraints. They are doing their job — advocating for the person who will actually use the thing, who has no visibility into the technical decisions being made on their behalf.

The conflict was never about aesthetics versus engineering. It was about two professionals optimising for different audiences — without realising the other was doing exactly the same thing.

Design Must Come First — Here Is Why

This reframe also resolves one of the most persistent arguments in product development: which comes first, design or development?

Design comes first. Not because designers are more important than developers. Because the user must be prioritised before the system — and once architectural decisions are made, they constrain everything that follows.

A codebase built before the user experience is understood will be optimised for the wrong thing. Every subsequent design decision will be shaped by technical constraints that were established without user insight. The team will spend the rest of the project negotiating between what users need and what the architecture allows.

Design first means the system is built around the user. Development first means the user is fitted around the system. Only one of those produces a product people want to use.

This is not hypothetical. Netflix built its streaming architecture before it understood how people browse for something to watch. The system was technically impressive — optimised for catalogue scale and delivery efficiency — but the browse experience was so cognitively overwhelming that "Netflix and chill" became a joke about spending 40 minutes choosing nothing. They spent the following decade engineering around a paradox of choice problem that was baked in from the start.

The same failure runs through most enterprise data products: a schema built around what the data contains rather than what decisions it needs to support, handed to an analyst team who then has to do all the sense-making work the product should have done. In both cases the architecture was correct. The user was an afterthought.

The Practical Implication

If you are a designer working with developers who don't seem to respect the work — stop trying to get them to care more about users. Start showing them that you understand what they are optimising for. Speak to the architecture. Acknowledge the constraints. Make it easy for them to implement well, not just accurately.

If you are a developer working with designers who seem disconnected from reality — stop trying to get them to care more about technical constraints. Start showing them that you understand what they are optimising for. Engage with the user research. Ask why before asking how. Make it easy for them to design well, not just hand off cleanly.

The distance between design and development is not a gap to be managed. It is a perspective to be shared. Both sides are doing the same thing — creation with researched intent. The only difference was always who they were creating for.

The right problem.

The right partnership.

Open to the right full-time leadership roles and consulting partnerships. If the problem sits at the intersection of design, data, and technology — let's talk.

Currently

A typical week in hours

Parenting
Deep work
Sleep
Training
Reading
Building

Categories overlap — parenting doesn't clock off.

Training

Weight lifting, Muay Thai, and hiking.

Currently trying to get lost in as many Norwegian fjords as possible.

Building

Mechanical keyboards and custom PCs.

The best way to understand how humans interact with machines is to build them yourself.

Reading

The UX of AI — Greg Nudelman.

Mid-way through the chapter on Digital Twins. The overlap with my current project work is uncomfortably well-timed.

Life

Single father of three.

Everything else fits around that.

On my mind

How AI changes the roles of both the designer and the developer — not whether it will, but how fast, and whether either discipline is ready for it. And the question nobody is answering well yet: how do you actually measure whether an AI implementation is working?

Updated periodically. Last updated March 2026.

Design System

Stephen Chiang

Personal site — design tokens and principles

Color Palette

Background

#131313 · --color-bg

Surface

#1a1a1a · --color-surface

Card

#1a1a1a · --color-card

Accent

#FFB77D · --color-accent

Accent Deep

#D97707 · --color-accent-deep

Text Primary

#E5E2E1 · --color-text-primary

Text Muted

#737371 · --color-text-muted

Border

#222220 · --color-border

Invert Background

#D97707 · --color-invert-bg

Typography Scale

Engineering

Display · Space Grotesk · 64px / 700

Engineering

Display Light · Space Grotesk · 48px / 300

Section Title

H1 · Space Grotesk · 40px / 700

Article Heading

H2 · Space Grotesk · 32px / 700

Body copy at reading size, comfortable for long-form

Body Large · Manrope · 18px / 400

Standard body text and UI copy

Body · Manrope · 16px / 400

UPPERCASE LABEL · LETTER SPACED

Label · Manrope · 14px / 500

ENTERPRISE · DATA STRATEGY

Tag · Manrope · 12px / 500

Spacing System

Base unit8px
Card padding40px
Row padding32px
Side margins80px desktop / 24px mobile
Section padding120px desktop / 72px mobile
Container max1280px

Motion Principles

Load sequence

Staggered fade + slide up, 0.6s ease-out

Scroll reveals

translateY(30px) → 0, opacity 0 → 1

Hover transitions

0.2s ease — color, background

Drawer open

0.45s cubic-bezier(0.16,1,0.3,1)

Cursor follower

8px dot, 60ms lag, expands on hover

Portrait parallax

0.6x scroll rate via GSAP ScrollTrigger

About strip reveal

Color wipe left → right, 0.6s

React Router v7 · Tailwind v4 · GSAP · Space Grotesk · Manrope · Vercel