top | item 40274826

(no title)

Aqueous | 1 year ago

"Doing them swiftly, efficiently, and -- most of all -- completely is one of the most critical skills you can develop as a team."

That all sounds great. However, I'd like to understand what teams are actually able to do this, because it seems like a complete fantasy. Nobody I've seen is doing migrations swiftly and efficiently. They are giant time-sucks for every company I've ever worked for and any company anyone I know has ever worked for.

discuss

order

simonw|1 year ago

That's why it's celebrated as a valuable skill - it's hard!

Did you read this? https://lethain.com/migrations/

I have decades of experience and I'm just about reaching the point now where a migration like this doesn't intimidate me.

Aqueous|1 year ago

The fact that it takes decades to master such a mundane task may mean the entire approach is wrong. The article hand-waves a lot of the complexity of "automating as much as possible."

In my opinion, the solution lies in append-only software as dependencies. Append-only means you never break an existing contract in a new version. If you need to do a traditional "breaking change" you instead add a new API, but ship all old APIs with the software. In other words - enable teams to upgrade to the latest of anything without risking breaking anything and then updating their API contracts as necessary. This creates the least friction. Of course, it's a long way for every dependency and every transitive dependency to adopt such a model.