High-Bandwidth Communication
In engineering, communication is the process of transferring mental models from one person to another.
Forms of Communication
- Synchronous: Meetings, Pair Programming, Instant Messaging. Use for high-ambiguity, urgent, or emotionally sensitive topics.
- Asynchronous: Email, PR Comments, RFCs. Use for deep work, documentation, and non-urgent updates.
The Art of the Code Review
Code reviews are a social interaction first.
- Be Kind: “This could be improved” instead of “This is wrong.”
- Focus on the Code: Use “we” or talk about the code directly (“The variable name…”) instead of “you.”
- Explain ‘Why’: Don’t just give a command; provide the reasoning.
Active Listening
Communication isn’t just about talking.
- Mirroring: Repeating back what you heard to confirm understanding.
- Asking Open-Ended Questions: “Help me understand how this part works?”
- Validating: Acknowledging the other person’s perspective, even if you disagree.