There's significant differences between incompetence, inexperience, and toxicity. It sounds mostly like Person 1 is in the inexperienced category. He's probably trying to do his best, and given that stuff is getting done I wouldn't call him incompetent (I reserve that for people that truly don't know what they're doing). He may be a litle, or a lot, of his depth here. He's likely stressed as well.
Toxicity is somebody who is actively creating a shitty work environment. They put people down, prop themselves up, talk poorly of people, complain, never have a kind word, and generally make the environment aweful. These people aren't that common, as they've been rightfully fired from many positions. If you do encounter such a horrible person, you make formal complaints, and if nothing comes of it, you quit. (Note, sometimes people are just this way temporarily due to a bad day or stress, that is something different, should it subside at least.)
But, alas, for Person 1. Have you really tried talking to the guy? Asking why he assigns things this way, asking how you might help with the problem. Attempt to understand why he's doing it, and see if you can help. He might just be getting this stuff from a higher up. Have you complained to him about his behaviour? Have you complained to HR, in case you have one. That is, try to understand the whole situation and him.
Thanks for your reply!
So Person 1 is actually the most experienced out of all of us, and they are aware of the issues at hand (Persons 2 & 3 have spoken to them a couple of times before).
Person 1 is definitely stressed out with the workload, which is understandable, it's just difficult to try and get a point across when they are not willing to listen to you and the points we try to make so that we can tackle the challenges and make the environment a happier and more positive one.
I personally haven't spoken to them as of yet, I'm very apprehensive as I'm the newest person in the team and don't feel that I have a 'foot to stand on', so to say.
We're an extremely small team, we only have the 4 of us, so, unfortunately, there are no external resources like HR.
Definitely tread lightly, and if you can, phrase any suggestions in a way that's aimed at reducing Person 1's stress level, rather than pushing back on what they're asking for.
BAD: "These emergency features are killing the project timeline. I can't get any work done when I'm constantly sidetracked!"
GOOD: "I'm currently working on feature X. I can switch to feature Z, but I'll need an extra day to get X finished. Or, if you're okay with delivering X without the configurable Frob, I can still get it done on time."
Do your best to offer options and solutions, and try to support the team's goals. This is often referred to as "managing up", or "managing your manager." It's a hugely important skill.
But as I mentioned in my other comment, sometimes the situation is intractable, and it's simply time to look for a new gig.
Spot on. I still have a lot to learn about this world we work in, and how to see things from other standpoints, but this helps a lot, thanks!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.