A single schema change can be the smallest commit and the most dangerous. Adding a new column should be fast, easy, and safe. Too often it is none of these. Legacy migrations can lock tables, stall writes, and ripple into outages. Modern systems demand a workflow where schema changes happen in production without downtime.
A new column is more than a field in a table. It is a contract change across your stack. The database must store it. The backend must read and write it. The APIs must handle it. The frontend may need to render it. Each of these steps must be coordinated or you risk breaking something users touch every day.
Best practice is simple: treat schema changes like code changes. Version them. Test them in staging with realistic load. Use migrations that are incremental, reversible, and safe for concurrent traffic. For large datasets, consider online schema change tools or background migrations that break the operation into safe batches. Always measure the performance impact before and after adding a new column.