カテゴリー
トピック 解説

【解説】オープンソース・タスク管理ツールRedmineを、ユーザーの特定課題に向けてカスタマイズする

この記事を読むのに必要な時間は約 7 分です。

これまでシナジー研究所のVisiWorkサービスでは、Redmineの導入と運用を支援してきました。しかし、最近のユーザー支援においては、単なるRedmineの導入運用だけではなく、ユーザー企業が持つ特定の課題を解決するために、「Redmineをカスタマイズしたい」、あるいは、「他の業務システムとRedmineのデータ連携インターフェースを開発したい」、などのご要望をいただくことが多くなり、それらのニーズにお応えして実績を重ねてきました。


Redmineは、オープンソース・ソフトウェアであり、無償で利用することができます。有償のSaaSサービスとしてRedmineを利用する場合であっても、ライセンス料はリーズナブルです。したがって、Redmineを、カスタマイズによって、ユーザー固有の課題解決のために利用できれば、すべてを開発する場合、あるいは、高価なパッケージソフトウェアを利用する場合と比較して、非常に大きなコストダウンを実現することができます。

以下では、Redmineをカスタマイズするための4つの方法について順番に説明します:

番号Redmineカスタマイズの方法目的
1本体のコード修正機能変更
2カスタムフィールドの活用データ属性追加
3APIによるデータ連携機能開発(アドイン機能開発)データ連携機能追加
4プラグイン開発機能拡張
表1:Redmineカスタマイズの方法と目的

1.本体のコード修正

Redmineはオープンソース・ソフトウェアです。オープンソース・ソフトウェアのカスタマイズと聞いて連想するのは、標準版を入手して本体のソースコードを修正して使う、この方法かもしれません。しかしながら、Redmineにおいて、この方法が採用されることはまれです。

Redmineは、redmine.orgによって仕様が管理され、随時ソースコードが更新されています。したがって、ユーザーがソースコードに変更を加えれば、Redmineの機能を直接的に変更することが可能ですが、そうしてしまうと、それ以降は、redmine.orgが管理する標準版に追随することが、そのユーザーの責任となります。標準版の更新の中身としてセキュリティーパッチが多いことも考え合わせると、これは得策とは言えません。

2.カスタムフィールドの活用

カスタムフィールドは、標準Redmineに搭載されている機能で、これを使えば、標準Redmineのデータ、例えば、チケット、作業時間、プロジェクト、ユーザーなどのデータに対して、ユーザー固有の要件に応じて、フィールドを追加することができます。
これは、シンプルなカスタマイズ方法であるにもかかわらず、その使い勝手は良く、ほとんどのユーザーがカスタムフィールドを使用しているのが現状です。

下表1では、標準のチケットに対して、ユーザーの固有要件として「溶接個所数」という属性が追加されています。

番号フィールド名データ(例)分類
1ID3012標準
2プロジェクト設備プロジェクト標準
3トラッカー製作標準
4題名ユニットA製作標準
5ステータス検査中標準
6優先度通常標準
7担当者林 一郎標準
8溶接個所数6カスタム
表2:カスタマイズされたチケット・フィールド

3.APIによるデータ連携機能開発(アドイン機能開発)

2.では、カスタムフィールドの活用について説明しました。それでは、この溶接個所数を含むデータが、設計部門の担当者のエクセル・シートに保存されていて、それをRedmineによって、設計部門全体で共有したいとしたらどうすればよいか。その課題を解決するのがAPIによるデータ連携機能開発です。これは、アドインあるいはアドオン機能開発と呼ばれることもあります。

標準Redmineには、このAPIを利用したエクセル・シート(CSV形式ファイル)とのデータ連携機能が搭載されていて、そのデータには、2.のカスタムフィールドが含めることができるため、カスタムフィールドとこの方法は相性が良く、標準Redmineをよりパワフルなツールにしています。

ただし、この標準機能は、繰り返しの利用に際しては、少々煩雑な操作が必要となります。その点を解決するために、VisiWorkサービスでは、独自のツールTaskBuilder(タスク・ビルダー)を開発して、VisiWorkサービスのお客様に無償で提供しています(関連記事はこちら)。

しかしながら、定型業務としてこのようなデータ連携を行う場合には、APIによるデータ連携機能開発を行って、処理を完全に自動化して定期的に実行するなど、効率化することが理想です。

4.プラグイン開発

ユーザーの個別課題解決方法の本命とも言えるのが、このプラグイン開発です。プラグイン開発によって、標準コードを変更せずに、ユーザー独自仕様を実現することができるようになります。

これを使えば、1.で指摘したような、標準Redmineのソースコードに手を加えることによって発生する問題を回避して、独自の画面、データ、ロジックを追加することができるようになります。この方法によれば、2.で説明したカスタムフィールドを導入し、さらにそのカスタムフィールドに対して、独自の計算ロジックを与えることも可能になります。以下で、その例について説明します。

例えば、チケットの属性として、製造する製品の、溶接個所数、縦、横、高さ、などの属性を追加して、さらに、スケジューリングのための基本情報である予定工数を自動計算することができるようになります。また、Redmine設定にある「ワークフローのフィールドに対する権限」を適切に設定すれば、標準のチケット画面を使ってユーザーが直接、予定工数を任意の値に更新することができないようにすることもできます。

図1: プラグインによるチケット入力画面と自動計算のイメージ

このようなプラグインは、ユーザーが個別に開発したものであっても、通常は、SaaSにおいてデプロイ(配備)可能であることも重要なポイントです。
以上説明した4つの方法の内、1.ソースコードを直接修正する、を除く3つの方法を積極的に用いて、ユーザー固有の課題を解決するカスタマイズされたRedmineが実現できることになります。

図2:

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

もっと詳しく知りたい…

お気軽にお問い合わせください

VisiWork、REDMINEの使い方、導入事例、あなたの疑問、質問にお答えいたします。無料個別相談会も開催しております。