Все сугубое imho:
1. Что должна предоставить нам компания, кроме работающего приложения, чтобы в дальнейшем штатные разработчики без труда подхватили проект?
Смена команды разработки -
всегда боль.
Если это резкая смена команды - то либо это заканчивается переписыванием 70-80% кода, либо закладывайте ~30% потраченных на разработку ресурсов на вхождение новой команды в курс дела.
На мой взгляд есть 2 способа этого избежать:
a) покупка изначальной команды в штат
b) участие ваших штатных разработчиков в проекте изначально (но мало кто из аутсорсеров на это пойдет)
ну а предоставить собственно должны исходники без обфускации, с читаемыми названиями переменных, форматированием согласно принятым стандартам языка (для php например это PSR), документацию.
2. Какое качество кода должно быть, есть ли какие-то стандарты качества, которые нужно отразить в договоре?
Отразить можно что угодно, и даже при желании попробовать проконтролировать можно - это снимет риски что исходный код не реюзабелен, но не снимет затраты на его изучение. По хорошему - попросить у аутсорсера какие-то внутренние документы регламентирующие их качество кода, показать это своей команде разработки, если все устраивает - включить в договор.
3. Как относятся компании к договору NDA?
Относится отлично, но NDA в РФ не работает по факту. Хотя все их очень любят подписывать по поводу и без.
4. Какую документацию по проекту мы должны получить от разработчика?
Ту которую хотят ваши разработчики. Для веб-приложения на мой взгляд программа минимум это
а) ТЗ по которому все пишется
b) описание внешних и внутренних компонент приложения, что они делают и как взаимодействуют
c) описание структуры БД, как объектов со связями, так и полей. Если где-то денормализация - обоснование её наличия и описание логики.
d) описание endpoint проекта если есть (апи, итд)
5. Нужно ли прописать в договоре пункт про бэкдоры, работает ли это на судебном уровне
В РФ imho нет.