| Hi all, this is my first job in a management position and I am feeling quite a bit of impostor syndrome, so I'd really love to get extra eyes on a plan to transition a team that uses git-flow with a weekly release cadence to transition to trunk and eventually ci/cd. First, there are regular problems that occur in and around releases, so this isn't busy work, some form of intervention is necessary, and because managing branch hell is part of the problem and something that git-flow is known for, moving to automation with continuous release sounds like a reasonable step. So my current plan is: Step 1: Keep current release schedule, but treat develop as if it were main. Add feature flags and minimum daily commit to develop. Step 2: Add CI/CD pipeline to non-live deployment, like blue green deployment. Step 3: Add unit/integration test gates to deployment of step 2. Step 4: Stay in holding pastern for few weeks to deal with any emergent problems, testing failures, etc Step 5: Migrate fully to trunk based. Eliminate develop. Any thoughts, criticisms, feedback? |
Try “we need to ship more frequently (with the end goal being CI/CD) because our releases cause problems all the time and it’s very expensive” or something along those lines. Ask the engineers on your team to determine an approach that works for them, run it by you (your job in this is to manage risk/timeline/cost, not get them to do it your specific way), and then do it.