방법론
응답자 범위
개발자 에코시스템 설문조사 2020에 참여한 인원은 34,000명 이상입니다. 이 보고서는 18개국의 개발자 19,696명의 응답을 바탕으로하며, 응답에 대한 가중치는 다음 문단에 설명된 바와 같이 여러 기준에 따라 적용되었습니다. 보고서의 모든 그래프는 각 포인트에서 수집한 최소 300개 이상의 응답 데이터를 기반으로 구성되었습니다.
답변에 대한 부담 완화
설문조사의 길이를 줄이고 답변에 대한 부담을 완화하기 위하여 일부 섹션은 응답자에게 무작위로 표시되었습니다. 무작위로 표시되는 섹션 6개 중 각 응답자에게는 2개만이 표시되었습니다.
- 지속적 통합, 이슈 트래킹 및 VCS
- 테스트
- DevOps 및 호스팅
- 정적 분석, 오픈 소스 등.
- 교육
- 크로스 플랫폼 및 마이크로서비스
예를 들어 응답자가 본인의 직책으로 테스터/QA 엔지니어 또는 DevOps 엔지니어/인프라 개발자를 선택한 경우, 해당 직책과 관련한 섹션 및 무작위로 선정된 섹션이 필수적으로 제시되었습니다.
대상자 선정
설문조사를 완료할 잠재적 응답자를 모집하기 위해 Twitter 광고, Facebook 광고, Instagram, Quora, Vkontakte, Codefund, Baidu 및 JetBrains 자체 커뮤니케이션 채널을 활용하였습니다.
당사가 활용한 광고 회사들은 크게 두 단계의 대상 설정 과정을 거쳤습니다. 첫 번째 단계에서는 특정 국가를 대상으로 정했습니다. 두 번째 단계에서는 해당하는 프로그래밍 언어 섹션에서의 분산을 줄이기 위해 드물게 사용되는 프로그래밍 언어를 대상으로 정했습니다. 저희가 대상으로 정한 언어는 Ruby, Scala, Rust, Swift, Objective-C 였습니다. 또한, 응답자들에게 동료들과 설문조사를 공유하도록 요청하였습니다.
국가
아르헨티나, 벨라루스, 브라질, 캐나다, 중국, 프랑스, 독일, 인도, 일본, 멕시코, 폴란드, 러시아, 한국, 스페인, 터키, 우크라이나, 영국 및 미국으로부터 충분히 많은 표본을 수집하였습니다. 전 세계의 모든 개발자 중 70%는 해당 18개 국에 거점을 두고 있으므로 이 표본이 현재 개발자 에코시스템을 대변할 수 있다고 판단하였습니다.
로컬라이제이션
비영어권 응답자에 대한 편차를 최대한 최소화하기 위하여 설문조사는 추가적으로 8개의 언어(한국어, 중국어, 프랑스어, 독일어, 일본어, 포르투갈어, 스페인어, 터키어)로도 제공되었습니다.
샘플링 편향 감소
편향를 최소화하고자, 이 보고서는 Twitter 광고, Facebook 광고, Instagram, Quora, Vkontakte, Codefund, Baidu 및 응답자의 추천을 통해 수집된 답변과 관련하여, 가중치를 적용한 데이터를 기반으로 하였습니다.
가중치 적용 방식을 기반으로 결과를 도출하기 위해 각 응답자의 출처를 개별적으로 고려했습니다. 또한 전 세계 개발자 모집단에 대한 편향되지 않은 이해를 위해 가중치를 3단계에 걸쳐 적용했습니다.
가중치 적용 첫 번째 단계: 18개국의 전문 개발자 모집단
첫 번째 단계에서는 여러 국가를 대상 국가로 선정하여 응답을 수집하고 국가별 전문 개발자 모집단의 추정치를 해당 데이터에 적용했습니다.
먼저, 18개의 대상 국가의 다양한 소셜 네트워크에 게시한 광고를 통해서 전문 개발자 및 일하는 학생을 대상으로 한 설문조사와 여러 동료의 추천을 통해 실시한 설문조사를 통하여 데이터를 수집하였습니다. 다음으로 해당 18개국 개발자의 모집단 추정치에 따라 모든 응답에 가중치를 적용했습니다. 이러한 과정을 거쳐 응답 분포가 각 국가의 전문 개발자 수의 추정치에 부합하도록 만들었습니다.
가중치 적용 두 번째 단계: 현재 재직 중인 개발자와 미취업 개발자의 비율
두 번째 단계에서는 유일하게 적용할 수 있는 모집단 추정방법인 전년도의 방법론과 일관성을 유지하기 위하여 모든 국가의 학생과 무직인 응답자(동일한 외부 광고 캠페인을 통해 응답한)의 비율을 17%로 설정했습니다.
결과적으로 국가 및 고용 상태에 따라 가중치를 적용한 외부 데이터 소스를 통해 10,116개의 응답을 구성하였습니다.
가중치 적용 세 번째 단계: 고용 상태, 프로그래밍 언어, JetBrains 제품 사용
세 번째 단계는 연립 방정식을 통해 얻은 계산이 포함된 더욱 정교한 과정이었습니다. 가중치가 적용된 10,116개의 응답을 사용하여, 각 국가의 개발자의 고용 상태에 추가로 30개 이상의 프로그래밍 언어별 점유율, "현재 JetBrains 제품을 사용하고 있습니다" 및 "JetBrains나 해당 제품에 관해 들어본 적이 없습니다"라는 응답한 사람의 비율을 계산하여 연립 방정식의 상수로 사용했습니다.
다음 단계는 기타 출처에서 수집한 응답 그룹 2개인 JetBrains 소셜네트워크 계정, 연구 패널과 같은 JetBrains 내부 커뮤니케이션 채널을 통한 그룹과 특정 프로그래밍 언어 사용자를 대상으로 한 소셜네트워크 광고 캠페인 그룹을 추가하는 것이었습니다. 이를 통해 9,580개의 응답을 추가로 수집하였으며 이 비율을 동일하게 유지하기 위해 추가 응답에 가중치를 부여했습니다.
30개 이상의 선형 연립 방정식과 부등식 풀기
다음과 같이 기술된 30개 이상의 선형 연립 방정식 및 부등식을 구성했습니다:
- 응답자에 대한 가중 계수(예: 표본의 Pierre는 평균적으로 프랑스 소프트웨어 개발자 180명을 대표합니다).
- 해당 응답의 특정 값 (Pierre는 C++를 사용하는 풀타임 근무자로, JetBrains에 대해 들어본 적이 없음).
- 응답자의 필수 비율(예: 개발자 중 27%가 지난 12개월간 C++을 사용 등)
가중 계수의 최소 분산으로(아주 중요!) 이 연립 방정식을 해결하기 위해 Goldfarb와 Idnani의 쌍대방법 (dual method, 1982, 1983)을 사용했습니다. 이는 응답자에 대한 최적의 개별 가중 계수를 맞추는 데 도움이 되었습니다.
여전히 존재하는 편차
이러한 조치들에도 불구하고 JetBrains 사용자들은 평균적으로 더 적극적으로 이 설문조사에 참가하였기 때문에 일부 편향이 존재할 수 있습니다.
또한 커뮤니티 에코시스템도 발전하고 있으며, 단계적 가중치와 여러 노력에도 불구하고 데이터 변동이 존재할 수 있습니다. 예를 들어, JVM 애플리케이션을 컴파일하는 Kotlin 사용자의 점유율은 데이터 소스의 Kotlin/JVM 편향으로 인해 상승하였지만 Kotlin 언어 전체 점유율에 대한 변경은 없습니다.
앞으로도 가중치 적용 방법론을 지속적으로 업데이트하고 개선할 예정입니다. DevEco 2021 조사 결과도 기다려 주세요!
읽어주셔서 감사합니다!
이 보고서가 여러분에게 도움이 되었길 바랍니다. 이 보고서를 친구와 동료에게 공유해 주세요.
JetBrains Tech Insights Lab에 참여하세요
질문이나 제안이 있으면 surveys@jetbrains.com으로 연락해 주시기 바랍니다.