The fact is that technical knowledge and skills are keys of making a good developer, however, have you ever wonder about how important is communication to developers?
Communication has become one of the most important aspects of the life, it’s necessary for anybody whether Technical or non technical. In software development, you are good at software technology skills, please know that it’s not enough, if you want to be grown in your career, you have to learn how to communicate and talk efficiently, which means communication skill. That is one of reasons why clients always Require their developers to be good at English language; however, communication always is in critical condition. Many companies focus on hiring developers who can communicate well and continue to invest in improving communication skills.
No one can deny that you have professional coding skills, but can you
spend all days for coding only? Actually, a big part of the day-to-day job of software developers is not spent knee-deep in code but rather working with a variety of people across the company.
Depend on good communication skills, as a software developer, you can let people know what you are doing, let them know if you need help, ask questions about things you are unclear on, and be respectful across the board in the meeting with team members, testers, managers, boss, and clients, etc.
Beyond meetings though, software developer has many communication channels particular to it.
- Ticket descriptions. Bug tickets should say how the bug was discovered, and how to reproduce it. Feature tickets should explain the motivation for the feature, and specify acceptance criteria.
- Ticket Comments attached to tickets are a great place for questions, answers, and information that might be of interest for implementation or testing or deployment.
- Commit messages. Every commit should explain its changes briefly and clearly. (If the changes are too big to summarize in a one line commit message, that might mean that the commit has too much in it.)
- Code and comments. Code should be as easy to read as possible. Your code should be communicating with the reader as well as with the machine. A good engineer chooses clear variable and method names, avoids “clever” logic, and follows agreed upon style guidelines. Comments should mostly be used for explaining why something was done a certain way, or to warn about subtle risks of breakage.
- Design and code reviews. Communication is for clarification feedback about how the system is changing, how to solve problems, change and improve designs, codes.
Having good verbal and written communication skills is an essential key point to grow in the career in generally, and in software career particular. Each channel of communication is very important to help software developer’s overall improvement. All type of communication needs to be continually practiced every day. Therefore, software companies should also spend more time, effort and money investing in developing communication environment for software developers. Creating an environment in which developers can safely communicate and trust each other, trust their managers and colleges to help them grow and improve those communication skills.
Software companies should create favorable conditions for all developers to have weekly presentation, it doesn’t not matter how long of presentation, at least a few times each time about anything they are interested in. These were great for practicing public speaking and presentation skills.
For individuals, developers should spend much time learning about new technologies and also trying to improve their ability to communicate with others.
Developers should find suitable environment where communication is continually practiced in a safe and trusted way that you can improve your communication skills day by day.
There are so many kinds of developers in different programming languages of software development, or you are maybe mobile developer, game developer or web developer. Before starting project, even in the process of doing project, sometimes you need to discuss directly with clients. Is it easy for you?
The degree of this will vary depending on your specific role, in a company or an individual person, but it is often the hardest case for many developers. In some case, you have to speak to someone who may have no technical awareness, and you must be able to explain to them why this idea is good, and that idea is bad, or why one request is not practical than another. This takes real skill. You have to understand the totality of the project systems well enough to be able to express and understand where the problems may be, and proffer alternate appropriate solutions. You also have to have a fundamental understanding of their end goals, seeing the bigger picture, as opposed to small bits and pieces of it. Only then can you begin to do a good job in properly defining and maintaining the project requirements. And, of course, without good communication skills, a project is doomed to failure.
If you are just an employee in a company, you don’t care about discussing with client, that might be fine, but you will be in same position all the time without advancement in your career. The better you are good at communication the further your career will advance and it will do so a faster pace.
Also, when you want to a make point and you want it to be reached to everyone clearly, you should communicate effectively, especially in technical discussions. You might be very sound and strong technically, but if you are not able to explain your point to everyone, even your strength will be not appreciated!
A project can be developed by team(s) or individual developer, but no project in the world had been successful because of tools, budget, code or infrastructure. It was always real people who made project successful. And to make something successful, all technical knowledge, experience and communication between people and people should be appreciated. Therefore, a professional developer needs to be good at both Communication and Technology.
By Thuy Le