Adding a new column sounds simple. It can break production if you do it wrong. Schema changes are high-risk operations. They block queries. They lock rows. They break code that assumes the old structure. The cost of a mistake is downtime, data corruption, or both.
Start with intent. Define the column name, type, and constraints with precision. Use names that make sense without a comment. Pick the smallest data type that fits. Avoid NULL if possible; it complicates indexing and query plans.
For relational databases like PostgreSQL or MySQL, consider impact on large tables. ALTER TABLE on a billion rows can take hours and lock writes. To avoid blocking, add the column with a default of NULL, then backfill data in batches. Once populated, set defaults and constraints in a separate transaction. This keeps the table responsive.