I think that nowadays people use the terms "programmer" and "software developer" interchangeably, so I won't be focusing on the choice of word. (Disclaimer: I prefer the use of term developer, because like you said, the work you describe is more than just mere programming).
I see the work of a software developer mainly as problem-solving. And for that, you don't have to know every detail of some specific technique/language. It helps if you have basic knowledge about the possibilities and restrictions of the technology you're using. But technical skills are easy to learn when necessary.
What I think are really important qualities for a good software developer? The ability to grasp the bigger picture, enthusiasm to learn and grow and also the will to change things when it's needed. On top of the communication skills that you already mentioned.
For sure, the ability to write efficient, maintainable and reusable code (clean coding practises) is a "good-to-have". But it's a fact that not all developers have the ability to write clean code. But if you're not willing to learn and improve, then there's a big chance that you end up being one of those "I do this because of some obscure reason x that I learned years ago and I don't care if it's right or wrong. I just work here."-developers. And those can be hard ones to work with.
Thanks for your comment. They're my thoughts exactly, but putting them like that doesn't make a very good post! 😋
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.