Где могут работать программисты

Где могут работать программисты, какие же есть области данной весьма широкой и нужной отрасли?
Так как разработка программного проекта включает в себя несколько стадий, то для работы на нем требуется несколько групп людей, решающих разные задачи.
Это:

1. Менеджер(ы) проекта, которые выполняют следующие функции:
- общение с клиентами и/или вышестоящим начальством
- прием заказа, обсуждение возможности, стоимости, сроков и деталей его выполния
- определение круга специалистов, которые будут работать над проектом
- распределение обязанностей между специалистами и составление плана работы
- контроль над исполнением составленного плана
- принятие решений или поручение принятия решений специалистам
Иногда нанимают системного аналитика для выполнения части этих задач.

2. Разработчики, которые выполняют следующие функции:
- проектирование и разработка программного продукта

3. Тестировщики, которые выполняют следующие функции:
- проверка работоспособности программного продукта
- поиск ошибок, неисправностей программы, каких-либо несоответствий
- донесение этой информации до разработчиков и проверка сделанных исправлений

4. Аналитики, которые выполняют следующие функции :
- сбор статистической информации, степени успешности проектов
- анализ перспективы идей и проектов
- анализ коммерческой ценности проектов, количества затраченных на него временных и трудовых ресурсов
- сбор отзывов от клиентов и донесение этой информации до разработчиков

5. Внедренцы, которые выполняют следующие функции:
- обучение будущих пользователей программного продукта
- решение проблем, возникающих при использовании продукта, при необходимости, совместно с разработчиками