Push or Pull?

Push or Pull?

I hate Norman doors. And I hate the people who design them.

What is a Norman door? It's pure evil is what it is. Look at this picture and answer me this — should you push, or should you pull this door?

Handles... pull surely? But there's also handles on the other side? Hmm....

I've been watching a lot of Subway Takes, and thinking about what I'd say to Kareem if he ever took a break from interviewing the Jennifer Lopezes and Rizzlers of the world. It's the above. It's clearly pull! This big old handle is sending the word PULL to my brain, in block capitals, unambiguously. And so you go to pull it and — they lied to me, betrayed me, it's a push?? And they've put handles on both sides?? Now I'm left standing there like some sort of moron. Look at this shmuck, he doesn't even know how to open a door!

And that — that little flush of heat up the back of my neck — is the actual crime. Not that the door didn't open. That it made me the idiot for a mistake that was engineered, by a professional, on purpose. It is one of the highest forms of everyday humiliation that someone got paid to insert into my life. The door failed, and somehow I'm the one standing there embarrassed.

And there are literally only two options! A door has a vocabulary of exactly two words — push, pull (sliding doors, the heretic's choice, not permitting) — and whoever installed it took one look and thought "sure, why not, this makes complete sense" and they just... installed it like that, completely wrong, and went home. All I know is that in my hand is not a door handle, it is failure.

This is not a hypothetical, these doors are out to get me. Pulling on one this weekend was the final straw — and so, saddled with this burden, the shame still fresh, I find myself in front of my computer ready for the first in a short run of posts on how we build platforms people can actually use... inspired, of all things, by a door. I didn't actually know the thing had a name for the longest time (shoutout to 99% Invisible for bringing this to my attention) — but the fact it comes from a 1988 book, Don Norman's The Design of Everyday Things, tells us that in forty years we still haven't cracked the human-centric design challenge that is opening doors.

A "coffeepot for masochists", the cover image of The Design of Everyday Things.

Now, here's where I have to be honest about how this post got away from me. I went to dig out that book to check my details, and got ambushed by the cover: a bright red coffeepot with the handle and the spout on the same side — a thing that can't pour, can't be held, can't do the one job a coffeepot has. Norman didn't draw it. A French artist named Jacques Carelman did, for a 1969 book of his own — Catalogue d'objets introuvables, "a catalogue of unfindable objects." It's a mock mail-order catalogue of things that look on face value completely usable and yet are completely absurd. Taps plumbed in a row into one pipe. Two bicycles with their front wheels welded shut. Each one lovingly drawn, described, numbered — and not one of them works.

And that's the moment this post got bigger than doors. I set out to write about one misleading door, and the book about the door handed me a whole catalogue of things that don't work — the door's just the first plate in it. I've read a lot of definitions of a data platform. This is the best one, and it's French, and it's from 1969. So, allez.


The Confession Taped to the Door

Think about what people do to a Norman door once they've given up fixing it: they tape a paper sign above the handle that says PUSH. That sign is a confession — it exists only because the door is not door-ing — and it doesn't even work, because your hand is on the handle before your eyes reach the word. You yank it and bathe in the shame either way.

Even worse, a permanent testament to its wrongness.

Now look at any data platform. READMEs, wikis, architecture diagrams — and if I squint into the background of someone's camera on Teams, I'm fairly sure they've etched the release process into their wall. Every one of them is a paper PUSH sign taped over a handle that lies. We call it documentation. It's a monument to bad design. Allow me to add it to the catalogue.

Catalogue plate 12: a manual for a machine that cannot be operated.

Pl. 12 Catalogue d'objets introuvables
README.md data-platform-core · updated 8 months ago

data-platform-core

The platform. Please read this entire file before touching anything. (You won't.)

Getting started

1. Clone the repo.

2. Do not commit without --no-verify. The unit tests are blocking us and we don't know why.

3. Ask Dave.

Pipelines

Orchestration_Master — does nothing. Do NOT delete it. Things break and no one knows why.

test_pipeline_v2 — this is the real one. Yes, it runs in prod. Yes, "test". Don't ask.

Known issues

• If the build fails, re-run it. If it fails again, re-run it. The third run usually works.

sp-dev-readonly has read-write in prod. This is load-bearing. Do not "fix" it.

• The Confluence page contradicts this README. This README is also wrong. Trust neither.

Onboarding

Good luck. Post in #platform-help (avg. response time: 3 business days) and someone will tell you to ask Dave.

Manual for a machine that cannot be operated. — Complete, current, and of no use to anyone.

A push/pull door gives you two ways to be wrong. A platform gives you a thousand — which doesn't make it better designed, only better at hiding. Because a platform isn't one Norman door. It's the whole catalogue: the README that documents a thing you still can't use, the pipeline named for a job it doesn't do, the access request you can raise and never get granted — every one an objet introuvable, photographed to look usable, lovingly maintained, quietly impossible. And whether it was one architect, a committee, or a snowball of small sensible decisions no one can account for now, the rule's the same: when the lived reality of a thing doesn't match what its design says, something has gone awry, and there is usually a someone or someones sat behind that.

If we can't get it right for a door — two options, forty years of warning — what hope does anyone have walking into a platform, whether they're an architect, an engineer, or the poor soul who just wants to run one query, of not coming away wondering if they're the moron?

This author investigates, after the line.


A Good Door Disappears

We already know what a good door looks like, and it isn't a door with better instructions. A door that works needs no sign; its shape tells you what to do. A flat plate gives your hand nothing to grab, so you push. A bar you can wrap a hand around asks to be pulled. Norman calls that honesty an affordance — the shape telling the truth about the job. You don't remember the last good door you walked through, because a good door disappears. We only notice design when it betrays us.

A Norman door is the shape lying. The handle says pull, the mechanism says push, and you're the one who ends up looking stupid for it.

A platform has a shape too, long before anyone opens the docs: its structure, its names, what it puts in reach and what it buries. A Norman platform is one where that shape lies — the CI ticks green but silently fails; the pipeline called Orchestration_Master does nothing except call test_pipeline_v2, which does everything; the read-only Dev service principal that, surprise, has read-write in Prod. Each is a handle on a push door. Each is another plate in the catalogue.

Catalogue plate 47: an instrument that reports only success.

Pl. 47 Catalogue d'objets introuvables

All checks have passed

5 successful, 0 failing checks

buildSuccessful in 2s — restored from cache (build #1442, 4 months ago)
unit-testsSuccessful in 0s — 0 tests found, 0 passed
integration-testsSkipped — reported as success (continue-on-error: true)
security-scanSuccessful — no rules configured, nothing scanned
deploy-prodSuccessful — dry run only (APPLY=false)
This branch has no conflicts. Merging is safe. Merge pull request
Instrument that reports only success. — Every light is green. Nothing was measured.

Nobody Fitted the Handle on Purpose

Which leaves the one thing worth knowing about any of these objects: whether someone meant to make them this way.

There's a darker version of the catalogue, where the impossibility is deliberate — complexity as a moat, confusion as job security, the thing built so only a few people can work it. That's a real post, but it's for another day, and it's the rare case. The everyday catalogue is stranger: nearly every impossible object in it was made by someone who meant well.

Take the humble access request: a form you can fill in perfectly and never get to the end of.

Catalogue plate 88: a form for requesting permission to do your job.

Pl. 88 Catalogue d'objets introuvables
Service Catalog · Request REQ0048817 Awaiting approval
Short description
Request read access to one (1) table
Priority
4 – Low
Opened
94 days ago
Assignment group
Platform-CoE-Interim-DO-NOT-USE
SLA
Breached (target: 2 business days)
Cost centre (required)
See CMDB (link expired)
Business justification (required)
"I need to do my job"
Approvers
1.j.smith— left the company in 2024
2.Blocked by REQ0048816— which is blocked by this request
To expedite this request, please raise a separate request.
Form for requesting permission to do your job. — Fully submittable. Cannot be approved.

Nobody designed that to be impossible. It accreted — an approver who left, a group that got renamed, a dependency pointing back at itself — until you had a form you can submit and never complete, owned by no one. Same story as the rest of the catalogue.

And underneath it, the question — am I the moron? — the answer is no. The thing is broken and no one's minding it; that's not a verdict on you. Feeling stupid and being stupid aren't the same thing.

And almost none of this is technical. We file platform confusion under "complexity" and treat people's well-founded bewilderment as their own fault — we're all professionals, put the graft in, you'll get there. Of course you need time to wrap your head around it — this is a smart platform for smart people. Let's not kid ourselves. It's a human problem wearing a technical one's clothes.

A Handle or Three

So: if it's not our fault, whose fault is it?

The honest answer is that it's nobody's fault — which is what makes it everyone's. No one chose the Norman platform, at least not consciously. We usually start from a coherent, well-architected design that looks a lot like a damn good door — solid mahogany, well varnished, and is that some brass trimming I spy? Delightful stuff.

And then through the process of designing and fitting that door, we contend with all the little challenges that come as we go — is the frame too tight? Let's lop some of it off. Can the hinges go where we planned them? Okay, let's turn the door around. The handle is on the outside now? Let's just put a little sign there. We intended to install a lovely door, and even though we know it's not right, it's not individually any of our responsibility, and it's only noticed by someone new — and surely they'll get used to it.

Maybe if it were just the one door we could leave it there (not me, of course, because I hate them). But you never get just the one. You get the README that lies, and the pipeline that doesn't, and the request that never clears — and then you get the corridors between them, and the rooms those corridors open onto. A door is one impossible object. A platform is a catalogue of them. And a platform where the catalogue has quietly become the architecture is a place you can walk into and not find your way back out of. It's all a bit impossible, a bit wrong. Welcome to the Platform Backrooms.

"This is our release process, but trust me, it makes sense if you think about it."

The Person Still Feeling the Heat

Walk through a broken door often enough and you stop feeling the heat; you learn the trick, push without thinking, and the lie becomes just another thing you know. Same with the catalogue: spend long enough among the impossible objects and they stop looking impossible. You learn which taps don't run, which pipeline is lying, which request is never worth raising, and the unusable museum just becomes the place you work. The people best placed to fix the platform are the ones who've stopped being able to see it.

Which means the only person who can still read the catalogue honestly is the one who just walked in — the new starter who hasn't been taught to admire the exhibits yet, who picks up the coffeepot and asks why the handle's on the same side as the spout. We file that under their inexperience. It's the most valuable thing in the building. Why we waste it is where I'm going next.

Subscribe to You, Me, CICD

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe