現在、私の研究は以下の3つのテーマに大別されますが、共同研究の内容に応じて、その範囲や比重は変わります。
テーマI:エコシステムとしてのソフトウェア
今日のソフトウェアは単独で構築されるものではなく、さまざまな機能を利用するために、多数のサードパーティ製ライブラリやフレームワークに依存しています。開発者がこうした依存関係の管理に苦慮すると、問題が生じます。
私の研究は、これらの依存関係が、時間とともに進化し、相互に絡み合うエコシステムを形成するという包括的な考え方を中心としています。ライブラリ・パッケージのエコシステムが発展するなか、JavaのMaven、JavaScriptのNPM、PythonのPyPIなどのソフトウェア・エコシステムを対象に実証分析を行っています。
テーマII:コードとしての開発者の熟達度
個人の自然言語能力を評価するための言語学的枠組みを、開発者がコードを書く方法の評価に応用します。これを「コード熟達度」と定義し、開発者がどのようにコードを書くかを理解することで、その熟達度が果たす役割を明らかにすることに特に関心を持っています。コードに基づいて開発者のスキルを測定するとともに、コードが共同作業者に対して能力を示すシグナルとしてどのように機能するかを探究しています。また、教育者がプログラミング言語をどのように教え、開発者が基礎的なコーディング概念からより複雑な構造へどのように移行していくかを調査しています。現在は、Pythonプログラミング言語とPythonicなコードに焦点を当てています。
テーマIII:社会を越えて開発者をつなぐ
ソフトウェア開発は、今やグローバルな社会を形成しています。この研究分野では、パプアニューギニアのような新興国の開発者が、ソフトウェア工学を自国の社会にどのように取り入れているかを理解することを目指しています。グローバルな視点から、海外の共同研究者を受け入れ、ワークショップやインターンシップを実施しています。
