We have a team of 8 developers and 1 QA (tester) and are struggling with dependencies between tickets and lots of merge headaches and / or people waiting to get the next job done.
Our current GIT flow model (branches):
publication | > Epic (feature branch) | | > Ticket: Here the developers do their work and their QA tests | | | then we move into the epic branch as soon as it's over.
Our company creates APIs using Web APIs (.Net, C #). We also have an Anuglar site and an old MVC administration site that mainly uses jquery.
For many recent projects, we had to create APIs for inserting, updating, deleting, and retrieving. Usually, we code the "Insert" ticket first and make the other tickets dependent on it, because, for example, encodes controllers, db tables, and classes that use / use the other APIs.
However, the "update" must check whether there is an existing update in the database. So it depends on the "get" so we have 3 branch layers.
... | > Paste | | > Refresh | | | > Get yourself.
This can get even worse if more epics are involved. This leads to many merge problems or confusion for QA and developers regarding the needed branches.
How do people reduce that? Pair programming? Create empty stub methods?
A big problem we have is the lack of QA resources as we struggle to hire people. Many tickets simply pile up in the QA stack, which resolves conflicts in the ticket stores.
I thought about creating a new Git Flow:
publication | > Epic (feature branch) | | > Epic (Dev) | | | > Ticket
So with this new one Epic (Dev) After the ticket has been encoded, we're going to jump right into that branch and then into the QA test of that branch, and if it's passed, we'll move it to the branch Epic (feature branch),
- QA does not have to constantly change the branches
- Can test full processes instead of individual tickets.
Can this, I hope, lead to fewer conflicts?
Does anyone think that's better than our current setup?
Does anyone have any better suggestions?
Note: At the moment we can not have a Qa test environment (this is beyond my control)