TL;DR
What is the best way to complete projects efficiently?
There is no canonical answer to your question, because it is highly dependent on the organization, the skill sets of the teams, and the scope of the projects involved. However, it is safe to say that whatever your organization is doing is currently not working for you, and that's a valid point worth bringing up.
Projects Aren't Staffed by Algorithms
It doesn't matter whether your organization uses project teams, feature teams, or a "divide and conquer" approach. The central fallacy here is assuming that people behave like algorithms, and that your process problems can be solved by deciding between round-robin task assignment and least-used developer criteria. Such choices may work fine for a network load-balancer, but they fail miserably when applied to people or projects.
The 100% Utilization Fallacy
There is also another fallacy here. On PMSE, we call it the "100% utilization fallacy." This is a logical fallacy that assumes that the optimal use of team members involves keeping everyone busy at 100% of theoretical capacity, with no slack in the process. At a fundamental level, the fallacy is that being busy is functionally equivalent to being productive. They are not the same things at all.
Your Real Problems are Estimation and Prioritization
I feel that it is extremely difficult to keep to deadlines when at the same time you have to solve issues you come across, which you can't always predict a time frame for, and so most of my tasks that keep getting assigned to me start stacking on top of each other, and some being more important than others I have to sack most of the tasks given to me earlier on to complete the more urgent ones that came in late.
Based on your own description, your project is sub-optimal because the project team isn't doing an adequate job of:
- Estimating work packages accurately.
- Isolating new work from bug fixes or rework.
- Providing sufficient slack in the process to handle modest deviations in the schedule.
- Managing change requests or implementing formal change control.
- Triage and prioritization of incoming tasks.
All of these are fundamental process issues. From your description, the only process that you seem to have is:
Pour all the work into a bucket, stir vigorously, then let the developers try to serve themselves with a slotted spoon.
— CodeGnome's Recipe for Project-Failure Soup
I'm not sure what school of project management that comes from, although I suspect it comes from the Dribble Glass Project Management Framework™. Regardless of its provenance, it's not a sustainable practice. Your mileage may vary, I suppose.
Recommendations
Process issues aren't about blame; they are about improving workflow and efficacy. You should certainly bring these issues up as process issues with your manager and your project management team.
Be politic and polite, but don't be silent. If your organization isn't interested in continuous process improvement, then you may want to give serious consideration as to whether it's a sustainable and healthy environment, and one where you want to remain. If not, dust off your resume and look for another job that has project management practices that you feel more comfortable with.