The sprint was ending, the release branch was cut, and the new column wasn’t in production.
A new column can break a pipeline or save one. It is the smallest change that can ripple through SQL queries, analytics dashboards, ETL jobs, and APIs. Adding it requires precision. The wrong data type locks you in. The wrong default triggers failing migrations or long table locks.
In PostgreSQL, a new column is as simple as:
ALTER TABLE users ADD COLUMN last_seen_at TIMESTAMP WITH TIME ZONE;
Yet the context matters. For large tables, online schema changes can keep production traffic running while the column builds in the background. Tools like pg_online_alter or native features in MySQL with ALGORITHM=INPLACE reduce downtime. In distributed systems, adding a new column often requires a multi-step rollout: update the schema, deploy code that can handle nulls, backfill data, then enforce constraints.