Это публичный отчет, содержащаяся в нем информация может быть использована при условии указания источника.
Методология
Участники опроса
В исследовании экосистемы разработки 2021 приняли участие более 47 000 человек. Этот отчет основан на ответах, полученных от 31 743 разработчиков из 183 стран и регионов. Данные были выравнены методом взвешивания по нескольким критериям, как описано далее.
Процесс очистки данных
Мы использовали в исследовании частично заполненные опросники, за исключением случаев, когда респондент покинул опрос, не ответив на вопросы об основных языках программирования. Кроме того, мы использовали определенный набор критериев для выявления и исключения подозрительных ответов. Некоторые из признаков, на которые мы ориентировались:
- слишком быстро заполненные опросники;
- опросники, заполненные с одинаковых IP-адресов, а также опросники, где совпадает подавляющее большинство ответов. Если два опросника совпадали более чем на 75% согласно коэффициенту перекрытия Шимкевича-Симпсона, мы оставляли из них один, в котором были ответы на большее число вопросов;
- опросники с взаимоисключающими ответами, например: «возраст: 18-20 лет» и «опыт работы более 16 лет»;
- опросники, где практически во всех вопросах с возможностью выбора нескольких ответов выбран только один ответ;
- если несколько заполненных опросников были отправлены с одного адреса электронной почты, мы оставляли один, в котором были ответы на большее число вопросов.
Снижение нагрузки на опрашиваемых
Чтобы сократить время прохождения опроса, некоторые блоки были доступны только части респондентов. Из семи следующих разделов каждому респонденту показывались только два:
- Непрерывная интеграция, баг-трекинг, управление версиями
- Тестирование
- DevOps и хостинг
- Статический анализ, открытый исходный код и т. д.
- Образование
- Кросс-платформенность и микросервисы
- Инструменты коммуникации
По нашей схеме тем, кто, например, указал в качестве должности «тестировщик/QA-инженер» или «DevOps-инженер/разработчик инфраструктуры», был показан раздел, связанный с их работой, и еще один раздел, выбранный случайным образом.
Мы стремились к тому, чтобы респонденты затратили минимум усилий на прохождение опроса, но при этом полученная информация покрывала бы максимально возможное количество тем исследования. Однако мы обнаружили, что в среднем респонденты тратят на опрос больше времени, чем мы можем разумно от них требовать. В следующем году мы пересмотрим структуру опроса, чтобы еще больше снизить нагрузку на респондентов.
Таргетинг
Чтобы побудить потенциальных респондентов пройти опрос, мы использовали рекламу в Twitter, Facebook, Instagram, Quora и ВКонтакте, а также собственные каналы коммуникации JetBrains. Кроме того, мы размещали ссылки в некоторых группах пользователей и каналах IT-сообществ и просили респондентов поделиться с коллегами ссылкой на опрос.
Страны
В этом году мы изменили критерии таргетинга и расширили географию опроса, собрав ответы со всех концов мира. Респонденты были разделены на 6 регионов, кроме 18 стран, которые участвовали в прошлогоднем исследовании.
Мы собрали достаточно большое количество ответов из 23 стран и регионов. Сюда входят 17 стран, на которые приходится около 70% всех разработчиков в мире: Аргентина, Беларусь, Бразилия, Великобритания, Германия, Индия, Испания, Канада, Китай, Мексика, Россия, США, Турция, Украина, Франция, Южная Корея и Япония. Остальные страны были распределены по 6 регионам:
- Африка, Ближний Восток и Центральная Азия;
- страны Европы, не перечисленные выше;
- Юго-Восточная Азия и Океания, Австралия и Новая Зеландия;
- Центральная и Южная Америка;
- Восточная Европа, Балканы и Кавказ;
- Северная Европа и Бенилюкс.
Для каждого географического региона, кроме Канады и Японии, мы собрали не менее 300 ответов из внешних источников, таких как рекламные объявления. В некоторых регионах мы получили аномально большое число ответов из отдельных стран (например, из Непала и Кении). Часть таких ответов была исключена из анализа, чтобы повысить репрезентативность распределения.
Локализация
Чтобы свести к минимуму потенциальную предвзятость в пользу англоговорящих респондентов, опрос был переведен на 9 языков: испанский, китайский, корейский, немецкий, португальский, русский, турецкий, французский и японский.
Снижение погрешности выборки
Чтобы свести к минимуму погрешность, при подготовке отчета использовались данные, взвешенные на основании ответов респондентов, привлеченных посредством рекламы в Twitter, Facebook, Instagram, Quora и ВКонтакте, а также по ссылкам, отправленным другими респондентами. Мы учитывали источник каждого респондента в отдельности, чтобы получить результаты на основе процедур взвешивания. Взвешивание выполнялось в три этапа — так мы смогли составить наименее предвзятое представление о мировом сообществе разработчиков.
Первый этап взвешивания: совокупность профессиональных разработчиков в 23 регионах
На первом этапе мы собрали ответы, полученные при таргетинге стран, и применили к этим данным наши оценочные расчеты количества профессиональных разработчиков в каждой стране.
Мы рассматривали ответы профессиональных разработчиков и работающих студентов, которые прошли опрос благодаря рекламе, размещенной в социальных сетях в 23 странах и регионах, а также данные респондентов, получивших ссылку на опрос от коллег. Мы взвесили все эти ответы в соответствии с нашей оценкой численности профессиональных разработчиков в этих странах и регионах. Это гарантировало, что распределение ответов будет соответствовать количеству профессиональных разработчиков в каждой стране.
Второй этап взвешивания: соотношение трудоустроенных и нетрудоустроенных разработчиков
На втором этапе мы приняли, что доля студентов и безработных респондентов (которые нашли нас через те же рекламные кампании) в каждой стране составляет 17%. Мы сделали это для обеспечения согласованности с методологией предыдущего года, поскольку это единственная имеющаяся у нас оценка их совокупности.
В результате мы получили 19 281 ответ из внешних источников, взвешенных по стране и статусу занятости.
Третий этап взвешивания: вид занятости, языки программирования, использование продуктов JetBrains
Третий этап был довольно сложным, так как включал в себя расчеты, полученные путем решения систем уравнений. Мы взяли 19 281 взвешенный ответ. Отдельно для разработчиков из каждого региона, помимо статуса занятости, мы рассчитали доли каждого из более чем 30 языков программирования, а также доли тех, кто ответил «Я в настоящее время использую продукты JetBrains» и «Я никогда не слышал о продуктах JetBrains». Эти доли стали постоянными в наших уравнениях.
Затем нам потребовалось учесть еще две группы ответов, полученных из других источников: через внутренние каналы JetBrains, например аккаунты JetBrains в социальных сетях и нашу панель исследований, а также через рекламные кампании, ориентированные на пользователей определенных языков программирования. Так мы получили еще 12 462 ответов, которые тоже взвесили соответствующим образом.
Решение системы из более чем 30 линейных уравнений и неравенств
Мы составили систему из более чем 30 линейных уравнений и неравенств, которая описывала:
- весовые коэффициенты респондентов (например, Фиона из нашей выборки представляет 180 разработчиков из Франции);
- конкретные значения их ответов (Пьер использует C++, трудоустроен на полную ставку и никогда не слышал о JetBrains);
- необходимые соотношения между ответами (например, 27% разработчиков использовали C++ за последние 12 месяцев и т. д.).
Чтобы решить эту систему уравнений с минимальной дисперсией весовых коэффициентов (что важно!), мы использовали двойственный метод Гольдфарба — Иднани (1982, 1983), который помог нам рассчитать оптимальные индивидуальные весовые коэффициенты респондентов.
Остаточная погрешность
Несмотря на эти меры, нельзя исключить определенную степень предвзятости, поскольку пользователи JetBrains в среднем могли быть более склонны пройти этот опрос.
Кроме того, экосистема постоянно развивается, и возможны некоторые отклонения данных, несмотря на все наши усилия. Например, доля пользователей Kotlin, компилирующих приложения под JVM, увеличилась в наших данных из-за преобладания пользователей Kotlin/JVM в наших источниках, хотя в целом для языка Kotlin такие изменения не наблюдаются.
Мы обязательно продолжим совершенствовать методологию взвешивания. До встречи в следующем году!
Подберите себе инструмент
Спасибо, что уделили время!
Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.
Присоединяйтесь к JetBrains Tech Insights Lab
Участвуйте в опросах и UX-исследованиях JetBrains, чтобы помочь нам улучшить наши продукты. Среди участников исследований разыгрываются призы.
Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.