Повидал несколько компаний, которые абсолютно по-разному относятся к тому, нанимать внешние компании для выполнения каких-то работ или пытаться все делать внутренними силами.
Одна компания фактически сто процентов разработки, настройки и т.п. делала внутри. Точнее даже так, поработала с несколькими внешними компаниями, получила отрицательный опыт и теперь все делает сама.
Вторая компания, наоборот, выносит постоянно какие-то проекты, задачи, направления во внешние фирмы.
Естественно, за наем внешних компаний говорит то, что обычно нанимают компанию обладающую большим опытом в том, что она будет делать, плюс это экономит время сотрудников на какие-то более важные задачи и в случае если компания в оффшоре, то еще и деньги экономит.
А то, что не всегда результат выходит желаемого качества, опыт не накапливается в компании и плюс дополнительные затраты.
Мои 2 цента по этому поводу. Как по мне, наймом со стороны пользоваться таки нужно, но делать это с умом.
Самое главное - это то, что никакая ключевая функция фирмы не должна выноситься из фирмы. Это правда очень стандартное и тривиальное замечание. Но капу чуть глубже, так как обычно проводят черту так - либо разработка ключевая (не выносим), либо не ключевая (выносим). Я бы проводил бы черту скорее по проектам/задачам. Например, разработка следующей версии, которую ожидают самые ключевые заказчики - вещь ключевая и доверить это сторонней фирме как-то нехорошо. А вот, например, медленная и планомерная поддержка старых версий - вполне таки вещь, которая не так критична.