I've been doing INTERNET development since 1994. At first I worked for ecommerce companies, and then went on my own as a developer/internet business consultant. I had a lot of successes and survived the boom and the bust. On my own i was the only one working on my projects. It was great not having a boss, but i was limited by the number of projects I could take at a time and my own skill sets. I was not scalable.
So time went on and I started outsourcing little pieces of work to off shore companies. It was always a problem. They over promised and under delivered. I tried China, Vietnam, India, and Mexico. And the whole escrow thing I just hated. The big problem was using those freelancer sites. I did not like the poor communication
I could not talk to anyone on the phone because they could not speak English, and even though they claimed to write in English, the grammar was horrible. Several times they did not finish the project and they just disappeared. No replies by phone, chat or email. Or they would quote a month and 4 months later I still had nothing.
The last company I had was OK, but they fired my programmers. That turned out to be great for me. The programmers called me and asked if they could work directly for me. They already know my projects and components that we distribute via joomlacache.com. So now, I have my own programmers, not outsourced via a third world country and company. These are not freelancers, they work directly for me.
I immediately went about the task of training them on how to communicate, and make reasonable quotes. Its been quite a process. We worked on quality control and out of that came something very important. We only accept tasks after they are checked for feasibility. We don't say yes to everything, but instead make sure the task is feasible and if not, help find another way to get the end functionality needed.
The next thing we instituted was a EVERY TICKET, EVERYDAY rule. Every single customer gets a response everyday, and if there is a question or problem, we let the customer know. We don't hide, run, or just stop. We communicate and find solutions and work arounds.
Another difference with our work model is that you communicate directly with the programmer. No middle man trying to explain everything. You assign the tasks and review them as needed. And if there are changes to be made, we make the changes. You can skype them, chat or call, and post to our ticket system. They respond withing 12 to 24 working hours.
But here is the best part. I am in the USA, and I personally intervene if there are any problems with the programmer, and do my best to keep projects on track. I'm proactive and call the customers in advance if there are problems. Our supervisors review each ticket everyday and we can tell in advance if we have a problem.
This does not mean that everything runs perfectly. We have good and bad days too. What it means is that I can intervene and get your projects done, fix communication issues, and keep things on track. And I am in the USA and speak english.
But even with all this, be it known, communication is a two way street. We have discovered that the communication issues are not always our fault. Our customers need to be good communicators too, able to explain and spec out their tasks, set forth their expectations, be ready to compromise, answer their tickets in a timely manor, and be available for skype chats when needed. Sometimes you just can't post your tasks and walk away. We need your involvement. Sometimes its' just a question, sometimes there is a need to brainstorm to find solutions, sometimes the programmer just does not quite see what your trying to do. Thats when its time to talk. And when the customer is not responding, we call and follow up with you to keep your project moving along.
------------------------------------
So its simple for us.
Two way communication, customer to programmer, programmer to customer
Daily interaction
Follow up
Brainstorming sessions
Testing of completed tasks
Pre quote feasibility studies.
A willingness for all to compromise.
And our promise
We will not disappear, we will answer the phone, emails and IMs. We will discuss problems with you and find solutions. We will be proactive and call you when needed and we will follow up.
I have been through everything you have been through, and I promise not to have my company do it to you too!!!
Your promise is to communicate with us, be involved in your work, work directly with your programmer, and be willing to compromise if needed.
Its about the end result and the needed functionality, maybe we cant get there your way, but as a team we can usually find a way.