Источники данных

Чтобы оценить количество разработчиков в той или иной стране, мы используем данные международных организаций, собирающих данные труда (таких как Евростат), а также обращаемся к государственной статистике по нужной стране (например, для Канады — к данным Статистического управления Канады). Поскольку разные страны по-разному определяют программистов и всех других специалистов, связанных с программированием, мы собираем данные, которые наилучшим образом соответствуют целям этого исследования. Например, в США ближе всего к понятию «разработчик» следующие специальности:

  • 15-1131 Computer Programmers (программисты)
  • 15-1132 Software Developers, Applications (разработчики ПО — приложения)
  • 15-1133 Software Developers, Systems Software (разработчики ПО — системное ПО)
  • 15-1134 Web Developers (веб-разработчики)

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

Наша модель

При построении модели мы исходим из численности населения и количества разработчиков в определенной стране (X) в нужный год (T). Мы используем свежие общедоступные данные по стране, чтобы определить ближайший год, для которого есть информация, необходимая для расчетов, и вычислить удельный вес разработчиков в стране в заданный год.

DevDensity = DevNumber/Population

Чтобы вычислить для этой страны количество разработчиков в последующие годы (T+1, T+2 и т. д.), мы принимаем удельный вес как постоянный коэффициент и применяем его к свежим данным о численности населения страны по оценке ООН. Ретроспективный анализ подтверждает правильность такого подхода. Чтобы вычислить количество разработчиков в тех странах, для которых у нас нет данных, мы используем данные по другим странам того же региона (обозначается «Y»). Для каждой страны Yᵢ мы вычисляем средний удельный вес за все известные годы. После этого мы выбираем 10%-ный квантиль среди итоговых усредненных значений. Это дает приблизительный удельный вес разработчиков в стране X.

Вычислив удельный вес разработчиков в целом, мы можем определить размер определенной категории разработчиков внутри сообщества. Зная долю интересующей нас категории в выборке данных исследования «Экосистема разработки» (например, процент разработчиков, использующих Python, от общего числа разработчиков), мы можем вычислить размер этой категории следующим образом:

CategorySize = CategoryShare х DevPopulation

Предположим, что нам нужно определить число разработчиков, использующих Python, в США в 2023 году.

У нас есть данные исследования «Экосистема разработки в 2023 году», и мы можем опираться на ответы на следующие вопросы этого исследования:

  • Укажите свою страну или регион
  • Какими языками программирования вы пользовались за последние 12 месяцев?

Из всех респондентов, указавших «США» как свою страну, долю разработчиков в США, использующих Python, можно оценить как взвешенную долю тех респондентов, которые указали «Python» в качестве языка программирования.

Тогда примерное число разработчиков, работающих с Python в США в 2023 году, можно вычислить следующим образом:

SizeUsaPython = ShareUsaPython х DevPopulationUSA

Ограничения метода

У используемой нами методологии есть ряд ограничений.

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

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

У нашей панели мониторинга ограничен выбор фильтров: доступны только те, для которых у нас достаточно данных.

Числа представляют собой лишь наиболее вероятное значение (усредненный прогноз), их не следует рассматривать как точную величину. Исходя из результатов ретроспективного тестирования модели, истинные значения могут отличаться от прогноза в среднем на 14% (показатель MAPE — средняя абсолютная ошибка в процентах). Это дает представление о том, насколько сильно истинное значение может отличаться от прогноза на панели мониторинга.

Калькулятор зарплат

Калькулятор зарплат основан на данных, собранных в ходе ежегодного исследования «Экосистема разработки». Данные о зарплатах были получены из ответов респондентов на вопрос об их годовой зарплате в долларах США после уплаты налогов и без учета любых бонусов.

У методологии калькулятора зарплат есть ряд ограничений:

  • Респондентам было предложено указать диапазон, в который попадает их зарплата, а не точные цифры. Таким образом, калькулятор зарплат может дать лишь оценку в пределах диапазона, более точный прогноз для него невозможен.
  • Факторы, влияющие на зарплату, могут зависеть от должности. Мы получаем ответы от людей на самых разных должностях (дизайнеры, руководители проектов, менеджеры продуктов и т. д.), и количество ответов недостаточно для точной оценки зарплат на разных должностях. Поэтому калькулятор зарплат показывает прогноз зарплаты только для профессиональных программистов (штатных работников с опытом профессионального программирования).
  • Если информация за какой-то год отсутствует, мы используем самые свежие доступные данные.
  • У калькулятора зарплат ограничен выбор фильтров по странам и языкам программирования, поскольку исследование дает репрезентативные данные только для некоторых стран и языков. Например, в списке стран отсутствует Австрия, поскольку у нас нет достаточного количества точек данных для точной оценки.