その研究は健康か

継続的インテグレーション入門

継続的インテグレーション入門


継続的インテグレーション入門」を読みました。初版が2009年なため言及しているCIツールはいくらか古いですが、CIの重要性を学ぶ入門図書としては素晴らしい図書と思います。
私はこの一冊を大学等研究機関で研究をしている学生に薦めたいと思います。

というのも、CIの重要性は企業などの開発プロジェクトでは広く認知され実践されていると思いますが、研究分野で開発を行っている方の間ではこれが十分認知されているとは思えず、しかし現状はまさにCIが求められているのではと思ったからです。

実際、研究に伴う開発プロジェクトでは次のような場面・課題があるのではと思います。

  • 日本の一般的な大学院は2年間しかありませんから、企業のそれよりもより早い周期で研究メンバが大きく変化する。
  • 企業での開発プロジェクトでは当然仕様変更はつきものですが、研究の世界でも研究のアプローチの変更が起きうる。
  • 実験の反復
    • パラメータを細かく調整しつつ繰り返し検証を繰り返す場面
  • 検証実験は一貫した方法で、正確である必要がある
    • 実験の直前には毎回メモリの初期化が必要だったりとか
    • データベースの状態を実験前の状態に戻したりとか

このようなその場の開発者主体で、繰り返し作業の多い開発環境・プロジェクトにいながら、学生研究者は、
プログラマとしてさまざまなプロセスを自動化しているにも関わらず、なぜか自分の仕事に対してはあまり自動化できていない、していない気がします。

これは研究をしてたった2年の自分からは個人的な意見・推測しか言えませんが、研究室という環境が閉鎖的であることがその大きな原因なのではとも思います。
企業と比べると、研究室ではプロジェクトマネージャや監査などはなく、研究室の文化・開発プロセスを見直す機会というのは少ない気がします。
一研究室を一組織と見てみると、そこには企業のように透明性への取り組みは見ないですし、教授による非民主主義がのさばっている、みたいな話もあるかもしれません(当研究室はホワイトです)。

話を戻して、以上のことを思うと研究室の開発手法などは研究室で独自に成長しやすいものかと思います。それがその研究の開発プロセスとして最適なものであるならそれはそれでいいのですが、本当に問題なく研究開発は回っているのでしょうか?(進捗どうですか?)


前置きが長くなりましたが言いたいことは一つで、
研究開発が健康かです。

ぜひ上の推薦図書を読み、研究の際の開発プロセスを見なおしてみてはどうでしょうか。
一貫した反復可能な検証を自動的に行い、そしてそれによって産まれた余裕からよりチャレンジングな問題に取り組むことができるかもしれません。
これがうまくいっていないプロジェクトでは、悪いタイミングで、例えば論文提出間際などに、低レベルの作業に追われるようなことがあるかもしれません。

論文を書くには、サーベイアイデア、そして実験が必要です。
大量のサーベイを行い、理解し、新しい見地を見出します。その見地を誰が見ても確かな、有効なものとするため、実験を行います。

では、数ある論文と有名な国際学会に採録される論文との違いは何でしょうか。
一概にはいえませんが、おそらくやはり良い研究には''よい実験結果''が示されていると思います。
そして良い実験結果のためには、その実験のプロセスも重要でしょう、と。

話がまとまっていませんが、研究における開発でも、プロジェクトの運用方法によって最終的な実験成果、到達できる地点は違ってくるのではないかと思います。あくまで、CIをしなさいと言ってるわけではなく、研究の世界でも研究・開発のプロセスを見直す必要があるのでは、ということです。今の研究がデスマだと言うのなら、その研究プロセスがおかしいんじゃないの?と。


学生研究者みなさん、GOOD LUCK!!

© karahiyo