開発者エクスペリエンス(DXまたはDevEx )は、ソフトウェアエンジニアリングの分野であり、開発者が作業環境、ツール、プロセスとどのように考え、感じ、相互作用するかを調査するものです。この分野は、ヒューマンコンピュータインタラクション、ユーザーエクスペリエンス、組織心理学、ソフトウェアエンジニアリングの原則を組み合わせて、開発プロセスの体系的な測定と最適化を通じて開発者の生産性と満足度を向上させます。[ 1 ] [ 2 ]
「開発者エクスペリエンス」という用語は、UX実践者のジェレマイア・リー・コヒックが2011 年 3 月にUX Magazineに寄稿した記事「効果的な開発者エクスペリエンス (DX)」によって業界文献で初めて注目を集め、この記事で「DX」という略語が確立され、プラットフォームと開発者の関係に焦点が当てられました。[ 3 ]コヒックのフレームワークは、信頼とコミュニケーション、ドキュメントによる教育、開発ツール、プラットフォームのユーザビリティという 4 つのコア要素を中心に構成されています。
最初の正式な学術的定義は、Fabian FagerholmとJürgen Münchが2012 年に国際ソフトウェアおよびシステムプロセス会議で発表したIEEE論文「開発者エクスペリエンス: 概念と定義」で提供されました。 [ 1 ]彼らは DX を「開発者が作業環境内での活動についてどのように考え、感じているかを捉える手段であり、開発者エクスペリエンスの向上は、持続的なチームおよびプロジェクトのパフォーマンスなどの特性にプラスの影響を与えるという前提に基づいている」と定義しました。
彼らのフレームワークは、社会心理学の「心の三部作」に基づいて、認知(開発者が自分の仕事についてどのように考えるか)、感情(開発者が自分の仕事についてどのように感じるか)、意欲(開発者の動機と価値観)という3つの心理的次元を確立した。[ 4 ]
マイクロソフト、GitHub、ビクトリア大学の研究者らが2021年にSPACEフレームワークを発表したことで、この分野は大きな勢いを得た。SPACEフレームワークは、開発者の生産性を測定するための包括的なアプローチを確立した。[ 5 ]
ACM Queueに掲載された2023年のDevExフレームワークは、フィードバックループ、認知負荷、フロー状態という3つのコアディメンションを特定することで、この分野をさらに洗練させた。[ 2 ]
開発者エクスペリエンスは、開発者の有効性と満足度に総合的に影響を与える、相互に関連する複数の側面を包含する。学術文献は、いくつかの基本的な概念に集約されている。
フィードバックループは、開発者の行動に対する応答の速度と品質を表し、ビルド時間、コードレビュープロセス、エラー検出システムなどを含みます。[ 2 ]
認知負荷は、開発者がタスクを実行するために必要な精神的処理を測定するものであり、研究によると、余分な認知負荷を軽減することで、開発者は創造的な問題解決に集中できるようになる。[ 2 ]
フロー状態は、ミハイ・チクセントミハイの最適体験に関する心理学研究に基づき、開発者が集中力と楽しさに満ちた期間を達成できる能力を捉えたものである。 [ 2 ]
この分野では、知覚的測定(開発者へのアンケート)とワークフロー測定(客観的なシステムデータ)を組み合わせた二重測定アプローチを採用している。学術研究では、どちらのアプローチも単独では十分な洞察が得られないことが強調されている。[ 5 ]
検証済みのフレームワークには以下が含まれます。
MicrosoftとGitHubのDeveloper Experience Labによる、世界中の2,000人以上の開発者からのデータに基づく調査では、生産性に大きな影響があることが実証されました。集中して作業する時間を確保している開発者は生産性が50%向上したと報告しており、仕事にやりがいを感じている開発者は生産性が30%向上したと感じています。[ 6 ]
マッキンゼー・アンド・カンパニーがテクノロジー、金融、製薬会社を対象に行った調査では、体系的なDX投資により、顧客から報告された製品の欠陥が20~30%減少し、顧客満足度が60パーセントポイント向上することが実証されました。[ 7 ]
調査によると、調査対象組織の 78% が正式な DevEx イニシアチブを実施しており、専任の開発者エクスペリエンス チームに多額の投資を行っています。[ 8 ] Atlassianが 2,100 人以上の開発者を対象に行った調査では、97% が非効率性によってかなりの時間を失っており、69% が週に 8 時間以上を失っていることが明らかになりました。
この分野は、測定方法論や意図しない結果の可能性に関して批判に直面している。ソフトウェアコンサルタントのジェイソン・イップは、生産的だと感じられる活動の多くは実際には生産的ではないと主張し、測定システムが真の改善ではなくゲーム行動につながる可能性がある「生産性等価の誤謬」を指摘している。[ 9 ]
影響力のあるSPACEフレームワークの作成者は、開発者の生産性測定に関するいくつかの誤解、例えば単一指標の誤謬や活動と生産性の混同などについて明確に言及している。[ 5 ]
マッキンゼーの手法は、ケント・ベックをはじめとするソフトウェアエンジニアリングのリーダーたちから論争を巻き起こしており、ベックは成果ではなく労力と出力の指標に焦点を当てていることに懸念を示している。[ 10 ]
開発者エクスペリエンスは、ユーザーエクスペリエンス設計の原則を開発者ツールとワークフローに特化して適用し、ユーザー中心主義、段階的開示、反復設計プロセスなどのコア手法を共有しています。[ 11 ]
プラットフォームエンジニアリングは、DX原則の実践的な実装レイヤーとして機能し、プラットフォームチームは、認知負荷を軽減し、セルフサービス機能を提供するように設計された、事前定義済みで最適化されたワークフローとツールセットを作成します。[ 12 ]
DXは、人間とコンピュータの相互作用に関する研究方法論と理論的基盤を取り入れており、プログラミングを根本的に「人間の活動」と認識し、人間とテクノロジーの相互作用を理解するためにHCIの方法論が必要であると考えている。[ 13 ]