По поводу аутсорсинга есть много мнений. Я считаю, что если процесс разработки ПО построен грамотно и есть хороший управленец, то спокойно можно заказывать разработку (или этапы разработки) на стороне. Как я это вижу:
Процесс разработки ПО должен состоять минимум из следующих этапов:
1. Бизнес-анализ
2. Системный анализ.
3. Проектирование интерфейсов.
4. Программирование.
5. Тестирование.
По хорошему, заказчик должен уметь проводить бизнес-анализ самостоятельно, чтобы оценить качество разработки с точки зрения бизнеса. Но нередки случаи, когда бизнес-анализ заказывают на стороне. Причем, нередко за этим стоят политические вопросы.
После бизнес-анализа этапы 2-4 можно смело отдавать на оутсорсинг - при грамотно проведенном бизнес-анализе (при грамотном сборе требований) напортачить в этих этапах можно, если исполнитель дилетант. А это будет видно сразу и будет возможность заказать работы по конкретному этапу у другой компании. Это не так дорого.
Последний этап тестирования тужно проводить совместно с разработчиками (они отвечают за техническую часть - чтобы при нажатии на кнопку программа не падала) и с теми, кто проводил бизнес-анализ (они отвечают за то, что разработанная поделка удовлетворяет заданным целям бизнеса). Поэтому отдавать этот пункт на аутсорсинг, как и первый, не стоит.
Но, боюсь, обсуждение аутсорсинга нужно проводить в другой ветке
![Smile :)](./images/smilies/icon_smile.gif)
Это современный и перспективный подход, но который нужно применять как лекарство - только правильно, без передозов и, желательно, по предписанию врача
![Smile :)](./images/smilies/icon_smile.gif)