Adding a new column should be simple, but the wrong migration can lock writes, slow reads, or block deploys. The database does not care about your sprint velocity. It cares about atomic changes, index updates, and the fact that every ALTER statement hits every row.
First, decide if the new column is nullable. Adding a non-null column with a default value rewrites the entire table. On large datasets, that is downtime waiting to happen. If you can, allow NULL at first. Backfill in small batches. Then enforce constraints.
Second, choose the right data type from the start. Changing column types later is expensive and may require an exclusive lock. Make sure it matches your intended queries and indexes.
Third, handle indexes after the column exists and the data is populated. Adding indexes during peak usage will choke performance. Build them in off-hours or with concurrent creation if your database supports it.