デベロッパーとの 1 対 1 の会話から収集した、デベロッパーの主な課題に関する分析情報のコレクション。
数か月前、Paul Kinlan が 2021 年のデベロッパーの主な課題について投稿しました。この記事では、まず過去 2 四半期の最新情報から紹介するのが適切でしょう。数字は少し変動していますが、ランキングは変わっていません。
| 課題 | 2021 年第 1 四半期 | 2021 年第 2 四半期 | 2021 年第 3 四半期 | 2021 年第 4 四半期 |
|---|---|---|---|---|
| ウェブ プラットフォームやウェブ標準の変更に対応する。 | 27% | 26% | 27% | 22% |
| 多数の新規および既存のツールやフレームワークに対応する。 | 26% | 26% | 25% | 21% |
| デザインやエクスペリエンスをブラウザ間で同じように動作させること。 | 26% | 28% | 24% | 21% |
| 複数のブラウザでテストする。 | 23% | 24% | 20% | 20% |
| セキュリティ対策の理解と実装。 | 23% | 25% | 20% | 19% |
Paul のブログ投稿で述べられているように、これらの課題に対処する必要があります。そのための大規模な取り組みの一環として、同僚の Kadir Topal と私は 18 人以上のデベロッパーにインタビューを行いました。Google の目標は、デベロッパーの主な課題を解決するための道筋を調査し、理解を深めることです。
デベロッパー ディスカッション
免責事項: これらの分析情報は、デベロッパーとの少数の会話に基づいています。「すべて」または「一部」という表現は、コミュニティ全体ではなく、インタビューしたデベロッパーを指します。これらの分析情報をより広く適用するには、さらなる調査が必要です。
これらの会話を通じて、ウェブ デベロッパー コミュニティがいかに素晴らしく、多様性に富んでいるかを改めて実感しました。お話しいただいたすべてのデベロッパーの皆様に感謝いたします。25 年以上の経験を持つデベロッパーもいれば、2020 年に始めたばかりのデベロッパーもいました。コンピュータ サイエンスの学位を取得してキャリアをスタートさせたデベロッパーもいれば、独学でキャリアをスタートさせたデベロッパーもいます。一部のデベロッパーは、積極的に新しい情報を探し、ブラウザのリリースノートを読んで最新情報を把握しています。また、同僚や友人から新しい情報を得ているデベロッパーもいます。複雑さは仕事の一部であり、挑戦することを楽しむ人もいれば、単に仕事を終わらせたいだけの人もいます。こうした課題の解決を考える際には、この多様性を念頭に置くことが重要です。
すべてのデベロッパーに共通することの一つは、全員が CMS またはフレームワークを使用して作業を行っていることです。WordPress、React、Bootstrap、Angular、Tailwind がすべて言及されましたが、本番環境でバニラ ウェブ プラットフォームを使用しているデベロッパーはいませんでした。プロジェクトの開始時にフレームワークを選択することは難しく、デベロッパーは技術要件以外の要件を考慮することがよくあります。たとえば、そのフレームワークを使用するデベロッパーを簡単に採用できるかどうかなどです。フレームワークと CMS がソリューションに含まれていなければ、デベロッパーの課題を改善することはできません。
ウェブ プラットフォームについて言えば、ほとんどのデベロッパーは、プラットフォームをその上で開発を行うものとして理解しています。これには、ウェブ プラットフォームの従来の定義だけでなく、CMS、フレームワーク、ツール、ポリフィルも含まれます。多くの場合、それらの最新情報を把握することが最も困難な部分です。この結果、質問の解釈が変わり、アンケートを更新して、より明確な複数の部分に分割する必要があることがわかりました。
もう 1 つの曖昧な領域は、ウェブ標準の定義です。標準への準拠に関する例を尋ねたところ、多くのデベロッパーは、ベスト プラクティスへの準拠が難しいことを指摘しました。これは、アンケートで明確にする必要があるもう 1 つの領域です。
デベロッパーは、特定のユースケースとパターンを実装する際のベスト プラクティスを探します。ベスト プラクティスの情報源としてブログ投稿や StackOverflow が挙げられていますが、デベロッパーは、読んでいる情報が本当にベスト プラクティスなのか、最新の機能や API に対応しているのか疑問に思うことがよくあります。より公式な情報源でそれらを確認したいと考えています。
新しいユースケースを可能にする機能や API に対応することは、それほど大きな問題ではありません。デベロッパーは、ベスト プラクティスの変更につながる機能、API、プラットフォームの変更に苦労しています。
ほとんどのデベロッパーは、互換性が最大の課題の一つであると考えています。Compat 2021 や Interop 2022 などの取り組みにより状況は改善していますが、デベロッパーがこの問題を解決済みと見なしていないことは明らかです。
ほとんどのデベロッパーは、何らかの方法でポリフィルを使用しています。ただし、多くの場合、ポリフィルは Babel などのツールやフレームワークによって自動的に追加されるため、デベロッパーはポリフィルの使用を意識する必要はありません。ポリフィルを自分で管理している場合、ポリフィルが「適切」かどうかを判断することが問題になることがあります。デベロッパーは、NPM でのインストール数とポリフィルの作成者をシグナルとして使用していると述べています。数名のデベロッパーは、IE 11 のサポート終了により不要になったポリフィルを削除する作業を行っていると述べています。
フレームワークは、断片化の問題を引き起こします。デベロッパーが古いバージョンのフレームワークに「縛られ」、そのために使用できる機能が制限されているという報告を受けています。しかし、同じフレームワークの新しいバージョンに移行するにはコストがかかり、正当化するのが難しい場合があります。
まとめ
最新のウェブ開発には、標準、ブラウザ、ライブラリ、ポリフィル、CMS、フレームワーク、ベスト プラクティス、ツールなど、多くの要素が関わっています。この多様性はウェブの優れた点の 1 つですが、現時点では、各要素の意味と、それらが互いにどのように互換性があるかを理解するのは、各デベロッパーに委ねられています。
多様性を損なうことなく、すべてがどのように連携しているかをデベロッパーに明確に伝え、すべての要素をより整合させる方法はないでしょうか。これは大規模で複雑な問題であり、一度にすべてを行うのは困難です。では、どこから手をつければよいでしょうか。
ご意見やご感想がございましたら、ぜひお聞かせください。私もお話しできて嬉しいです。直接会話を予約する方法を設定する予定ですが、それまでの間は Twitter の DM でご連絡ください。ぜひご連絡ください。お話しできる時間を設けさせていただきます。