The report said forty percent of customers
had opted out of marketing.
Forty percent had not opted out.
Forty percent had never been asked,
because the question arrived
eighteen months after they signed up,
and the column was created
with a value already sitting in it.
Three different things
are wearing the same clothes.
Nobody was ever asked.
Somebody was asked and said no.
Somebody said yes, changed their mind,
and cleared it.
The table has one column
and two possible values,
so the first and the second
became the same fact,
and there is no way back,
because the difference
was never written down anywhere.
Watch where this escapes.
The first place is the condition.
You write if not value,
and the language agrees with you
that an empty string,
an empty list,
a missing key,
and a number that happens to be nought
are all the same kind of no.
They are not.
One of them is a measurement.
The rest are silence.
The second place is the update.
A form posts every field it renders.
The fields nobody touched come back blank.
You save the whole object,
and you have just recorded
that this customer has no phone number,
which nobody ever told you.
Absent has to mean leave it alone.
Make the request say
which fields it intends to change,
not which fields the page happened to draw.
The third place is the count.
Sums and averages quietly drop
what they cannot add up.
The number moves,
nothing errors,
and the figure on the slide
is the average of the people
who answered.
So be exact about the states,
early, in the type,
where a reader can see them.
Never asked.
Asked, no answer.
Answered, and the answer was none.
If you genuinely only have room for two,
write down which two you kept
and what you threw away.
Somebody will read that column
in four years
to make a decision about real people,
and they will never know
it once had a third meaning
unless you say so.
– Serguey Asael Shinder
Top comments (0)