Custom software development is a technical process involving a lot of time at a computer, but it is not without a fair share of social interaction as well. Good developers need to be able to interact with their clients in order to provide progress reports and receive constructive feedback. There are a variety of different ways a developer can choose to interact with a client, but some are more effective than others. Choosing the most effective method of communicating will help both parties clearly justify their message and mitigate any uncertainty on issues that have risen in the development process. Developers should also be prepared to talk with clients about expectations for projects in a way that does not upset them or make them feel lost and confused. Efficient communication can improve project results and create a better work environment.
There are four components to any message: the intended meaning of the message, what was literally said by the speaker, what was heard by the listening party, and what the listening party interpret the message that they heard to mean. Unfortunately, the intended message that the speaker is trying to convey might differ greatly from the listeners' interpretation. What's worse, the listeners' interpretation is the only aspect that makes a difference. In custom software development, an unclear delivery of a message may drastically change a client's expectations from a developer. A developer might think they're being crystal clear in what they've promised to provide for the client, but weeks down the road when the client comes back confused with their new software, that developer might find out the promises they made were not totally explicit.
Face-to-face communication provides the best chance of successfully delivering a message. Over 90% of communication is non-verbal, meaning that interaction is less clear over non-verbal mediums. However, face-to-face communication is not always possible. Speaking on the phone is the second-best option, since although body language is not visible, the listener still can hear tone and inflection in the speaker's voice. E-mail fails to provide anything but text on a screen, and how the reader interpret that text can vary greatly depending on the mood they're in it. Plus, if there's any uncertainty to what a statement in the e-mail might mean, the person who receives the message must write back to the sender and wait for a response. This process takes time and creates confusion. Even instant messaging is a superior alternative to e-mail since it allows for real-time interaction.
When preparing for a meeting with a client, developers should always be able to provide an agenda for what will be discussed. Never leave it up to the client to provide an outline for the meeting. It impresses clients when the developer already has talking points, even if it is just a list of topics that need to be addressed. Custom software development is expensive, and clients expect to be able to see a plan of action. They do not expect to direct the project themselves.
Providing clear feedback can be tricky, and it's important to remember a few simple tips in order to seem friendly and non-condescending. First, avoid making statements that start with the word "you." Stating that "you said" this or "you wanted" is aggressive and sounds overly critical. Instead, change the statement to start more friendly. For example, "I thought this is what you wanted," or "I was under the impression" are two phrases that sound much more considerate. In a similar vein, asking why a certain action was taken puts a certain amount of pressure on the person being addressed. Instead, asking "what was the reason behind this?" may elicit a more friendly and understanding response and avoid putting the recipient on the defensive.
Clear communication leads to better project results and improved customer relations. It's important to convey messages so clearly that the intended meaning gets across to the listener. Communicating in person or at least over the phone will increase the likelihood of the intended message being received. Preparation for friendly interaction between the client and developer will increase the productivity of the meeting and leave both parties satisfied. Perhaps the most important advice relating to client relation is to remember the three "be's": Be brief, be bright, and be gone. Get the point across in an intelligent and friendly fashion and then move on. Custom software development is a technical practice, but it is important to interact in a way that is informative and friendly so that the best possible results can be achieved.