In my last company we were burned by these "IT firms".
It is basically impossible to get any meaningful work done unless you have a person on site with the dev team.
You also need to write very very very detailed design docs and feature requirements.
If you absolutely must use services of these companies, try to get them work on peripheral features, instead of core application logic. You'll be minimizing long term technical debt damage risk to the project that way.
Depends on the company but here's what I have been through:
* Good dev team doesn't need "managing" but instead you become some kind of BS umbrella to protect them from arbitrary disruptions.
* Don't expect every developer to be as communicative as you expect. They may be unhappy but may not let you know directly. 1 on 1s are really important.
* Much less coding. Less than I am comfortable with.
It is basically impossible to get any meaningful work done unless you have a person on site with the dev team.
You also need to write very very very detailed design docs and feature requirements.
If you absolutely must use services of these companies, try to get them work on peripheral features, instead of core application logic. You'll be minimizing long term technical debt damage risk to the project that way.