Методология

Поделиться:

Это публичный отчет, содержащаяся в нем информация может быть использована при условии указания источника.

Количество респондентов

В 2022 году в нашем опросе приняли участие более 38 000 человек. Чтобы обеспечить максимальную репрезентативность выборки, мы очистили данные, следуя описанной ниже методике. В результате в основу отчета легли ответы 29 269 разработчиков из 187 стран и регионов, включая двоих респондентов, заявивших, что они из Антарктиды. Данные были выравнены методом взвешивания по нескольким критериям, как описано в заключительной части этого раздела.

Процесс очистки данных

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

  • слишком быстро заполненные анкеты;
  • анкеты, заполненные с одинаковых IP-адресов, а также анкеты, в которых совпадает подавляющее большинство ответов. Если два опросника, отправленных с одного IP-адреса, совпадали более чем на 75%, мы оставляли только тот, в котором были ответы на большее число вопросов;
  • анкеты с взаимоисключающими ответами, например: «возраст 18–20 лет» и «опыт работы более 16 лет»;
  • анкеты, в которых практически на все вопросы с возможностью выбора нескольких вариантов ответа выбран только один вариант;
  • если несколько анкет были отправлены с одного адреса электронной почты, мы оставляли одну, в которой было отвечено на большее число вопросов.

Снижение нагрузки на опрашиваемых

В этом году анкета содержала 527 вопросов. Конечно, мы стремимся охватить своим исследованием как можно больше тем и выстроить опрос максимально логично, но мы понимаем, что анкета получилась слишком большой.

Чтобы сократить время прохождения опроса, часть вопросов показывалась респондентам лишь выборочно.

  1. Так, из восьми следующих тематических блоков, каждому респонденту случайным образом показывались только два:
    • Непрерывная интеграция, баг-трекинг, управление версиями
    • DevOps и хостинг
    • Статический анализ, открытый исходный код и т. д.
    • Образование
    • Кросс-платформенность и микросервисы
    • Инструменты коммуникации
    • Безопасность
    • Удаленная и совместная разработка
  2. Мы случайным образом показывали разделы, посвященные самым популярным языкам, таким как Java, JavaScript, SQL, Python и GraphQL — их видели 50% квалифицированных респондентов.
  3. Кроме того, мы случайным образом скрывали некоторые вопросы, которые не были частью какой-либо цепочки.

Мы стремились к тому, чтобы респонденты затратили минимум усилий на прохождение опроса, но им все равно в среднем требовалось 30–40 минут. Нам кажется, что это слишком много, и в следующем году мы постараемся еще снизить нагрузку на респондентов.

Привлечение респондентов

Чтобы привлечь респондентов, мы использовали рекламу в Twitter, Facebook, Instagram и Quora, а также собственные каналы коммуникации JetBrains. Кроме того, мы размещали информацию об опросе в каналах IT-сообществ и просили респондентов делиться с коллегами ссылкой на опрос.

Страны и регионы

Мы собрали достаточно большое количество ответов из 14 стран: Аргентины, Бразилии, Великобритании, Германии, Индии, Испании, Канады, Китая, Мексики, США, Турции, Франции, Южной Кореи и Японии.

В этом году мы не размещали платную рекламу для привлечения респондентов из Беларуси, России и Украины. Ответы из Беларуси были объединены с полученными данными из стран Восточной Европы, Балкан и Кавказа.

Остальные страны были распределены по шести категориям:

  • Африка, Ближний Восток и Центральная Азия;
  • Восточная Европа, Балканы и Кавказ;
  • Северная Европа и Бенилюкс;
  • Остальные страны Европы;
  • Юго-Восточная Азия и Океания, Австралия и Новая Зеландия;
  • Центральная и Южная Америка.

В каждом географическом регионе (кроме Канады и Японии) не менее 300 респондентов были привлечены через внешние источники, например за счет рекламы.

Локализация

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

Снижение погрешности выборки

При подготовке отчета использовались данные, взвешенные на основании способа привлечения респондентов. За основу были приняты респонденты, узнавшие об опросе из внешних источников, например, привлеченные посредством рекламы в Twitter, Facebook, Instagram и Quora, а также по ссылкам, отправленным другими респондентами, поскольку они менее предвзяты по сравнению с пользователями JetBrains. Мы учитывали источник каждого респондента в отдельности, чтобы получить результаты на основе процедур взвешивания.

Взвешивание выполнялось в три этапа, чтобы наиболее достоверно отразить текущее состояние мирового сообщества разработчиков.

Первый этап взвешивания: корректировка с учетом численности профессиональных разработчиков в каждом регионе

На первом этапе мы собрали ответы, полученные при таргетинге стран, и применили к этим данным наши оценочные расчеты количества профессиональных разработчиков в каждой стране.

Сначала мы рассматривали ответы профессиональных разработчиков и работающих студентов, которые прошли опрос благодаря рекламе, размещенной в социальных сетях в 20 странах и регионах, а также данные респондентов, получивших ссылку на опрос от коллег. Хотя в этом году мы не собирали данные по России и Украине, мы включили эти две страны в отчет и взвесили, используя аппроксимацию данных прошлого года. Мы рассудили, что в этих двух странах много разработчиков, и, если мы исключим их из отчета, последствия сложно предсказать.

Мы взвесили все эти ответы в соответствии с нашей оценкой численности профессиональных разработчиков в этих 22 странах и регионах. Это гарантировало, что распределение ответов будет соответствовать количеству профессиональных разработчиков в каждой стране.

Второй этап взвешивания: соотношение трудоустроенных и нетрудоустроенных разработчиков

На втором этапе мы приняли, что доля студентов и безработных респондентов в каждой стране составляет 17%. Мы сделали это для обеспечения согласованности с методологией предыдущего года, поскольку это единственная имеющаяся у нас оценка их совокупности.

К этому моменту у нас было 14 330 ответов из внешних источников, взвешенных по региону и статусу занятости.

Третий этап взвешивания: вид занятости, языки программирования, использование продуктов JetBrains

Третий этап был довольно сложным, так как включал в себя расчеты, полученные путем решения систем уравнений. Мы взяли 14 330 взвешенных ответов. Отдельно для разработчиков из каждого региона, помимо статуса занятости, мы рассчитали доли каждого из более чем 30 языков программирования, а также доли тех, кто ответил «Я в настоящее время использую продукты JetBrains» и «Я никогда не слышал о продуктах JetBrains». Эти доли стали постоянными в наших уравнениях.

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

Решение системы из более чем 30 линейных уравнений и неравенств

Мы составили систему из более чем 30 линейных уравнений и неравенств, которая описывала:

  • весовые коэффициенты респондентов (например, Фиона из нашей выборки представляет 180 разработчиков из Франции);
  • конкретные значения их ответов (например, Пьер использует C++, трудоустроен на полную ставку и никогда не слышал о JetBrains);
  • необходимые соотношения между ответами (например, 27% разработчиков использовали C++ за последние 12 месяцев и т. д.).

Чтобы решить эту систему уравнений с минимальной дисперсией весовых коэффициентов (что важно!), мы использовали двойственный метод Гольдфарба — Иднани (1982, 1983), который помог нам рассчитать оптимальные индивидуальные весовые коэффициенты для 29 269 респондентов.

Остаточная погрешность

Несмотря на эти меры, нельзя исключить определенную степень предвзятости, поскольку пользователи продуктов JetBrains в среднем могли быть более склонны пройти этот опрос.

Кроме того, экосистема нашего сообщества развивается, поэтому, несмотря на взвешивание данных и все прилагаемые усилия, возможны флуктуации данных. В частности, в 2021 году среди респондентов резко увеличилось число PHP-разработчиков (в первую очередь за счет пользователей Laravel). Дело в том, что участники опроса делились ссылками на него в PHP-сообществах, а пользователи Laravel писали о нем в Twitter. В итоге доля PHP- и Laravel-разработчиков среди опрошенных оказалась непропорционально большой. Мы доработаем алгоритмы взвешивания, чтобы сгладить такие выбросы.

Мы обязательно продолжим совершенствовать методологию взвешивания. До встречи в следующем году!

Методология:

2022

Подберите себе инструмент

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.