Postgres schema changes are still a PITA

Table locking, downtime risks, long running migrations, manual steps, difficult rollbacks. Is there a better way?