For me the perfect developer (if there is such a person) has these qualities:
- Friendly: is respected and liked by all they work with and are always approachable (even in times of stress)
- Humble: has great humilty and is not driven by ego
- Calm: doesn't get emotive within discussions (including discussions that are both in their favour and those that aren't)
- Understanding: appreciates that business requirements do change regularly and that there are no perfect scenarios; so is able to adapt to problematic situations in the appropriate manner
- Agile: recognises when they are potentially moving down a rabbit hole/time sink/yak shave and will successfully re-evaluate the situation and refocus their attention
- Patient: appreciates that no dev is born equal and so varying soft/practical skills will be encountered
- Experienced: has a wide ranging skill set with relevant practical experience and most importantly realises the fundamentals of simple code design and recognised patterns
- Consistent: by being consistent in their development approach they faciliate easier rotation of developers when resources are restricted/restructured
- Wise: knows when and where a particular technology is appropriate to use (and when not appropriate)
- Analytical: is pragmatic and can break down complex problems into logical smaller tasks
- Articulate: able to communicate clearly their ideas to people of all technical levels
- Open: continuous documentation and visibility into design and development progress; ensuring good communication
- Reasonable: understands a problem's sense of proportion; what's important and what isn't (e.g. when something is a big deal and worth pressing; and when it isn't and so not prematurely raising red flags)
- Passionate: enjoys their craft; always keen/open to new experiences and learning new things
There's one missing: Cheap :)
but I totally agree with your list.