ソースコード上の技術的負債の償却促進ゲーミフィケーションシステムHEIZO

一ノ瀬智浩 (1551010)


本研究では,ソースコード中の技術的負債の除去を促進するための,ゲーミフィケーションシステムを提案する.

ソフトウェア開発における技術的負債とは場当たり的な対応やその結果を指す比喩である. HackyやFIXMEなどのキーワードとともに開発者が意識的にソースコードに残す技術的負債はself-admitted technical debt (SATD)と呼ばれる. これらはソフトウェアの保守性を低下させるため,償却(除去)する必要がある. しかし,動作に影響がなく,除去の緊急度が低いため,開発者の除去活動への積極性が低く除去されない. 開発者のSATDの除去活動に対し,インセンティブを与えることにより,SATDの除去が促される可能性がある. OSSにおいては,インセンティブとして賞金を設定することで,開発者に率先してバグ修正や機能追加をさせるサービスがある. しかし,開発資金には限りがあるため,緊急度の低いSATDの除去作業に対し賞金を設定することは難しい. そこで,金銭的なインセンティブを利用することなく作業者の意欲を向上させる手法であるゲーミフィケーションを適用することで,金銭的なコストをかけることなくSATDの除去作業を促進できると期待できる.

本研究では,開発者に積極的なSATDの除去を促すゲーミフィケーションシステムHEIZOを提案する. HEIZOはOSSプロジェクト中のSATDを都市をメタファとしたソースコード可視化機能で提示することにより,開発者にSATDのあるファイルを知らせ,除去したいと動機付ける. また,SATDを除去したり混入させたりした開発者をランキングで公開することでより積極的なSATD除去を促し,新たなSATDの混入を抑止する. HEIZOはWebアプリケーションとして実装し,世界中の開発者がランキングに参加できるようにする.

評価実験では被験者をOSSの新規開発者と見なし,HEIZOシステムを利用してプロジェクト中のSATDの情報を調べたときに,SATDのあるファイルの発見が容易になっているか,SATDの除去作業が促進されるかをアンケートにより評価した. 実験の結果,HEIZOは大規模プロジェクトにおいて,ゲーム要素を持たないSATDの可視化システムよりも開発者の除去活動への意欲を有意に向上させることが分かった. また,小規模プロジェクトにおいては,HEIZOよりもゲーム要素を持たないSATDの可視化システムの方が高い評価を得ることが分かった.