« 「小水力発電が地域を救う」の感想 | トップページ | 技術革新とエンジニアのキャリア形成にオープンソースコミュニティの存在が重要性を増している »

2018/04/25

Redmineの直近の課題~競合ツールGitlabに対抗できるか

2018年4月現在、Redmineの今後の課題について考えてみる。
以下はラフなメモ書き。

【1】Redmine大阪や東京Redmine勉強会にスタッフとして活動してきた中、参加者も大幅に増えて、参加者層も初心者から経験者まで広がり、業種もIT業界だけでなく特に製造業にも広がっている印象を持っている。

たぶん、RedmineはRailsアプリ、そしてチケット管理ツールの中で、日本で最も普及したアプリの一つだろう、と思う。

しかし、技術革新の流れが早い中、Redmineにも課題がチラホラ見えてきたように思う。
僕は、Redmineの直近の課題は、Redmineのシングルページアプリケーション化、Redmineのコンテナ化、Git連携の強化だろうと思う。

【2】1つ目は、RedmineのUIが古臭いと言われる問題意識だ。
たとえば、スマホに慣れていると、Redmineのように画面更新のたびにリフレッシュされる仕組みは正直手間がかかるイメージだ。
一つの画面内で、必要な箇所だけ更新するだけで、画面全体がリフレッシュされる必要はないはず。
その分、処理速度も早くなるし、ユーザの利便性も上がる。
つまり、昨今のUIで主流のシングルページアプリケーションのような仕組みをRedmineにも導入していくべきだろう。

以前、RailsはJavascriptと相性が良いので画面UIもリッチで使いやすかった。
しかし、Railsフロントエンド技術も、昨今の時代の流れの影響を受けて、どんどん進化している。

Railsフロントエンド技術の今とこれから - Hack Your Design!

rails × AngularJSでシングルページアプリケーションを作るTips - Qiita

Rails5.1に向けてフロントエンド周りで起こっている革命まとめ - Qiita

一方、競合の状況を見ると、有償のチケット管理ツールであるJiraやBacklogに比較されやすい。
それらツールは、昨今の時流に合わせてUIフレンドリーな画面になっている。
もちろん、OSSのRedmineに対し、営利目的の会社が多数の開発者というリソースを持つ競合の方が恵まれている点は否めない。

【2】2つ目は、Redmineのインストールやバージョンアップが難しいと言われる点だ。
初心者にとって、RubyやGemをインストールする時、バージョン違いによって、ハマってしまう場合が多い。
Redmineを使いたいだけなのに、セットアップに手間取ってしまって断念するケースも多いのではないか。

Redmine 3.4をCentOS 7.3にインストールする手順 | Redmine.JP Blog

この点に関しては、最近、Gitlabにも注目している。
特に、Gitlabでは、バックアップやコンテナ化など技術的にも優れている点が見えてくる。

たとえば、バックアップやリストアはrakeタスクで用意されているので、Cron化しておけば、保守で気にする必要はない。

Rake tasks | GitLab

また、GitlabCIまでセットアップすれば、Redmine+Jenkinsよりも使いやすい点はあるだろう。
インストール対象が2つのツール(RedmineとJenkins)よりも1個のツール(GitlabCI)の方が楽だから。

Gitlab + Gitlab CI をためす - LGTM

個人的には、RedmineのバージョンアップをiOSの自動更新みたいに、もっと手軽にすべきだろう、と思う。
現状でも、プラグインをGem化するアイデア、RedmineをDockerでコンテナ化する、等が色々試されている。

Feature #27705: Gemify redmine plugins - Redmine

これらアイデアをさらに発展させて、Redmineのバージョンアップの自動更新がワンクリックで可能になるように、改善されるべきだろう。
たぶん、Dockerのようなコンテナ化に解決の鍵があると感じている。

なぜなら、ちょうど今はコンテナ化や仮想化のように、インフラ基盤をプログラム化する技術が一番ホットな話題であること、それら技術がクラウドと相性がすごく良い事もあるからだ。

【追記】
RedmineのDockerは下記でインストールできる。
Windowsでも問題なくインストールできるのはすごく良い。

Redmineインストール from Docker Hub - Qiita

【3】3つ目は、RedmineはGit連携の機能が弱い点は、従来からずっと知られていた。

一方、Gitlabのチケット管理もRedmineより弱いとは言え、着実に改善されている。
一般に、SVNよりもGitを使うのが普通なので、この点に関してRedmineは多少不利な面がある。
いつか、Redmineの競合候補になってくるのではないか。

RedmineとGitLabを連携すると、RedmineをGitHub化できるか: プログラマの思索

RedmineとGitを巡る疑問点~Gitとの連携機能の強化がRedmineの課題: プログラマの思索

【4】個人的には、Redmineの競合ツールは有償ツールであるJiraやBacklogではなく、OSSのGitlabになるのではないか、と思っている。

理由は、ポジショニングマップで書くと、RedmineとGitlabはちょうど正反対の位置に配置されるからだ。
実際、「Git連携が強い・弱い」軸と「チケット管理機能が強い・弱い」軸の2次元でプロットしてみれば、「Git連携が強く、チケット機能が弱い」GitLabと、「Git連携が弱く、チケット機能が強い」Redmineで斜め方向にプロットできる。

よって、RedmineとGitlabは全く正反対の性質を持つツールなので、現在は双方を連携することで相互補完する方向に進化している。
すなわち、Redmineでチケット管理して、Git管理やプルリクエストはGitlabで行い、WebhookによりチケットとGitを連携できるようにする運用スタイルだ。

GitLabとRedmineを連携してみるの巻 - アルパカDiary Pro

GitlabとRedmineを連携させる方法の覚書。 - Qiita

でも、RedmineもGitlabもGit管理やチケット管理の機能を強化していく方向へ進化するならば、競合することになるだろう。

なお、Gitlabには、GithubクローンとしてOSS版とエンタープライズ版が提供されている。
ビジネスモデルとしても、うまいやり方だと思う。
なぜなら、OSSで提供することにより、ユーザ数を増やせること、また、ユーザのフィードバックを受けて有償ツールに反映してどんどん機能拡張できること、があるからだ。

GitlabもRedmineと同じくRails基盤なので、改修しやすいし、機能改善の進化も速いので、近い将来、現在のRedmineの優位性は変化していくかもしれない。

たとえば、Gitlabが強力なチケット管理機能を実装したら、プログラマ層は皆、RedmineよりもGitlabに流れてしまい、Redmineのユーザ数は減ってしまうだろう。

現在は、たまたま、日本のRedmineユーザに熱いパッションを持つ人達が多いので、最新機能をいち早く試して人柱になったり、数多くの運用事例を紹介してくれたりして、コミュニティ中心に盛り上がっているけれど、いつまでもそういう幸運は続かないかもしれない。

GitLabでタスク管理してみた感想(主にRedmineとの比較) - YoshinoriN's Memento

【5】とはいえ、そういう課題がRedmineに見えてきたが、たぶん、解決できるだろうと楽観視している。
また、技術者として、ツールの課題を技術面から解決していったり、それについて色々試行錯誤して技術を試すことは楽しい。

今後もいろいろ考えてみる。

【追記1】
Gitlabの場合、RPMが提供されている。
よって、yum updateだけで簡単にバージョンアップできる。

Manually Downloading and Installing a GitLab Package | GitLab

GitLabを7.9.2から7.12.0にアップデートした時の話 - Qiita

Git lab rpm でインストール - Qiita

Redmineでも、RPMを提供できないだろうか??
また、Redmineのバックアップ用のrakeタスクも実装できないだろうか?

そうすれば、プラグイン無しの標準Redmineであれば、DBバックアップと添付ファイルバックアップだけすれば、VerUp作業そのものを自動化できるからだ。
RedmineやRubyの初心者であっても、インストールやバージョンアップ、バックアップに苦労する問題はなくなるだろう。

【追記2】
皆同じ事は考えている。

taikiixさんのツイート: "現代の開発フローがGitとPRを中心としていることを考えるとPRの実装は喫緊の課題だと思います。でもそれ以上に、半年でメジャーバージョンアップするGitLabに対抗するには今の開発スピードでは歯が立たない。だからRedmineはGitHubに開発の場を移し、広くcontributorを集める必要があると思います。… https://t.co/jt4Kmk9pCx"

MAEDA Goさんのツイート: "gitへの移行はJPLがその気になる必要があるため、簡単には進まないと思います。本家のやり方を変えずに開発への参加のハードルを下げる方法として、非公式のミラーリポジトリでプルリクエストを受け付けて私がGitHubとチケットの中継をするのはありだと思います。私が中継するので日本語でOKです。… https://t.co/LIFzu4B1lk"

【追記3】
akipiiさんのツイート: "日本の熱心なRedmine ユーザーは自らモルモットとなり、自ら海に飛び込んでいくのです!その結果は如何に?… "

あさこさんのツイート: "大きな海に溺れるも、無人島にたどり着く。そこの名は、redmineアップデートセンター…‼… "

akipiiさんのツイート: "@agilekawabata さんに解決してもらって、 @g_maeda さんに本家に取り入れてもらいましょう。。。… https://t.co/svy5cW1puI"

やっさんさんのツイート: "GitHubがメインリポジトリならもっと参加者増えて開発も回りそうな気もするんですけどねぇ🤔… https://t.co/YekJeR0RRl"

【追記4】
門屋 浩文さんのツイート: "こちらこそー。これは感覚論だけど、同じシステムを使う人は似たような振る舞いをするようになる。社会や文化と同じように。redmine関係者の振る舞いや感性は、正直好きだね。いろいろおいてきた、できなかったことが少しずつできるようになるヨ・カ・ン… "

akipiiさんのツイート: "似た振る舞いになる、と言う話は同感。たぶんチケット管理してれば、Redmine でもJiraでもTrelloでも手法や考え方は同じ。以前できなかった事がチケット管理ツールで実現できる予感も同感。ソフトウェア工学は本来はこういう開発基盤が欲しかったはず、といつも思う。… https://t.co/3OzYY4e39R"

akipiiさんのツイート: "Redmine にある機能は、細かな一機能に過ぎないかもしれないが、人の行動を変えさせるきっかけになる、と言う事例は心当たりがないですか? 是非エバンジェリスト会でネタを集めてください笑… "

akipiiさんのツイート: "Redmine でバージョンアップごとに改善された機能には、世界中の開発者が試したベストプラクティスが反映されてる。ツールの機能とプラクティス、そして開発プロセスは表裏一体と思います。特に最近のRedmine,Gitlab,Jenkinsはそう強く感じる。… https://t.co/N1LJQ69erp"

あさこさんのツイート: "redmineにも、アップデートセンター入れてほしい。… "

あさこさんのツイート: "あわわわわわ… 川口さんが、jenkinsはアップデートセンター入れてから爆発的に広がったと言っていたので、同じような経路をたどるかもしれませんね。。 そうすると、redmineバージョンアップの毒沼地はいい感じで消えていってくれる…かもしれませんね(・_・;)… https://t.co/tSddJPec3O"

akipiiさんのツイート: "似た話として、Gitlabにはrakeコマンドで自動バックアップするコマンドがあった気がする。Redmine と同じRailsアプリならば、他ツールの機能をパクるやり方もありですね。… "

【追記5】
RedmineのREST APIにも、SwaggerのようなI/F仕様書のWebサーバーがあれば、もっと使い勝手は良くなるだろう。

SwaggerでRESTful APIの管理を楽にする - Qiita

SwaggerでWebAPIドキュメントをExcel仕様書から脱却するアイデア: プログラマの思索

あきこさんのツイート: "RedmineのAPIはドキュメントが分かりにくいかな? 公式サイトにも載ってるけれど、GETしか対応してなかったり。 apipieやswagger docのようにソースコード中のコメントや説明がそのままドキュメントとして表示できるようになってたらなあ...なんて思います。"

あきこさんのツイート: "他はわからないんだけれど、JenkinsはRest APIのドキュメントのページがアプリケーションの一部としてくっついてた。JIRAやConfluenceも、ローカルで動かしたとき、Rest API Browserっていうのがあって、APIの仕様の確認がしやすかったなー。"

|

« 「小水力発電が地域を救う」の感想 | トップページ | 技術革新とエンジニアのキャリア形成にオープンソースコミュニティの存在が重要性を増している »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 「小水力発電が地域を救う」の感想 | トップページ | 技術革新とエンジニアのキャリア形成にオープンソースコミュニティの存在が重要性を増している »