Hi,
Hi I'm a developer that for the most part has only ever worked for companies that outsource to startups.
Here are my two cents if you are going to outsource to a development company.
Ask to meet the developers that are going to work for you, build a good working relationship with them but never get involved operationally with their work load. Its true for the most part their attention is split among more than one project and they are for the most part powerless about it. If you complain to them about the amount of work getting done it will only serve to alienate them. Remember they can be our best ally or your worst enemy when it comes to getting work done. If management refuses you the opportunity explain to them your feeling about it and that you just want to explain your vision to YOUR team, if they still refuse its a big red flag about how they operate.
Good developers want to spend time with a client as much as the client wants to spend time with the developer. It helps us understand, fill in the blanks and build the project inline with the growth direction of your business.
Never blame the developer for poor delivery or work done, you have no idea about his work environment. Take it up with management as much as you have to until things improve. If the developer is underperforming they will make a plan if they need to, if management is suffocating a good developer with other work they will loosen up and allow more time on your project.
Choosing a good parter is about choosing a good developer as much as a good company, two separate clients can have to completely opposite experiences based on who is actually working on their projects.
The people you are outsourcing too are your team, treat them as such. If you trust them act like it, be willing to take criticism and listen if they complain about something take it into consideration, but never forget that ultimately it's still your money and your business. If you don't trust them find someone else.
Remember we will never understand your business at the same level you do, but you will never understand our business like we do, the movement of the market place, what new concepts and technologies are trending, what really works or is just another buzz word. Ultimately we are here to help and tomorrows supper is depended on what we do today.
I have heard the speech about a tech confounder more than once, it can be helpful, but I have fixed about more code from these tech cofounders as anyone else, if they move in the same space as you they have not spent all their time as developers, by common sense they cannot match a full time developer. If you have found a development house you trust and listen too they can give you all the guidance you need.
People only have as much passion as you give them, if you are not prepared to engage them on your idea as equals why expect them to feel involved, a lot of developer has a passion for what they do especially if you bring them a good idea and a good attitude.
Don't bring me an idea, what I really need is a business plan. The difference? An idea is something that happens late at night in front of the TV or computer, a business plan is the result of time and effort. Ideas are subject to change, lots of it and its very hard to code for that especially if you factor in that no one knows where its gonna end up. With a business plan I know how to measure the success of the project and my success, I know what needs to done and how, I know how write code that will scale in the direction of your business. I know what the deadlines are. With an idea its all up in the air.