Projects rarely go exactly as planned. I’ve been on plenty of projects where everything seemed set up perfectly: We had clear sprints, defined tasks, solid deadlines and yet somehow, by mid-week, everything was shifting. Priorities would change, new requests would pop up or a client meeting would completely reshuffle the plan. And suddenly, the team that felt in control yesterday was scrambling today.
The tricky part isn’t the coding or the tech. It’s keeping the team together when every day looks different. I remember one Monday when we had just finished grooming the backlog and by the next morning half the priorities had changed. I could see the frustration building. People were looking at each other like, “Wait, what now?”. This situation made me realised that no amount of planning would make things smooth until we found a way to handle these constant shifts.
In theory, frameworks such as Scrum or Kanban are created to handle change. They promote flexibility and regular priority changes. In reality, however, changing requirements can cause frustration and make people feel overwhelmed.
Working with a US client taught me quickly that the hardest part isn’t the time zone or the tools. It is how priorities can flip in a matter of hours. On Monday afternoon we’d finish backlog grooming and everyone knew what to focus on. By Tuesday morning, after an internal client meeting, the top priorities had already changed. What was urgent yesterday suddenly didn’t matter and new tasks appeared out of nowhere.
The client had multiple departments: Sales, Marketing, Development. Each had their own agenda. Sometimes we’d get conflicting instructions: Sales would push one feature, Marketing another and Development would flag something completely different. Add to that the fact that they were working with other vendors, and you quickly realise how many tasks arrived with missing details. Sometimes developers would finish coding a task, QA wasn’t able to test it because some details were missing. Sometimes deployment got stuck while we waited for clarification from the client. All of these small disruptions were frustrating and the real problem was how it started affecting the team. Even senior developers, who usually deal with the chaos well, started showing signs of stress.
I remember one 1:1 where a developer told me, “I’m finishing Task A, then Task B became urgent and now Task C showed up overnight. I have no idea where to start.” In our retrospective, several people said almost the same thing. We realised we were constantly chasing a moving target. Every time we thought we were making progress, something would shift and it caused frustration and energy loss.
The constant changes started to reflect on the team. It wasn’t that the work was too hard. We had senior developers in the team, which were used to handling complex projects. But even for them, priority shifts caused frustration and lack of sense of accomplishment.
In retrospectives, the same concerns kept coming up:
Even when the client gave positive feedback or a quick “nice job,” the pressure didn’t go away. You could notice it even during online meetings. My team members look tired even at morning daily meetings, I could sense frustrations popping up in Slack and they had heads down after long calls. The team was working hard, that was never the issue. But after a while, you could see people getting tired of the constant changes. Finishing something didn’t feel like a win anymore because something new was already waiting. It was like we were in the loop with tasks. Stuck and not moving forward.
I’ve then realised that if we continue like this, both the team and the project will fail. We needed to change how we were working, not just try to keep up with everything that was coming in.
At one point, I also had to rethink what the role of project manager actually was. Up until then, a big part of my job looked like planning, tracking, reporting. But none of that was helping when the team was stuck or frustrated.
I remembered something from PMP and PMI-ACP courses about the PM being a servant leader. At the time, it sounded nice in theory, but a bit abstract. On this project, it finally clicked. I figured out that I don’t need to have all the answers. But I have to protect my team, move the obstacles so that they can do their job without being constantly under pressure.
That mostly meant stepping in where things were getting messy. If a task was blocked because we were missing input from the client or another vendor, I didn’t want developers sitting around or guessing. I’d go chase the information, jump on calls, clarify things, whatever it took so they could keep moving.
I also started being more careful about what actually reaches the team. Not every client request needed to land directly on a developer’s plate the moment it appeared. Before, things would come in and immediately create pressure. Now, I’d pause, look at the bigger picture and decide when it actually made sense to introduce something new.
One thing that changed a lot was how we handled priority shifts. Instead of telling someone “drop this and do that,” we’d take a minute and talk it through. What’s already in progress? How close are we to finishing it? Does it make more sense to finish this first or switch? Those small conversations actually helped more than I expected. Instead of people just dropping everything and jumping to the next thing, we’d pause for a minute and figure out what makes sense.
I remember one situation where a developer was halfway through a task, got blocked and was ready to pick up something completely new. A few hours later, the missing info arrived and he had to go back again. That back-and-forth was exactly what was quite exhausting for the team. Once we started slowing that down things became less chaotic.
It still wasn’t ideal. Priorities were still changing and thighs were still not fully under our control. But at least we were not in firefighting mode every single day.
We started with baby steps. Instead of fixing everything at once, we picked a few things that were causing the most distraction.
The Product Owner and I went through the backlog together, item by item. We were asking simple questions like “Do we still need this?” or “Is this even relevant right now?” Some things stayed, some got pushed and some were removed completely.
We also noticed that everything was top priority. A small bug could suddenly feel as urgent as a bigger feature. So we split things a bit more clearly, dividing them into feature work, bug and business work. We’ve finally created a roadmap with clear priorities.
Another thing that caused a lot of stress was how tasks were assigned to people. It wasn’t unusual for someone to start the day and already have something new assigned as “high priority.” We stopped doing that. Instead, tasks would first go through me, and then we’d decide when it actually made sense to pick something up.
Timing also became more important than just priority. If someone was already deep into something, we’d let them finish instead of interrupting them right away. That alone reduced a lot of unnecessary switching.
Blocked work was another pattern we had to slow down. Before, the moment something got blocked, the default reaction was to jump to something else. After a few days, that meant a bunch of half-finished tasks. So we started pausing for a second and asking what actually made sense, wait a bit or switch. Just being intentional about that helped more than expected.
None of this was anything revolutionary. We didn’t introduce new tools or big processes. But it was enough to make things feel a bit more under control. The client was still changing priorities, that didn’t go away, but it no longer felt like we were constantly chasing everything at once.
After a few weeks, retros started sounding a bit different. At the beginning, people were mostly just frustrated. Same comments, same problems, just repeated every time. But later on, the tone shifted a bit. Not perfect, but less “what is going on” and more “okay, this is better, but this still annoys me.”
One thing that kept coming up was priorities. They were still changing, that didn’t magically stop. But it wasn’t as chaotic as before. At least now things didn’t just land on the team out of nowhere. There was some flow, some logic behind it.
I remember one comment where someone said, “It’s still changing, but at least now I know why.” That stuck with me. Nothing huge changed, just more context, but it made a difference.
Boundaries also came up a couple of times. Not in a big way, but more in small comments like “I saw this message late last night” or “I wasn’t sure if I should reply.” That was enough to open the conversation. We didn’t overcomplicate it, just agreed on what’s expected and what isn’t.
One thing that actually helped more than expected was forcing everything into tasks. Before, things would just appear in Slack or Figma and somehow turn into work. Now it was simple, if it’s not a task, it’s not happening yet. It removed a lot of that background noise.
Not everything was fixed. Deployments were still a bit messy at times, especially on staging. There were moments when people weren’t 100% sure what was where. That part took longer to sort out.
But overall, things got better. Not perfect but we’ve managed to remove that constant pressure we had before. People knew what was the priority. They were no longer switching every few hours.
This wasn’t about having perfect processes or removing every last change. It was about small steps: clarifying priorities, organising tasks and giving the team some visibility into the work. None of it fixed everything, but it made the day-to-day work feel less chaotic and a bit easier to handle.
Partner with us