Programmers are strange people who communicate in a bizarre language. Because of this, it is normal for most people to find communication with programmers to be a challenging task.
Being a programmer by profession, I recognize the challenges many of my clients have faced when contracting developers to work on their projects. Because of this, I have created a set of ground rules that have worked well for me over the years.
My goal is to now share some of these rules with you. All you need to do is follow them strictly and you will surely see an improvement in both communication, and efficiency in your website and mobile app projects.
Rule #1: Make Sure You Have a Clear Goal in Mind
Before you even think about picking up the phone, the first thing you need to do is get a clear understanding of what you are trying to achieve. If you yourself do not understand what your requirements are, how can you expect to communicate them to another person?
This can be achieved through the process of solo brainstorming. Spend a few minutes thinking about what you are trying to communicate. Ask yourself “is this a question or a feature”, “do I need to get a response now, or is it better to wait for the current task be completed”, “what goal am I trying to achieve”.
It may seem tedious at first, but in time and with practice you will be able to run through these questions in your head very quickly.
After you gain an understanding of what you are trying to communicate, if it can be classified as a requirement (i.e., a new feature, a new website, or an app etc.,), the next thing you need you need to do is actually write them down. Writing down your requirements achieves two things.
- It forces you to really think deeply about what it is you are requesting before making the request. Often times, after writing down our thoughts we realize that they could be expressed in a different way. Or even that they actually do not make sense.
- You now have a written form of communication you can use to get your message across. You can now call your developer and send your message as a text. In fact, you can skip the call all together and simply send an email.
This will save you tons of time on the phone.
Rule #2: For Questions and Comments, Stick to Text Based Forms of Communication
The truth is that software development (i.e., coding/programming) take a huge amount of deep thought and concentration to perform. It is also something that is heavily momentum based, kind of like writing a book.
Every time a programmer has to stop what they are doing to answer a phone call, it can take up to an hour to regain the momentum they had before the interruption. Answering phone calls is something that has a huge effect on a programmer’s productivity. So, if it can at all be avoided, please stick to emails and text it if you want them to get anything done.
Phone calls should only be used in the case of an emergency, or if it simply not feasible to write down what you have to say
If you have followed my previous suggestion, this should not be difficult for you as you have already written down your thoughts. If this is something that you need to have addressed in a timely manner, instant messaging apps are a good way to have your message delivered and answered within a relatively short timeframe.
It this something that is not time sensitive?
If so, a simple email will suffice.
Realistically, we all know if our questions and/or comments genuinely need to be answered quickly. You may think you are saving yourself time by calling, but you are actually costing yourself hours of development time on the other end.
Rule #3: Closely Track Outstanding and Completed Tasks Using Software
Following our theme of relying on written communication, the use of Project/Task management tools like Trello and Asana take this concept to a whole other level. Tools like this allow you map out an entire project from start to finish, documenting each step along the way. They allow you stay abreast of progress in real time.
Do not try keep all this stuff in your head
These tools also facilitate communication in the form of comments. This is great as you will now have a single source of truth for questions and answers. I have found that using task management tools for communication significantly speeds up the time is takes to get from idea to execution. I strongly recommend that you make the transition to using these tools if you are not already doing so.
Using Microsoft Excel
Though it is not ideal, you can also make use Microsoft excel to manage your website and mobile app projects if you are not dealing with a large team. Now, when I say “manage”, in this case what I mean is visually communicate your desired tasks and timelines with your programmer(s). This can be done by taking advantage of Microsoft Excel charts:
Rule #4: You Don’t Know What You Don’t Know, So Don’t Assume Anything
It is extremely common for people to go into software projects with pre-determined deadlines for delivery. The question is, are you equipped to determine what the deadlines for a software project or coding task should be?
To be frank, if you do not have any experience coding, there is literally no way for you to estimate how long a task can, will or should take. You should instead take the following approach:
- Contact your developer as soon as you have a want or need. This must be done before you begin strategizing or plotting timelines around the request. The goal here is to find out if what you are asking is possible to pull off. You may be surprised to find out that your request is not actually feasible, or that the developer you are hiring is not able to achieve your desired result.
- Once you have confirmed that what you want is indeed possible, your next step is to ask your developer(s) for a realistic timeline to complete the request. Keep in mind that programmers are notoriously terrible to estimating timelines, so the actual duration for completion will likely be longer than whatever they tell you. It is important that you do not start this conversation by first telling them your desired timeline. This will prime them to give you whatever answer pleases you instead of the answer that is realistic.
- If there is indeed an external factor at play that requires that your request be completed before the given timeline, your next step is to ask them what can be done to achieve a similar result in less time. There may be alternate approaches that can be taken. One that will give you a result that is close enough to what you are looking for.
What you are trying to avoid here staring a project with a timeline that is completely unrealistic.
Red Flag: if your programmer is suddenly able to pull off the exact same request in far less time after you have brought up your deadline, this is a strong indication that they are lying to please you … What changed?
Rule #5: Do Not Try to Use Pseudocode If You Are Not a Programmer
I must admit that this does not happen very often, but when it does it almost always results in a head scratcher. If you don’t know what pseudocode is or you are a software developer/programmer then great; just skip to the conclusion. However, if you are someone who kinda-ish knows what pseudocode is, please do not attempt to use it to communicate your ideas with your programmer(s).
Pseudocode is a very powerful tool that is normally used between software developers to communicate complex ideas and algorithms. This is “code” written in human language and can be directly translated into a programming language. However, as with any powerful tool, in the wrong hands it can cause damage. In this case the damage is done directly to the brain of your programmer.
If you do have any experience programming, writing pseudocode that is incorrectly formed can cause a lot of confusion. It will very likely result in an outcome that is not what you had in mind. If you are not 100% confident that you can express your thoughts accurately using this tool, just stick to normal words and sentences.
Conclusion
Of course, there are more intricacies to client-developer communication. But by strictly following these 5 simple rules you have already saved yourself hours of time.
If you are tired of misunderstandings and inefficient communications, another easy solution is to contact an expert who has years of experience interacting with clients and managing communications.
All you need to do is scroll down and fill out of the contact form at the bottom of this page to get in touch with him 😉.