Есть люди, которые имеют твердое моральное убеждение - никогда не связываться с фрилансерами. Например, Артемий Лебеде говорил что-то вроде: "У фрилансера всегда что-то случится, почему он не сможет выполнить работу в срок. Его собьет машина, он ляжет в больницу, случится переезд, землетрясение, роды у кошки - всегда что-то произойдёт. Итог будет один - он не выполнит работу в срок.
Сам я имею большой опыт работы с фрилансерами и соглашаюсь с каждым словом Артемия. Именно так и будет. Но если Ваша корпорация пока не может позволить себе штатного опытного программиста (а плохих нанимать нельзя ни в коем случае - только место будет занимать и нервы и время у всех отнимать), то стоит рассмотреть промежуточные варианты.
Например, программиста, который живет в Вашем городе и может приходить на выезды. Такой в самых сложных ситуациях быстро приедет и все исправит. То есть можно надеяться, что у Вас за спиной всегда будет надежный человек, который выручит в сложной ситуации. А когда приезжать не обязательно, то он может помочь удаленно - подключится к Вашему компьютеру, ответит на вопросы и все исправит. О деньгах не говорю, но определенно такая форма сотрудничества будет гораздо дешевле, чем программист на полный день.
Также можно работать с фрилансерами. Самое главное - контролировать программиста, даже хорошего, постоянно. И не связаться с мошенниками. К сожалению, на фриланс-биржах есть множество мошенников. Как правило, у них "пустой" аккаунт - то есть нет отзывов (или они 4летней давности), часто время регистрации на сайте - "на прошлой неделе". Поймите меня правильно, я не против давать шансы новичкам. Но ни при каких условиях, никогда, не отправляйте таким людям предоплату! Считайте, что это будут выброшенные деньги, если все-таки Вы поддадитесь и отправите деньги. Предлагайте что угодно - разделение задачи на маленькие части с постоплатой, работа через "гаранта" (безопасная сделка), но не отправляйте вперед деньги на пустой аккаунт. Разумеется, если Вы видите, что фрилансер работает часто и много со многими людьми, то можно и отправить какую-то сумму.
Дальше, после договоренности о сроках, всегда следите за выполнением работы каждый день. Просите разделить работу на части, чтобы каждый день можно было что-то посмотреть, проверить. Пусть даже Вы не сможете пока пользоваться тем результатом, который пришлют. Только в этом случае Вы сможете быть уверены, что программист занимается Вашей задачей.
Таким образом, главная особенность работы с удаленными программистами - необходимость регулярного контроля за работой, реагирование на срыв сроков или пропадание программиста, слежение за прогрессом работы.