第9話 開発のおはなし
はじめに
本コラムの執筆に当たって、ここでしか書く機会がないことを書くと言うことを 1 つ念頭に置いて内容を考えてきました。 過去の OPTISHAPE-TS や S-Generator の開発の話、他で披露するのが難しい機能の紹介などなど。いずれも製品内のドキュメントや交流会の内容にはそぐわないため、コラムは良い機会でした。
そして次の話題について考えを巡らしていると、ふと開発そのものの話というのは案外紹介する機会がないということに思い至りました。 ということで今回は、OPTISHAPE-TS の開発に関する話を少しだけしてみたいと思います。
開発環境
プログラムをまったく知らない人向けに、細かい話は抜きにしてプログラムの開発はこんな画面でやっていますよと言う紹介。
Visual Studio
まず紹介するのは開発環境である Visual Studio という開発者御用達のソフトウェア。
Windows の開発者にとってはなじみある画面ではないかと思います。表示されているソースコードは TS Studio のうち、見ていただいても特に支障のない部分です。左側に列挙されているのがソースコードの一覧、右側のカラフルな文字が実際のソースコードです。こんな画面で日々ソースコードやダイアログの画面を編集しています。
SourceTree (Git)
Visual Studio と同様に私が開発でよく使うツールが SourceTree です。開発時にはソースコードを管理するために Git というシステムを使っていますが、その Git を操作するためのソフトウェアが SourceTree になります。
リストの各項目が実施したタスクになっていて、どのようなことを、いつ、誰が追加したかというのが分かるようになっています。よくみると誤字がありますね、お恥ずかしい。 不具合の対処のためにソースコードをある時点まで戻すであるとか、リリース中のソースコードと開発中のソースコードを分けて管理したりとか、同じ製品から派生したソースコード(OPTISHAPE-TS の TS Studio と HiramekiWorks の Viewer など)を一括で管理したりだとか、色々な場面で活用しています。
Git は基本的にコマンドベースのソフトウェアで、それを操作するためのクライアントソフトなどと一緒に使うことが一般的です。クライアントソフトは他にも色々とあり、特に社内で指定のソフトがあるわけではないので開発者各々が好きなソフトを使っています。
他にも Visual Studio Code、Vim などの各種エディタ、Filezilla、Tera Term などの Linux 運用に必要なツール・・・と細かい話をするとキリがないですが、こんな感じの画面でやっているんだという簡単な紹介でした。
OPTISHAPE-TS の開発を支える社内サービス
次は OPTISHAPE-TS の開発を支える社内サービスを紹介。Web ブラウザの画面なので勘違いされてしまう可能性があるかもしれませんが、ここで紹介する社内サービスはすべて社外からは一切アクセスはできません。
くいんと技術本部ホームページ
こちらが各種サービスをまとめた社内ホームページ。色々な社内サービスが一覧になっています。元々は別々で色々なサービスを立ち上げてブックマークしていましたが、多くなってきたのでリンク集的なホームページを途中で作りました。TS ナビゲーターと同じ発想ですね。
Wiki (Growi)
Growi という OSS のサービスを使用した社内 Wiki になります。OPTISHAPE-TS の開発やサポートに必要な情報、本日紹介している社内サービスのメンテナンス情報等はここに集約されています。
このサービスを運用する以前は共有フォルダー内にパワーポイントやワードのドキュメントで情報を管理していたのですが、ファイルを開かなければ中身の分からない検索性の悪さや過去のファイルを編集するのを躊躇して同じファイルをコピーして編集した結果似たようなファイルが増える、そもそも手軽に編集ができないなどなど閲覧にも編集にもさまざまな問題を抱えていて、社内サーバーを立てて Wiki に情報を集約することとしました。今では今日紹介している社内サービスの情報からプログラムの Tips まで、多様なデータが収められています。
バグ・要望管理システム(Mantis BT)
こちらは MantisBT というバグや不具合を管理するためのサービス。重大な問題から誤字レベルの不具合まで、社内で気がついた情報やお客様からいただいた情報まで、要望と不具合に関する情報はすべてがここに一度集約されます。
具体的な情報は当たり前ですがお見せすることが出来ません。ですが雰囲気だけでも紹介するために運用時に使うテスト用のプロジェクトの画面をキャプチャしました。映っているのは項目が 10 個ほどですが、実際の製品ではこのリストがズラーッと長くなりますし、そのうちの大半は解決済とか完了などのチェックが付いているものになります。
不具合や要望の追加は弊社社内で適宜行われます。不具合ならばどんな不具合か、再現方法や再現したデータ。要望ならばどのような要望か、改善案などが記載され、お客様から頂いた情報の場合には、どなたからいつ頂いた情報かなどの情報も記載されます。チケットの追加を最優先してお願いしているため、よくある要望はチケットが重複することもしばしば。また、誤字や表記ブレなどの情報も追加されるので、リストはなかなかに長くなりがちです。
GitLab
OPTISHAPE-TS のソルバー、GUI、ドキュメント、インストーラ、社内用ツール、受託業務で作成したツールなどのソースコードがすべてここで管理されています。
GitLab というシステム自体は大規模なシステムなので中に色々なツールを包含していますが、そこまで使いこなせてはいません。一方で CI(継続的インテグレーション)の機能程度は使用していて、ソースコードの変更をプッシュすると、自動的にコンパイル、単体テストを経て社内の NAS などにアップロードという程度のシステムは構築されています。
他にもありますが、このあたりで。本邦初公開というほど大それたものではないですが、こうした各種社内システムを使いながら開発を行っています。社内サービスの維持運用も自分たちでやらないといけないのが、面白くも少し大変なところですね。
最後に
開発に関して簡単ではありますが紹介をさせて頂きました。次回は〆として将来に向けた話をしたいと思います。
2024年11月28日
株式会社くいんと 技術開発部
OPTISHAPE-TS プロダクトリーダー
島田 誠
★ご意見・ご感想はこちらへ★
https://www.quint.co.jp/cgi-bin/qrepo-impr.cgi
第8話 | 第10話