この記事を読むのに必要な時間は約 7 分です。
これまでシナジー研究所のVisiWorkサービスでは、Redmineの導入と運用を支援してきました。しかし、最近のユーザー支援においては、単なるRedmineの導入運用だけではなく、ユーザー企業が持つ特定の課題を解決するために、「Redmineをカスタマイズしたい」、あるいは、「他の業務システムとRedmineのデータ連携インターフェースを開発したい」、などのご要望をいただくことが多くなり、それらのニーズにお応えして実績を重ねてきました。
Redmineは、オープンソース・ソフトウェアであり、無償で利用することができます。有償のSaaSサービスとしてRedmineを利用する場合であっても、ライセンス料はリーズナブルです。したがって、Redmineを、カスタマイズによって、ユーザー固有の課題解決のために利用できれば、すべてを開発する場合、あるいは、高価なパッケージソフトウェアを利用する場合と比較して、非常に大きなコストダウンを実現することができます。
以下では、Redmineをカスタマイズするための4つの方法について順番に説明します:
番号 | Redmineカスタマイズの方法 | 目的 |
---|---|---|
1 | 本体のコード修正 | 機能変更 |
2 | カスタムフィールドの活用 | データ属性追加 |
3 | APIによるデータ連携機能開発(アドイン機能開発) | データ連携機能追加 |
4 | プラグイン開発 | 機能拡張 |
1.本体のコード修正
Redmineはオープンソース・ソフトウェアです。オープンソース・ソフトウェアのカスタマイズと聞いて連想するのは、標準版を入手して本体のソースコードを修正して使う、この方法かもしれません。しかしながら、Redmineにおいて、この方法が採用されることはまれです。
Redmineは、redmine.orgによって仕様が管理され、随時ソースコードが更新されています。したがって、ユーザーがソースコードに変更を加えれば、Redmineの機能を直接的に変更することが可能ですが、そうしてしまうと、それ以降は、redmine.orgが管理する標準版に追随することが、そのユーザーの責任となります。標準版の更新の中身としてセキュリティーパッチが多いことも考え合わせると、これは得策とは言えません。
2.カスタムフィールドの活用
カスタムフィールドは、標準Redmineに搭載されている機能で、これを使えば、標準Redmineのデータ、例えば、チケット、作業時間、プロジェクト、ユーザーなどのデータに対して、ユーザー固有の要件に応じて、フィールドを追加することができます。
これは、シンプルなカスタマイズ方法であるにもかかわらず、その使い勝手は良く、ほとんどのユーザーがカスタムフィールドを使用しているのが現状です。
下表1では、標準のチケットに対して、ユーザーの固有要件として「溶接個所数」という属性が追加されています。
番号 | フィールド名 | データ(例) | 分類 |
---|---|---|---|
1 | ID | 3012 | 標準 |
2 | プロジェクト | 設備プロジェクト | 標準 |
3 | トラッカー | 製作 | 標準 |
4 | 題名 | ユニットA製作 | 標準 |
5 | ステータス | 検査中 | 標準 |
6 | 優先度 | 通常 | 標準 |
7 | 担当者 | 林 一郎 | 標準 |
8 | 溶接個所数 | 6 | カスタム |
3.APIによるデータ連携機能開発(アドイン機能開発)
2.では、カスタムフィールドの活用について説明しました。それでは、この溶接個所数を含むデータが、設計部門の担当者のエクセル・シートに保存されていて、それをRedmineによって、設計部門全体で共有したいとしたらどうすればよいか。その課題を解決するのがAPIによるデータ連携機能開発です。これは、アドインあるいはアドオン機能開発と呼ばれることもあります。
標準Redmineには、このAPIを利用したエクセル・シート(CSV形式ファイル)とのデータ連携機能が搭載されていて、そのデータには、2.のカスタムフィールドが含めることができるため、カスタムフィールドとこの方法は相性が良く、標準Redmineをよりパワフルなツールにしています。
ただし、この標準機能は、繰り返しの利用に際しては、少々煩雑な操作が必要となります。その点を解決するために、VisiWorkサービスでは、独自のツールTaskBuilder(タスク・ビルダー)を開発して、VisiWorkサービスのお客様に無償で提供しています(関連記事はこちら)。
しかしながら、定型業務としてこのようなデータ連携を行う場合には、APIによるデータ連携機能開発を行って、処理を完全に自動化して定期的に実行するなど、効率化することが理想です。
4.プラグイン開発
ユーザーの個別課題解決方法の本命とも言えるのが、このプラグイン開発です。プラグイン開発によって、標準コードを変更せずに、ユーザー独自仕様を実現することができるようになります。
これを使えば、1.で指摘したような、標準Redmineのソースコードに手を加えることによって発生する問題を回避して、独自の画面、データ、ロジックを追加することができるようになります。この方法によれば、2.で説明したカスタムフィールドを導入し、さらにそのカスタムフィールドに対して、独自の計算ロジックを与えることも可能になります。以下で、その例について説明します。
例えば、チケットの属性として、製造する製品の、溶接個所数、縦、横、高さ、などの属性を追加して、さらに、スケジューリングのための基本情報である予定工数を自動計算することができるようになります。また、Redmine設定にある「ワークフローのフィールドに対する権限」を適切に設定すれば、標準のチケット画面を使ってユーザーが直接、予定工数を任意の値に更新することができないようにすることもできます。
このようなプラグインは、ユーザーが個別に開発したものであっても、通常は、SaaSにおいてデプロイ(配備)可能であることも重要なポイントです。
以上説明した4つの方法の内、1.ソースコードを直接修正する、を除く3つの方法を積極的に用いて、ユーザー固有の課題を解決するカスタマイズされたRedmineが実現できることになります。

この記事に関する質問やご意見がありましたら、当サイトお問い合わせページまでお寄せください。