Originally posted at Medium
So we were working on the website optimization project over these few months. From drafting content to wireframes, site architecture to UI design, me and the team have spent about 1.5 months on refining the design as well as content for our marketing site oneskyapp.com.
We hired a freelancer on Upwork, a place where when you search for “Wordpress Development” u’ll get thousand of matching freelancers. We shortlisted three devs at that time, based on the recommendation of Upwork, freelancers’ job success rate and the amount of money they earned.
Of course, we did not expect front-end development would be our bottle neck. We have spent another 1.5 months on the development side — more accurately, on communicating. Although it was not as smooth as we thought, I have a lot of lesson learnt through out the process.
First and the most important lesson: candidate that asks right questions can often deliver better work. Looking back, the developer that we choose actually say yes to every requests that we have, and claim that he have experience on certain things — but turns out doesn’t. And he did not really have a fully understanding on the project/requirement of us. That actually leads more time of back-and-forth effort during the development timeline.
Give clear guidelines and bug list on every iterations
For instance, when I give the developers 10 bugs to fix, he often have 8 fixed, 2 unsolved (without telling why), and 2 new bugs in the new iterations. When the guidelines/bug list is not set properly, it is very easy for them to miss especially when they are working remotely that you cannot tell him at once.
So far, the best tool to communicate with developer is Basecamp. Basecamp is a great product management tool that we heavily rely on. By creating concrete to-dos, we found that developer performed so much better on bug fixing and accuracy. We also treat Basecamp as a file & spec sharing platform so that we can refer to any reference at once.
Devs are not visually sensitive as designers do. That’s why we are obligated to provide clear directions and guidelines.
It is also important to give out information bit by bit. Set up sprints and split it up so that the developers can digest your requirements.
Speak in their language
Well, we don’t speak Hindi(Our freelancer is based in India). But we try to “speak in their language” — instead of “wrong padding setting here”, say “reset top, bottom padding to 50px”. One common mistake of designer when communication with developers is the abstract instruction that they give. You don’t have to know how to code, but it is good if you speak in their language.
It would be ultimately difficult to communicate especially for animations and interaction effects. How would dev understand “make this one float from left to right and fade out”? What’s the duration? Transition position? How much to scale? It is hard to explain what’s in our head. One suggestion is to get them the code as example. Find code examples on sites like Codepen. Tell them the thing that you would like to amend – they could understand the thing in your mind better.