How answers stay separate from people
This is the part that determines whether anybody answers honestly, and it is easy to claim and easy to get subtly wrong. The claim being made is specific and limited, and worth stating precisely rather than as a reassuring adjective.
Key takeaways
- Two tables: leavers, and responses. No query in the system joins them.
- The token linking a response to an ask is one-way and is not stored on the leaver.
- The pair of responses from one person is linkable to each other, and to nobody.
- What a leak would expose is stated plainly, because vague reassurance is not a control.
- In a team of eleven, anonymity is not achievable and the system says so.
Two tables
- Database
- App integration
- Security & identity
- Analytics
- Front-end & mobile
- People
Why random rather than derived
A token derived from an identity — a hash of the email address, say — feels clean and defeats the whole purpose. Anybody holding the list of leavers can compute the same hash and look up the responses. The separation is only real if the mapping cannot be recomputed, which means the token is random and the leaver row holds a hash of it rather than the token itself.
The consequence is that once a link is sent, nobody at your end can determine whose responses are whose. That includes whoever built the system, which is the property that makes the claim credible.
What is linkable
The two responses from one person are linkable to each other, because both asks use the same token. That is deliberate and it is what makes the comparison in Part 4 possible. They are not linkable to a name, a role, a department, a manager or a leaving date.
The leaving date is worth calling out. It is enormously tempting to store it on the response — it would let you trend feedback over time — and in a business with a handful of leavers a quarter it is very nearly an identity. So responses carry only the quarter they were collected in, and even that is only used once the quarter has several responses in it.
Being honest about the limits
What this system does and does not promise
- It promises: nobody at your business can look up what one named person said, including whoever administers the system.
- It promises: no single response is ever shown to anybody, in any report, in any form.
- It does not promise anonymity. With eleven staff and two leavers this quarter, a theme about the warehouse rota is attributable by anybody who was there.
- It says so on the form. “We cannot promise you cannot be identified from what you say. We can promise nobody here will be shown your answers on their own.”
- A leak would expose: a set of responses with no names attached, and a separate list of who left. Joining them would require the tokens, which are not stored.
That third bullet is uncomfortable and belongs on the form. Systems that promise anonymity they cannot deliver get one round of honest answers, and then somebody works out who said what, and the well is poisoned for years. Promising less and delivering it is the only version that survives.
Deletion
- Security & identity
- Analytics
- Front-end & mobile
- People
Deleting the leaver row at twelve months costs nothing — the responses do not need it and the themes never used it — and it converts the separation from something enforced by code into something enforced by the absence of data. That is a much stronger position to be in if anybody ever asks.
Next: how the answers become themes.
All posts