「開発者体験が良い」とはどういう状態? 3つの要素から考える
ファインディは「挑戦するエンジニアのプラットフォームをつくる。」というビジョンを掲げ、エンジニア採用のマッチングサービスなどの事業を提供している。浜田氏が担当するエンジニア組織支援SaaS「Findy Team+」は、多様なコード管理ツールやイシュー管理ツールのデータを連携させ、開発生産性を多角的に可視化するプロダクトだ。さまざまな指標を通じて開発プロセスの改善点を特定し、継続的な改善を支援する。さらに、Googleカレンダーと連携してミーティング時間の分析も行えるなど、開発以外の側面も考慮に入れている。
講演のテーマとなるDevExは「Developer Experience」の略で、日本語では「開発者体験」を指す。これは、開発者が自分の仕事に対してどのように感じ、考え、価値を見出しているかを示す指標だ。ソフトウェア開発においては、変更のリードタイム、デプロイ頻度、変更失敗率、修復時間などを評価する「Four Keys」が注目されているが、浜田氏はモチベーションとアウトプットの両方が重要であるとし、「DevExこそ、これらを同時に把握できる指標だ」と述べ、今回その内容を深く掘り下げたいと語った。
DevExを改善すれば、開発者個人には高い生産性と創造性がもたらされ、開発チームにはより良い行動品質とイノベーションが生まれ、組織全体には高い定着率と利益が期待できるという。浜田氏は、いくつかの論文に基づいてDevExの3つの要素である「フロー状態」「認知負荷」「フィードバックループ」について説明した。
フロー状態とは、集中力が高まり、活力に満ちて楽しさを感じながら作業に取り組める精神状態を指す。開発者がこの状態に入ると、生産性が向上し、イノベーションや成長に繋がる。浜田氏は、深い集中を保って業務に取り組む開発者は、そうでない開発者に比べて生産性が50%向上し、仕事に魅力を感じる開発者は、生産性を30%高く感じるといった調査結果を示した。
認知負荷は、開発者がタスクを実行する際に必要な精神的処理の量を指す。認知負荷が高いと、タスクの完了に時間と労力が多くかかる。コードの理解度が高い開発者は、低い開発者に比べて42%生産性が高く、ツールや作業プロセスを直感的に理解できる開発者は、自分を50%革新的(イノベーションを起こし、本質的な価値を提供できる)と感じている。
フィードバックループとは、進行中の作業に対するフィードバックと学習の循環を指す。迅速なフィードバックループは開発を加速させるが、遅いループはプロセスを中断させ、タスクの切り替え時にフラストレーションや遅延を引き起こす。コードレビューが速い開発者は遅い開発者よりも20%革新的だと感じており、迅速に質問に対応するチームは、対応が遅いチームと比較して技術的負債が50%少ない。