« RedmineでGitHubをらSVNプロトコルで使う | トップページ | JRubyの終焉 »

2020/06/06

気象庁の事例「GitとRedmineを用いた気象研究所共用海洋モデル「MRI.COM」の開発管理」の論文を読み解く

気象庁の事例「GitとRedmineを用いた気象研究所共用海洋モデル「MRI.COM」の開発管理」の論文が公開されていたのでメモ。

【参考】
海の研究~GitとRedmineを用いた気象研究所共用海洋モデル「MRI.COM」の開発管理

(PDF) GitとRedmineを用いた気象研究所共用海洋モデル「MRI.COM」の開発管理

気象庁の数値予報課におけるRedmine利用事例: プログラマの思索

第18回Redmine大阪の見所~「チケット管理システムによるソフトウェア開発支援と今後の課題~気象庁のRedmine利用事例報告」: プログラマの思索

第18回Redmine大阪の感想 #RedmineOsaka: プログラマの思索

2017年にRedmineコミュニティで、気象庁の方に利用事例を聞いた時があった。
その後の論文なので、どんな内容が追加されたのか、気になった。

(引用開始)
著者らの海洋大循環モデル「気象研究所共用海洋モデル(MRI.COM)」は,開発が始まってから20 年近くが経過し,気象研究所と気象庁の様々な部門で利用されるようになるとともに,ソースコードの大規模化・複雑化が進んだ。
このような状況の下でも,バグの混入や意図しない影響を抑えながらモデルを効率的に開発するため,現代的なソフトウェア開発で用いられるツールと手法を取り入れ,開発管理体制を一新した。
まず,ソースコードの開発履歴(バージョン)を管理する「Git(ギット)」を導入した。このツールにより,複数の開発者が複数の課題に同時に取り組む並行開発が可能になった。
また,プロジェクト管理システム「Redmine(レッドマイン)」を導入し,開発状況を開発者全員で共有した。このシステムによってデータベースに逐一記録された開発過程が,他の開発者や次世代の開発者にとって財産となることが期待される。
これらのツールを用い,さらに開発手順を明確にすることで,開発チーム内の情報共有と相互チェックを日常的に行う開発体制に移行することが可能となったことは,コード品質の向上に大きく寄与している。
現在,気象庁では,MRI.COMだけでなく,気象研究所と気象庁で開発しているほぼ全てのモデルをGit(またはSVN)とRedmineで一元的に管理するシステムを構築しており,モデルの開発管理及び共有化が大きく前進している。
(引用終了)

論文の中では、Redmineのチケットの画面キャプチャ、GitのコードラインとRedmineのバージョンの関係の図が多数あり、イメージしやすい。
基本的には、開発のタスク管理、ソースコードのレビューにチケットが使われている。
そのワークフローと、チケットの進捗率はP.184で対応付けられている。

(引用開始)
具体的なメリットを以下に挙げる。
1)他人に見られることを前提にしてタスク内容を明文化することで,開発方針が明確になる。
2)担当者や期日が明示されることで,各タスクの優先度の誤認などを防ぐ。
3)実装方針など開発に関する議論が残されることで,他の開発者と将来の開発者はコード変更についての理解が容易になる。開発過程のデータベース化は,次世代の開発者にとって大きな財産となる。
4)開発内容とソースコードが関連付けられ,どのような目的で,どのようにコードが変更されたかを誰もが見えるようになる。これにより,モデル利用者に対して,なぜそのような変更を行ったのかを説明する責任を果たすことになる。これは,現業使用や外部提供もされる MRI.COM にとって重要である。
5)Redmine でチケットを一覧表示させることで,モデル開発の全体の進捗を共有できる
(引用終了)

2014年からRedmine、Git、Subversionが導入されて、数年以上の運用を経ているので、開発プロセスは標準化され、開発者にも浸透しているのだろうと思う。
コードレビューがチケットのやり取りになるので、誰が担当しているのか、説明責任が明確になり、タスクの消化が駆動される。
また、レビューや作業の結果はチケットに全て残るので、保守フェーズでも参考になる。
そういうメリットは感じられているようだ。

(引用開始)
これによるメリットは多々あるが,とりわけ,複数の開発者による並行開発の円滑化,開発過程のデータベース化,ある変更を本体に取り込む前に他の開発者がチェックする「コードレビュー」の必須化,安定版と開発版の 2 系統維持,テスト自動化は,モデル開発において有益である。
また,開発手順の標準化は,他部署や他機関の人が行ったバグ修正や開発も通常の手順で幹のソースコードに取り込む体制が確立されたことを意味する。
(引用終了)

但し、課題も感じられている。
どうやら、RedmineもGitのソースも気象庁内だけに限られているので、外部の人達と情報共有しにくい点があるらしい。
本来は、Githubで公開して、日本や世界中の学者や開発者と連携したり、共同開発できるのが望ましい。
しかし、気象庁内のサーバーで管理されていること、ソースコードの著作権の制約があること、などの理由により、なかなか進んでいないみたい。

こういう話を聞くと、Redmineは社内で閉じた空間では非常に便利なツールではあるが、社外のベンダーや開発者と共同作業する場合、セキュリティ面や著作権などの壁という課題が出てくるのだろう。
今までの日本では、大企業や官公庁は自前のオンプレのサーバーで管理できていたが、今後はクラウド上で外部の関係者と共有できる開発基盤が必要になってくる。
その時に、自前で立てたRedmineサーバーよりも、SaaSのタスク管理ツールやGithubの方が、手間のかかる運用保守から離れられる、というメリットもある。
この辺りは、Redmineの機能が足りない、というのではなく、Redmineのようなチケット管理ツールをSaaSとしてどのように展開すべきか、という問題へ変換できるのだろう。

時代の進化と共に、現場が抱える問題点は日々変化していくものだから。


|

« RedmineでGitHubをらSVNプロトコルで使う | トップページ | JRubyの終焉 »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« RedmineでGitHubをらSVNプロトコルで使う | トップページ | JRubyの終焉 »