デジタル人材の育成

未踏IT人材発掘・育成事業:2019年度採択プロジェクト概要(上田PJ)

1.担当プロジェクトマネージャー

  • 竹迫 良範(株式会社リクルートテクノロジーズ 執行役員)

2.採択者氏名

  • 上田 裕己(奈良先端科学技術大学院大学 先端科学技術研究科 情報科学領域 ソフトウェア工学研究室)

3.採択金額

  • 2,304,000円

4.テーマ名

  • 開発者が行ったソースコード修正作業を学習し代行するボット

5.関連Webサイト

  • なし

6.申請テーマ概要

本プロジェクトでは、開発者が過去に行ったソースコード修正履歴に基づき、自動的にソースコードを修正または修正提案する開発支援システムを開発する。ソースコードの修正は、ソフトウェア開発全体で約半分の時間的コストがかかる。そこで本プロジェクトでは過去に行ったソースコードの修正を学習し、代行する開発支援システムを実現する。
本プロジェクト開始までに、GitHub上でコードレビューを行うボットを開発・公開しているが、本プロジェクトでは、開発者が行ったことのないソースコードの問題も修正できる開発支援システムを実現する。具体的には、GitHubを用いて公開されているソースコード修正履歴を利用し、多くの開発者が間違えやすいソースコードのパターンを収集し、修正を行う。開発者の代わりにシステムが修正を行うことで、開発者はより創造的な開発業務に集中できる。修正履歴から、良いコード、悪いコードを特定することで、自動修正だけでなく実践的なコーディングガイドラインの作成やプログラミング教育にも貢献する。

7.採択理由

ソフトウェア開発チームに新しいエンジニアが加わるとき、コーディング規約を徹底するために先輩によるコードレビューが非常に重要な時間を占める。本提案の開発支援システムでは、開発者がGitHub上で過去に修正したソースコードの履歴を元に、自動的にソースコードの修正提案をしてくれる。日本のITシステムの開発現場では、2019年5月の新元号対応や、Pythonバージョン2からバージョン3への非互換な移行、Java 8のサポート終了に伴うEOL(End Of Life)対応などで、ソースコードを一律に修正する機会も発生する。従来のコードレビューでは、人手による作業で多くの時間と精神的コストがかかっており、この開発支援システムがあれば、人件費削減とシステムによるレビュー担保によって、開発者のQoL(Quality of Life)が向上し、結果的にソフトウェアの品質向上が期待できる。文法チェックのlintのように淡々とシステムのbotがコードの修正提案を指摘するようになれば、先輩による厳しいコードレビューで人間関係が荒れてしまうことを心配することがなくなり、開発者の精神衛生も保ちやすくなる。定型的な業務をなくしていき、エンジニアの開発者体験(DX:Developer eXperience)を向上させることは、ITシステム開発現場をデジタルトランスフォーメーション(DX:Digital Transformation)につながっていく。実際の開発プロジェクトでレビューを行うことで品質を向上させ、適応対象となるプログラミング言語環境を増やしていき、プロジェクトのコーディング規約の自動作成プログラマのコーディングレベルの推定などに発展することを期待している。