Adding a new column sounds simple. It is not. Schema changes are the kind of work that can turn a safe release into a fire drill. A single mistake in how you add, backfill, or index that column can lead to downtime, deadlocks, or data loss.
The first step with a new column is deciding if it should allow nulls. If the table is large and you default non-null with a value, the database may rewrite the entire table. That can lock writes for minutes or even hours. Many large systems instead create the column as nullable, deploy, then backfill in batches. Only after the data is consistent do they mark it non-null.
Always check how your database engine handles metadata-only changes. Some engines can add a nullable column instantly. Others cannot. On Postgres, adding a column with a default will perform a full table rewrite if the default is not a constant. On MySQL with InnoDB, an instant add is possible in many cases, but not for all data types.
Indexes for the new column must be created carefully. Creating a blocking index on a huge table during peak traffic is asking for trouble. Many teams build indexes concurrently or in the background, using database-specific options to avoid locking writes.