Controversial opinion time: the single most important skill for a software engineer in most business environments is the ability to communicate. A working knowledge of the tech stack is necessary, as well as a general aptitude towards critical thinking, but what really makes or breaks a developer is their ability to share information with both technical and non-technical people. This skill makes an average developer great, an above average developer a rockstar (or ninja, or whatever), and even helps those who might not be the strongest coders become useful contributors to the team.
There is some advice out there suggesting that communication should be terse, and limited to the bare essentials. Personally, I don't buy that for engineers. This doesn't mean every email should be a manifesto, however I don't think short phrases are the best way to communicate. In fact, I've found the opposite to be true, particularly when dealing with technical ideas.
My default setting is to be as explicit as possible, leaving little room for ambiguity. This is ultimately more time consuming, but this cost can be repaid by orders of magnitude if misconceptions are avoided in requirements, user stories, code review, etc.
When in doubt, overcommunicate. Take the time to write something that cannot reasonably be misconstrued. If you're 95% sure that everyone is on the same page, then spend the extra minute or two to become 100% sure. Don't send the CEO-style one sentence email, unless you're comfortable with one sentence quality.
~ MADReturn to Blog