I work in a small team making software, we run pretty close to scrum, tickets and sprints, and use git. I however work in a different timezone, so communication can be a bit disjointed, though otherwise very good.
Recently I have been working on some tickets that rely on a feature that has not passed PR. This can lead to some substantial changes to my 'base' branch.
At this point I have been working on a branch off of this initial feature branch, only to have it change. Sometimes it changes a great deal. We have been 'getting around' this using a number of means. Initially, closing the initial PR, and rolling all of the changes and comments into the PR of the second feature.
Currently I have 'taken' the ticket and PR off of another dev, and will make the changes requested whilst keeping second feature branch up to date.
This has caused issues for me, in overhead having to juggle numerous features and keep branches up to date. It has caused issues for the team, there has been confusion over the PR's what goes where who's responsible for what. These have caused some late nights as I work in their timezone to get it all sorted.
I can think of a number of solutions, but none without problems:
Roll features that rely into one another into single tickets an PRs, this way there are no ticket dependencies. However tickets would get huge and unwieldy, PR's would be equally so
Don't work on a feature that has uncompleted predecessors. This way the 'ground state' would not move whilst you work on it. However we try to focus on one task at a time and this leads to having these dependencies, if I waited on these I could waste a great deal of time.
Before the timezone changes we would avoid this by all working on tickets with a great deal of dependencies, and getting it done as quickly as possible. However the time difference makes this hard (24 hour review turn around).