I have never come across a poorly performing development team that didn’t also have a requirements problem.
Other things may be going on too, but improving the software requirements almost always delivers immediate results. Sometimes, nothing further is required.
Select a few requirements to inspect. Are they clear and concise? Do they effectively convey what is required? The software requirements will almost certainly be ambiguous or lack sufficient detail.
Development teams especially struggle with poor requirements when the people who can answer questions are not readily accessible or available. Junior, inexperienced and remote developers struggle more and may not speak up.
User stories provide a clear understanding of what to achieve and sufficient information for the developer to make the right implementation decisions.
Refinement sessions ensure stories contain the necessary information for developers to work without unexpected blockers or the need for unplanned, ad-hoc conversations.
Written communication becomes even more important for remote teams and asynchronous working.
If you are unhappy with your development team, they may need more detailed guidance.
Clear and effective software requirements can help with this.