One of the challenges in software development is coordinating database and application changes when one depends on the other. I find many software development teams struggle with this, especially in today's environments when no one wants to take a system offline. While some companies can stage and manage deployments, many of us find our systems need to keep running 24x7 with minimal outages (if any).
Lots of you work in environments where your software is changing on a regular basis. Plenty of you will either be developing those changes, or managing the systems to which those changes are deployed. You likely will be coordinating with other people (in either case) to deploy a software artifact (C#, Java, Python, etc.) and a set of database changes in order for your clients to use whatever new functionality is being delivered.
My question today is do you deploy database changes first or application changes first. Certainly you can deploy both on the same day or in the same pipeline. However, even if you use parallel pipelines, likely one side will finish first, and you likely have some preferred order for deployments. My question today is what order do you prefer (or is mandated to you).
Maybe you don't care. After all, with modern coding and feature flags, you can deploy either side first (front end or back end) and not disturb your clients. I've seen many successful deployments from organizations both ways. Some like letting application developers deploy their code with expected database changes hidden behind flags. Others want the database to get patched and the software changed later to use the database changes.
Lots of people want everything deployed at once, but if you assume that is the case, I hope you have downtime scheduled, as you can't usually get everything deployed simultaneously.
I tend to prefer database first, with dark deployed changes that don't affect the front end. Of course the front end needs to support these dark deployed changes, but that's easy by just following good coding practices, which aren't that hard.
Let me know today what you prefer and why. Or if you don't care and can deploy in either order.