Your seed data must exactly reflect the structure of real data

This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the data category.

Last Updated: 2021-05-15

In Project S, I created some "appointment" entity records without the intermediary records that would normally be present (some corresponding "ticket" records).

This would later trip both myself and a colleague up, causing us to think there were bugs in the code (related to missing records), when in fact this was just a symptom of me having simplified but unrealistic seed data.

In general, programmers will spend nearly all their time in the development env. The seed data they see should be a realistic version of the real thing, since they'll use their development-env experience as a proxy for the system's actual health.