ウェブ デベロッパーが抱える主な課題の詳細

多数の 1 対 1 の会話から収集された、デベロッパーが直面する主な課題に関するインサイトを集めたものです。

数か月前に、Paul Kinlan2021 年にデベロッパーが直面した主な課題について投稿しました。そのため、この記事ではまず、過去 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 人以上のデベロッパーにインタビューしました。その目的は、デベロッパーが直面する主な問題点を調査し、解決までの道筋を把握することです。

デベロッパー ディスカッション

免責条項: これらの分析情報はデベロッパーとの少数の会話に基づいています。「すべて」または「一部」を使用する場合は、コミュニティ全体ではなく、インタビューしたデベロッパーを指します。これらの分析情報をより広範に推定するには、さらなる調査が必要です。

こうした会話から、ウェブ デベロッパー コミュニティの素晴らしさと多様性を再認識することができました。また、話をしてくれたすべてのデベロッパーの皆さんに感謝したいと思います。25 年以上の経験を持つデベロッパーもいれば、2020 年に起業したばかりのデベロッパーもいます。コンピュータ サイエンスの正式な学位を取得してキャリアをスタートしたデベロッパーもいれば、独立してキャリアをスタートしたデベロッパーもいます。開発者の中には、積極的に新機能を探し、ブラウザのリリースノートを読んで最新情報をいち早く取り入れる人もいれば、同僚や友人を通して新しいことを学ぶ人もいます。複雑さを仕事の一部と考え、挑戦することを楽しんでいる人もいれば、ただ仕事をやりたいと考えている人もいます。課題を解決することを考えるときは、この多様性を念頭に置くことが重要です。

すべての開発者に共通するのは、すべての開発者が作業に CMS またはフレームワークを使用していることです。WordPress、React、Bootstrap、Angular、Tailwind などが挙げられ、開発者の誰も本番環境で標準版のウェブ プラットフォームを使用していませんでした。プロジェクトの開始時にフレームワークを選択するのは困難であり、デベロッパーはしばしば非技術要件を考慮します。たとえば、そのフレームワークを扱う開発者を雇用するのは簡単かどうかなどです。ソリューションにフレームワークと CMS が含まれていない場合、開発者が抱える課題を改善することはできません。

ウェブ プラットフォームといえば、ほとんどのデベロッパーは、プラットフォームをその上に開発しているものとして認識しています。これには、ウェブ プラットフォームの従来の定義だけでなく、CMS、フレームワーク、ツール、ポリフィルも含まれます。多くの場合、最新の動向を常に把握しておくことが最大の難題です。これにより、その質問の解釈が変わりました。そして、アンケートをより曖昧さをなくし、さまざまな要素に分けるためにアンケートを更新する必要があることが判明しました。

もう一つのあいまいな点として、ウェブ標準の定義があります。多くのデベロッパーは、標準への対応の例について尋ねられたとき、ベスト プラクティスに従うことが難しいと指摘しました。この点も、アンケートで明確にする必要があります。

開発者は、特定のユースケースやパターンを実装する際にベスト プラクティスを探します。ベスト プラクティスの情報源としてブログ投稿や StackOverflow を挙げていますが、デベロッパーは、読んでいる情報が本当にベスト プラクティスなのかどうか、最新の機能や API で更新されているかどうかについて疑問に思うことがよくあります。これらを読むには、もっと正式なソースが必要です。

新しいユースケースを可能にする機能や API に対応し続けることは、それほど小さな問題ではありません。デベロッパーは、機能や API、プラットフォームに対する変更に悩まされ、それがベスト プラクティスに変化をもたらします。

ほとんどのデベロッパーは、互換性が最大の課題の一つであると認めています。Compat 2021Interop 2022 などの取り組みによって状況は改善されていますが、デベロッパーがまだ解決された問題として認識していないことは明らかです。

ほとんどのデベロッパーは、なんらかの方法でポリフィルを使用します。ただし、ポリフィルは Babel などのツールやフレームワークによって自動的に追加できるため、多くの場合、デベロッパーが使用を意識することはありません。自身でポリフィルを管理している場合、ポリフィルが「良好」かどうかを判断するのは難しい場合があります。デベロッパーは、NPM でのインストール数とポリフィルの作成者をシグナルとして言及しています。何人かのデベロッパーが、IE 11 のサポート終了により不要になったポリフィルを削除する作業を行っていると述べています。

フレームワークでは断片化の問題が発生します。デベロッパーが古いバージョンのフレームワークに「行き詰まり」、そのため使用できる機能に制限があるという報告が寄せられました。しかし、同じフレームワークの新しいバージョンに移行するのはコストがかかり、正当化するのが難しい場合があるという意見がありました。

まとめ

最新のウェブ開発には、標準、ブラウザ、ライブラリ、ポリフィル、CMS、フレームワーク、ベスト プラクティス、ツールなど、数多くの変動要素が存在します。このような多様性はウェブの素晴らしい点の 1 つですが、今のところ、各要素とその互換性の理解は各デベロッパー個人の判断に任されています。

多様性を損なうことなく、すべてがどのようにつながっているかを開発者に明確にし、すべての要素間の整合性を高める方法があるのではないかと思います。これは大規模で複雑な問題であり、一度にすべてを行うことは困難です。では、どこから手をつければよいでしょうか?

ご意見やご感想をお聞かせください。私もぜひお話ししたいです。会話を直接予約する方法を設定いたしますが、当面は DM を Twitter で開いてください。ご都合のよい日時をお知らせください。ご連絡をお待ちしております。