In college, I assumed that success in software engineering came from technical skills—that superstar programmers were those that could write the fastest/best/most code. But after entering the industry, I realized that smart software engineers are a dime a dozen. What sets engineers apart isn’t technical ability but communication skills.
Communication is important because software engineers operate within a team and business. You can’t just build what’s beautiful; you need to build what’s right for your company. If your project is falling behind schedule, you need to be able to communicate what’s blocking you to potentially non-technical teammates. And of course, you need to establish rapport with your coworkers.
No set of tips can make somebody a good communicator—it’s a skill that requires dedicated practice. I’m hoping, however, that the tips I’ve included below can help. I’ve collected them in my years as a software engineer and engineering manager. They’re generally organized by communication medium. Some of these tips apply to organizations and others to individuals, though most apply to both.
First up, some general communication tips: