Often the first image that comes to mind when one mentions software engineer is someone huddled up alone in a dark room hacking a web site. And while this might sometimes be the case, the truth is that software engineers at IPS and most other companies offering software engineering services, are usually not working alone.
Once while attending the SBU bi-annual job fair, I asked a representative from another company what kind of people he was looking for. His response shocked me. “Someone who lives and breathes code and could put his or her nose to the computer and just code away”. I told him I was looking for the exact opposite, wanting someone who had more to offer than just technical ability. I needed someone who was excited to collaborate. Someone I could stick on a call with a customer to provide assistance and insight that would ensure customer satisfaction.
Communication is a skill that is often overlooked in the realm of software engineering but it makes a real difference in many aspects of software and in ALL facets of engineering. Here are a few areas where communication is key for software engineers:
When developing products, there are a lot of potential failure points that can occur due to poor communication. The complexity of these systems involves many pieces that are worked on by different engineers and the integration of these pieces without proper communication can lead to many headaches and extra work. Not to mention, pieces of a system that do not grow together require hacking things at the last minute to make them work. Frequent updates can alleviate many problems associated with “dropping code over the wall”.
Worse than this is the engineer that is falling behind and has not informed anyone, putting the entire project in jeopardy because they didn’t raise the flag. The Agile Methodology, a growing process in both hardware and software development, seeks to enhance communication and collaboration by mandating daily meetings and clearly defining tasks to avoid problems. We have a core value here at IPS called “Straight Talk” to ensure that what one saying is timely, appropriate and true. Good communicators will let the team know that they’re struggling and get the help necessary before it is too late.
As a services company it is imperative that we are able to interface directly with our customers in a way that is valuable. The ability to articulate concepts and challenges so that customers can understand will benefit both parties involved. I’m reminded of a line from the movie Office Space where the character Tom Smykowski exclaims, “I deal with the customers so the engineers don’t have to”. At the end of the day an employee is as valuable as the tasks that they can perform. Having the ability and confidence to communicate effectively allows an engineer to interface directly with the customer, cutting out the middle-man and all the misinterpretations that may follow.
We’ve all had to have difficult conversations when things are not going as we’d expected. A strong communicator will be in contact with the customer along the way and be able to ensure them that the sky is not, in fact, falling. They’ll be able to communicate potential solutions to satisfy a customer in the wake of bad news.
There are only so many jobs that require developers to work in a silo by themselves. Engineers that show the capacity to facilitate useful conversation will be on the fast track to becoming the next managers.
True, not every engineer aspires to be a manager but even technical leads need to acquire this skill. In this case, written communication needs to be at a level that allows the requirements or specifications doc to convey the correct architecture to the development team. Communication cannot stop there. A concerted effort to ensure that the document is understood and amended by the team where necessary is extremely beneficial to the process. Ultimately, all forms of communication are essential and if you choose not to invest your time to hone your skills, you’ll likely be resigned to positions as an individual contributor. This could leave you without room for growth and seeing your peers passing you by in title and compensation.
Growth of the Team
A team that communicates together will grow and become proficient together. Thereby once one developer knows something we can assume that they all know it provided that clear and willing communication is flowing. I’ve come across my fair share of Senior Engineers who are not interested in working with eager young minds. Perhaps they can’t be bothered teaching what they figure they can just do themselves. This only weakens the team.
Day to Day
Human beings are social by nature. Connecting with our peers helps keeps us sane, whether it be via messenger, chat board, email, or vocal. For some, communication at work isn’t necessary for well-being but it sure does make the day go by a lot faster and helps to alleviate the dread of work. Plus, learning to be more vocal about your ideas and concerns can be very constructive in many ways. It is a skill that can be developed, learned and improved upon.
At IPS we strive to be great communicators and maintain an environment conducive to healthy collaboration. There’s nothing worse than customers feeling like they’re in the dark on their own application. “Straight Talk” allows us to establish a level of trust with our customers that ensures they’ll come back the next time they have a great idea.