Wow, we actually said it. Yes! Being a talented coder doesn't necessarily mean you'll make a great developer. Honestly, if some sort of evaluation questionnaire exists, I bet you that being great at coding would be maybe 10% of the equation.
This is particularly true when it comes to working with a team of developers or even just an IT team. Imagine having the most talented developer in your team, but he is rude, can't communicate, does whatever he want, doesn't accept criticism, doesn't listen, and best of all, doesn't care and goes home even if there's a crisis.
I recommend searching for the video "Performance vs. Trust" by Simon Sinek and watching it at least twice. This sums up my argument very well. It's equally beneficial if you're someone of absolute trust but not that talented or someone who is overly talented but not so trustworthy. In either case, you'll get ideas about what you can do to improve if you want to be an exceptional developer.
In our company, we always prefer to work with highly reliable people that are good, rather than those who are talented but not so reliable. This gives priceless peace of mind to their team and their managers in particular. Imagine your manager gets stressed out by one of your fellow team members and can never be 100% focused when you interact with him. That's not fair to you.
Working in a team is not so complex. It's never about you and you alone. It's about the team and the company as a whole, which means that sometimes you'll have to take one for the team.