Adding a new column seems simple. It rarely is. The database does not care about your deadlines or your feature freeze. Changes to schema ripple across queries, APIs, and analytics pipelines. The name, type, nullability, and defaults all matter. Deploy it wrong and you lock writes, block reads, or corrupt data without knowing.
In most systems, adding a new column means running ALTER TABLE. On small tables this is instant. On large tables with millions of rows, it can lock for minutes or hours. This stops production. Experienced teams plan these changes with zero-downtime migrations. They create the column with a safe default, backfill data in batches, and only then switch application code to use it.
Indexes complicate this further. A new column that will be queried often may need an index, but adding it at the wrong time can block writes and blow out memory. Data type changes in production are worse. Choose incorrectly and you pay with performance for years.