Every model should have a notes field
Production data, like real life, is messy. Your database — or at least the projection of the world as expressed by your database — will become riddled with esoterica and one-offs, edge cases and marginalia. This is inescapable: the customer who you generously gave two free months to, the domain name using an obscure registrar that Python's DNS library fails to validate, the account that needs manual invoicing because their AP department can't handle Stripe.
This information has to live somewhere:
- The worst case scenario, and the most common one, is that it lives in someone's head.
- The second worst scenario — albeit a drastically preferable one — is that it lives in some unstructured place: a Slack thread collecting dust, a Google Sheet filled with custom pricing information. I still have nightmares about the Google Sheets that I've seen that were used as the sources of truth for determining ten-figure wire amounts.
Your business will not fail or succeed on the back of its ability to keep track of this stuff. But there is an easy and obvious way to save you and your team some headaches — and headaches are meaningful. The thirty minutes you spend tracking down some obscure discussion in Helpscout isn't just a little bit of unnecessary randomization, because three or four of them end up metastasizing into an afternoon's worth of work consigned to the garbage bin.
The solution is obvious that this essay could have been empty, sans its title: every single important model in your database should have a private notes field — completely unstructured, but capable of holding any miscellany as a single source of truth. You can get extra credit by piping this everywhere: into admin panels, into Slack, into in-app widgets, but the crux of it is process rather than engineering.
Get everyone to put the shape of information in a common, structured, co-located place, and your life will be — at least as it pertains to this genre of thing — twenty to twenty-five percent more peaceful, for the cost of a few minutes of your time.