I work as a software developer. Our company has 6 developers and roughly 6-8 projects going on at the same time.
My supervisor sometimes assigns me to start working on a project, and when the code is about 30% ready, assigns someone else to keep working on the project instead of me.
Alternatively, they would assign me to work on a project that was started by someone else. Then I have to navigate through someone's undocumented, messy code, which means for a couple of days I can hardly produce anything, and afterwards it takes some extra effort to rewrite things and understand the logic.
I've tried asking directly why I am being reassigned, but the answers are always generic - "it's because we got a new project coming", or "it is because [another supervisor] wants you on this project".
From gossip, it appears that this is a deliberate tactic that the management has specifically discussed.
People in our company generally work for a long time (several years) before quitting, and have a 2-month notice period. So I assume this is not the reason.
These reassignments and inability to complete any single project are really demotivating.
Is there a reason why they'd do this and how can I deal with it?