What we often see in software development is that developers who are better at communicating are the ones who get better jobs, get highers raises and have more success in their careers. I have seen developers who are really good at communication and terrible at software development who walk away with the best offers.Nowadays experience counts for less, trust even less… just communication skills are the way to get a good promotion, but there are some exceptions.
If you are really good at communicating with your clients that is the best way to advance in your career. People will think more highly of you if you communicate well, that is certainly a given. But does quality of the code you produce actually count? Well, that depends heavily on who’s in charge…
One of the exceptions is, can you actually deliver on your promises? Time management is really rough in software development. It is not just hard, it is so bloody hard you could write an entire thesis about it. Some experienced project managers take in a ‘fudge factor’ of developer’s estimates because they know in advance that a time claim of a developer is worth less than Chilean peso. If you are right on the money with your estimates and consistently deliver on your promises… things look… well, VERY promising.
Quality of code
Coding is hard, really… it is one of the toughest jobs out there. One mistake of code can linger on in software for sometimes YEARS before it is even discovered and done TONS of damage before it is fixed. Reading someone else’s code is A LOT harder than reading your own code, because that means you need to know how someone else thinks. If your code is easy to understand and outright good quality, that’s a big win!
Being a team player
Being a team player doesn’t means you need to be able to communicate with others… but it really means you are willing to draw the ‘short straw’ and be ‘happy’ you did. Less complaining, more quality work, that’s all it takes to become a likable fellow.
Other key qualities
I’m not writing a manual on how to be ‘that perfect programmer’, but simply showing some consideration and knowing that actions speak a LOT louder than words (especially when you have good management in place), your career will be quite good if you can deliver good work on time 🙂