実施方法
回答者の範囲
2020年開発者エコシステムアンケートには、34,000人以上の方にご参加いただきました。本レポートは、18か国19,696人の開発者からいただいた回答を基に作成されています。回答は、以下の段落で説明するいくつかの基準に基づいて加重されました。本レポートに示すグラフは、各ポイントにつき300件以上の回答データを基に作成されています。
回答における負担の軽減
アンケートの長さを短くして回答の負担を軽減するため、一部のセクションは回答者にランダムに提示されています。ランダム化されたセクションは6つあり、そのうち2つのみを全回答者に提示しました。
- 継続的インテグレーション、課題追跡、VCS
- テスト
- DevOps とホスティング
- 静的解析、オープンソースなど
- 教育
- クロスプラットフォームとマイクロサービス
たとえば、回答者が「テスター / QA エンジニア」または「DevOps エンジニア / インフラストラクチャ開発者」を役職として選択した場合、その役職に限定された1つのセクションのほかに、もう1つランダムに選択されたセクションが示されます。
ターゲット
アンケートにご回答いただく回答者の招待には、Twitter 広告、Facebook 広告、Instagram、Quora、Vkontake、Codefund、Baidu、および JetBrains 独自のコミュニケーション経路を使用しました。
私たちの広告キャンペーンでは、ターゲット広告を2回にわたって実施しました。1回目は特定の国をターゲットとし、2回目はあまり使用されていないプログラミング言語をターゲットとすることで、そのプログラミング言語に対応するセクションの分散を縮小しました。対象言語は、Ruby、Scala、Rust、Swift、Objective-C です。また、回答者には、ほかの人にもアンケートへのリンクをシェアするように求めました。
国
アルゼンチン、ベラルーシ、ブラジル、カナダ、中国、フランス、ドイツ、インド、日本、メキシコ、ポーランド、ロシア、韓国、スペイン、トルコ、ウクライナ、英国、そして米国から十分に大量の標本を集めており、当社の標本は現在の開発者エコシステムを表しているものと見なしています。世界中の開発者のおよそ70%がこれら18か国を拠点としています。
ローカライゼーション
英語以外を母国語とする回答者に対する偏りを最小限に抑えるために、このアンケートは、中国語、フランス語、ドイツ語、日本語、韓国語、ポルトガル語、スペイン語、およびトルコ語の8つの言語でも行われました。
標本抽出バイアスの緩和
バイアスを最小限に抑えるため、レポートは、Twitter 広告、Facebook 広告、Instagram、Quora、Vkontake、Codefund、Baidu 広告、および回答者のリファーラルからの回答に関して加重したデータを基に作成されています。
加重手順に基づいて結果を生成するために、各回答者の情報源を個別に考慮しました。加重を3段階に分けて実施することで、世界中の開発者人口から得る結果のバイアスを低減するように試みています。
第1段階:18か国でのプロ開発者の人口
第1段階では、各国をターゲットする間に収集された回答をまとめ、それらのデータに各国のプロフェッショナル開発者の推定人口を適用しました。
まず、さまざまなソーシャルネットワークで18か国をターゲットとして掲載した広告から得たプロフェッショナル開発者と勤労学生に関するアンケートデータと、同朋間のリファーラルから得たデータを合わせて集計しました。次に、当社が推測した18か国のプロフェッショナル開発者の人口に基づき、すべての回答に加重しました。この加重により、各国のプロフェッショナル開発者の推定数に対応した回答の分布を実現しています。
第2段階:現在雇用されている開発者と無職の開発者の比率
第2段階では、各国の学生と無職の回答者数(同じ外部広告キャンペーンより取得)の比率を17%とすることに注目しました。この作業は、唯一利用できた推定人口であったことから、前年採用した方法との一貫性を保つために行われました。
その結果、国や雇用ステータスによって加重された外部情報源から10,116件の回答の分布を得ることができました。
第3段階:雇用状況、プログラミング言語、JetBrains製品の使用
第3段階は、どちらかといえば高度で、連立方程式を解いて得た計算が含まれます。加重された10,116件の回答を使用しました。各国の開発者について、雇用区分のほかに、30種以上のプログラミング言語の各シェアだけでなく、「現在、JetBrains 製品を使用している」と「JetBrains またはその製品を聞いたことがない」と答えた人のシェアを計算しました。これらのシェアは、方程式の定数とされています。
次のステップは、ほかの情報源からの回答グループを2つ追加することでした。JetBrains ソーシャルネットワークアカウントやリサーチパネルといった JetBrains 内部のコミュニケーション経路と、特定のプログラミング言語ユーザーをターゲットとしたソーシャルネットワーク広告キャンペーンです。これにより、9,580件の追加回答を得て、それらのシェアすべてを同等に維持できるように加重しました。
30個以上の一次方程式と一次不等式のシステムを解決
次を表す30個以上の一次方程式と一次不等式を使って連立方程式を組み上げました。
- 回答者の加重計数(標本から得たPierre(ピエール)は、フランスの180人のソフトウェア開発者を平均的に代表している、など)。
- 回答者の具体的な価値(Pierre はC++を使用し、正社員で、JetBrains を聞いたことがない)。
- 回答間の必要な比率(27%の開発者は過去12か月以内にC++を使用したことがある、など)
重み付け計数の分散を最小限に抑えこの連立方程式を解くために(非常に重要な作業です)、双対法(Goldfarb-Idnani法、1982年、1983年)を使用し、回答者に最適な個別の重み付け計数の照合を行いました。
根強いバイアス
JetBrains ユーザーは平均してアンケートに回答する意欲が高かった可能性があるため、こういった対策にもかかわらず、何らかのバイアスが存在する可能性があります。
また、JetBrains コミュニティエコシステムも増大しており、加重段階や努力を以てしても、いくらかのデータ変動があると思われます。たとえば、Kotlin 言語の全体的な使用率に変化はないものの、JVM 用にアプリケーションをコンパイルするKotlinユーザーのシェアは、情報源内の Kotlin / JVM バイアスにより当社のデータでは拡大しています。
今後も加重方法の更新と改善に努めていく予定です。次回の「DevEco 2021」にご期待ください!
適切なツールを検索
ありがとうございます!
当社のレポートがお役に立てられれば幸いです。友人や同僚の方とこのレポートをぜひ共有してください。
JetBrains Tech Insights Lab にご参加ください
ご質問やご提案がございましたら、surveys@jetbrains.comまでお問合わせください。