学内向け料金システムへの機能追加をまるっと担当しました
はじめに
岡山大学では多くの実験用機器を保有しており、これらの一部は部署外や学外の研究者も使用できるようになっています。
これらの機器を使用した分、決まった時期にその利用料金を請求する必要があり、その管理を行うシステムが既に外部のベンダーにより作成され、現在も元気に利用されています。
当システムはこの用途専用にイチから作られたということもあり、運用されるにつれ不足していた機能がいくつか挙げられるようになりました。
そこで、学内の部署である 岡山大学Cypher (サイバーフィジカル情報応用研究コア) 経由でDS部員がこのシステムへの機能追加を担当することとなりました。
システムの状況
PHP製フレームワークにより構成
学内の事務員・機器管理者・機器利用者がアクセス可能
バージョン管理データへのアクセスが不能
要望概要
データベースエクスポート機能の追加
「訂正用予算欄」の追加
利用データのインポート時の挙動変更
エクセル運用時代のフォーマットに沿った出力機能の追加
データの検索条件の追加
開発の工程
案件始動に向けて
担当したDS部メンバーのうち1名は既にPHPを含めたWeb開発の経験があったものの、当フレームワークは未経験、もう1名は研究用途の開発経験はあったもののWeb開発は未経験、という構成でした。
これら開発メンバーやシステム運用部署とでヒアリングのためのMTを行い期待内容のすり合わせを行った上で、システムの開発が始まりました。
環境構築で早速コケる
Git等のバージョン管理情報が残っておらず、テスト用環境も残っていなかったためなかなか厳しめの船出となりました。
開発環境については、メンバー2人の所属する研究室でも活用されていたDocker (仮想環境の一種) を使用し、何度でも作って壊せるうれしい環境を構築するところから始まりました…が、本番環境から持ってきたコードがなかなか動かず難航。
お恥ずかしいことに、原因はプロジェクトのコンフィグにあるアドレスが本番環境の情報となっていたことでした。
双方のメンバーとも他のアクティビティとの兼ね合いで週当たりの作業時間はそれほど多くなく、環境構築でなんと3週間弱ものの時間を要してしまいました。
学内システムを改修するときは、Dockerfileばかり見てないでプロジェクトの設定もきちんと見ましょう。時間をかけすぎない。僕は忠告しました。
本格的に機能の実装
しかしながらこの丁寧に造られた環境のおかげでデータベースがおかしくなってもすぐやり直せる。気もだいぶ楽です。
Teamsで事務の方と確認の連絡を取るなどを経て、開発は進んでいきました。
システムのチェック
要望についてはなんとか一通り実装が終わり、変わらない使い勝手でさらに使いやすくすることができました。
しかしながら、前述の通り事務の方々がアクセスできるテスト用環境がなく、僕らの開発環境はDockerのため手元に閉じたまま…本番環境にはあまり手を加えてほしくないとのこともあり、苦肉の策として出た本納品前のチェックの方法が「Dockerコンテナが走るPCをまるっと貸し出す」
たまたま部署で遊んでいたノートPCにDockerを導入、コマンドを打たなくてもいいようバッチファイルを作成し簡単に扱えるようにした上でPCをお貸ししました。
不具合が発見された際のために、更新用バッチファイルを走らせるとリポジトリからPullしてくる、簡易アップデート機能も実装しました。
不具合対応もありつつチェック期間も終わり、無事本番システムへのデプロイまで完了させることができました。
最後に
筆者は「学内のシステムを弄るなんて機会なかなかないぞ」と興味本位で参加を申し出た経緯がありましたが、普通のシステム開発とは異なる刺激的な体験となりました。
DS部には僕のようなシステム開発経験者やその卵が何名もおり、彼らが岡山大学や岡山、ひいては日本や世界をシュッとした感じにさせてくれていくのだろうと思うとワクワクせざるを得ません。
今後もDS部と所属メンバーの活躍にご期待ください!
謝辞
この活動は、協力教員の馬場謙介先生の業務の補助として行いました。
作業者・執筆者
宮本 稜太 (執筆者)
江浪 晴信