Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
開発基盤としてのRedmine
〜Redmineをカスタマイズするポイント

2014/2/15
あきぴー@品川Redmine

copyright2014 akipii@XPJUG関西

1
• ハンドルネーム

自己紹介

• あきぴー

• 所属

• XPJUG関⻄、SEA関⻄、RxTStudy、品川Redmine

• 著書

• 「Redmineによるタスクマネジメント実践技法」
• 「チケット駆動開発」
• 「Redmi...
Agenda
• Redmineの現状と課題
• Redmineのカスタマイズポイント
•
•
•
•

外部接続I/F
パラメータ設定
プラグイン登録
モディフィケーション

• まとめ

copyright2014 akipii@XPJUG...
Redmineの現状と課題

copyright2014 akipii@XPJUG関西

4
Redmineの現状①
• 日本のSIでRedmineが普及している
• Redmineの利⽤率は40.4%
•

記者の眼 - 「新3種の神器」で開発現場を改革しよう:ITpro
http://itpro.nikkeibp.co.jp/art...
Redmineの現状②
• 日本では、Agile開発よりも従来のWF型開発に
適⽤している事例が多い
• WF型開発の内部にある小さな開発サイクル
• WF型開発で管理しきれない細かな作業管理

アダプタブルWF(WF型開発を補完するチケット駆...
【参考】アダプタブルWF

(@sakaba37)

WF型開発
型開発

設計

要件
定義

シス
テム
テス
ト

開発
テスト

リリース

補完型
TiDD

補完型
TiDD
設計

設計

開発

開発

テスト

テスト

課題...
Redmineの課題
@akipii: Redmineを運用して改めて思うのは、
RedmineやTrac、Jira、GitHubなどのチケット駆動ツールは
開発者のためのツールであって、マネージャのためのツール
ではないこと。
マネージャ視点...
Redmineの2つの顔
表の顔

裏の顔

OSSの
プロジェクト管理ツール

業務アプリケーションの
開発基盤
(プラットフォーム
プラットフォーム)
プラットフォーム

・プロジェクト管理で使われる機能が
一通りそろっている。
・外部シス...
Redmineを
カスタマイズするポイント

copyright2014 akipii@XPJUG関西

10
開発基盤としてのRedmine
Redmineを開発基盤(プラットフォーム)と⾒なしてカスタマイズする場合、
4種類の手法がある。
外部接続I/Fを通じて
外部接続 を通じて
データ操作だけを行う
(REST, Webサービス,
rake et...
【1】外部接続I/F ①REST編
HTTPによる
Redmine操作

RedminePM:
(Redmineの
iPhone/Android
アプリ )

PC

XML/
JSON

http://redminepm.jp

スマートフォ...
【1】外部接続I/F ②構成管理ツールと連携
リポジトリ情報取得

バージョン管理リポジトリへコミット時、「refs #12」「fixes
#13」でチケットと相互リンクできる
http://redmine.jp/tech_note/subve...
【1】外部接続I/F ③メールによるチケット登録
チケット登録用
メールアドレス
①メール発行

②通知

@
ユーザ

③チケット
登録
④チケット確認
他に下記のrakeコマンドもある。
rake redmine:email:read
ra...
【1】外部接続I/F ④他ITSからのデータ移⾏
データ移行

下記のrakeコマンドでデータ移⾏できる。
rake redmine:migrate_from_mantis # Mantis migration script
rake redm...
【2】パラメータ設定
ワークフロー機能で多種多様な運⽤が可能。
(障害、課題、タスク、問合せ、PC資産など)
他に、プロジェクト単位に権限やワークフローも設定できる。

ステータスの移行先

現
在
の
ス
テ
ー
タ
ス
【参考】第3回SRA...
【3】プラグインで機能追加
プラグインは、Railsフレームワークの一部として開発できる。
(1)Railsフレームワークは次の特徴を持つおかげで、開発しやすい。
・CoC:設定より規約(Convention Over Configuratio...
【4】モディフィケーションで機能拡張①EPM-X
Redmineプラットフォーム上でBI/ELTツールを追加開発して機能拡張している。

※BI(Buisiness Inteligence):業務システムなどから蓄積される企業内の膨大なデータを...
【4】②Lychee Enterpriseシリーズ
Lychee Enterprise シリーズは、マネージャの観点で
ソフトウェア開発のプロジェクト管理のQCDを支援している

スケジュール(D)
Lychee Gantt Chart
(& ...
まとめ

copyright2014 akipii@XPJUG関西

20
Redmineカスタマイズ手法比較
No カスタマイズ手法

⻑所

短所

1

外部接続I/F

APIを⽤いて、Redmineから
自由にデータの取得・更新が
できる
(例:REST、JSONP、
rake)

・外部接続⽤プログラムの開...
まとめ
• RedmineはOSSのプロジェクト管理ツールの開発
基盤として使える
• ソースが公開されているので、自由にカスタマイズできる
• マネージャを顧客に⾒⽴てて、アジャイルに改善しよう

• RedmineのVerUpに追随する⽅が...
ご清聴
ありがとう
ございました

copyright2014 akipii@XPJUG関西

23
Upcoming SlideShare
Loading in …5
×

第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」

11,446 views

Published on

第6回勉強会 - shinagawa.redmine
http://shinagawa.redmine.r-labs.org/versions/11

【公開】第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」 #47redmine: プログラマの思索 http://forza.cocolog-nifty.com/blog/2014/02/6redmineredmine.html

Published in: Technology

第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」

  1. 1. 開発基盤としてのRedmine 〜Redmineをカスタマイズするポイント 2014/2/15 あきぴー@品川Redmine copyright2014 akipii@XPJUG関西 1
  2. 2. • ハンドルネーム 自己紹介 • あきぴー • 所属 • XPJUG関⻄、SEA関⻄、RxTStudy、品川Redmine • 著書 • 「Redmineによるタスクマネジメント実践技法」 • 「チケット駆動開発」 • 「Redmine超入門」(品川Redmineスタッフと共著) copyright2014 akipii@XPJUG関西 2
  3. 3. Agenda • Redmineの現状と課題 • Redmineのカスタマイズポイント • • • • 外部接続I/F パラメータ設定 プラグイン登録 モディフィケーション • まとめ copyright2014 akipii@XPJUG関西 3
  4. 4. Redmineの現状と課題 copyright2014 akipii@XPJUG関西 4
  5. 5. Redmineの現状① • 日本のSIでRedmineが普及している • Redmineの利⽤率は40.4% • 記者の眼 - 「新3種の神器」で開発現場を改革しよう:ITpro http://itpro.nikkeibp.co.jp/article/Watcher/20130521/478496/ • 現場向けのプロジェクト管理ツールとして使われている 赤:Trac、青:Redmine、黄:Mantis ※2014年の日本のGoogleトレンドから copyright2014 akipii@XPJUG関西 5
  6. 6. Redmineの現状② • 日本では、Agile開発よりも従来のWF型開発に 適⽤している事例が多い • WF型開発の内部にある小さな開発サイクル • WF型開発で管理しきれない細かな作業管理 アダプタブルWF(WF型開発を補完するチケット駆動開発) アダプタブル の適用が多い 【例】「チケット駆動開発」の適用について考える |コラム「ITよもやま話」|特集│株式会社JSOL http://www.jsol.co.jp/column/2011/201111.html copyright2014 akipii@XPJUG関西 6
  7. 7. 【参考】アダプタブルWF (@sakaba37) WF型開発 型開発 設計 要件 定義 シス テム テス ト 開発 テスト リリース 補完型 TiDD 補完型 TiDD 設計 設計 開発 開発 テスト テスト 課題・レビュー管理 障害管理 WF型開発の各⼯程で管理しづらい作業をチケット駆動開発(TiDD)で補完する copyright2014 akipii@XPJUG関西 7
  8. 8. Redmineの課題 @akipii: Redmineを運用して改めて思うのは、 RedmineやTrac、Jira、GitHubなどのチケット駆動ツールは 開発者のためのツールであって、マネージャのためのツール ではないこと。 マネージャ視点では、進捗やコスト(工数)やリスクの観点で もっと見える化して欲しい要望が多い @fmkt: この @akipii さんのツイートRTされまくってて (Redmineユーザに)マネージャ多いんだなとかおもったり マネージャの観点で Redmineを機能拡張するポイントは何か? を機能拡張するポイント を機能拡張するポイントは何か? copyright2014 akipii@XPJUG関西 8
  9. 9. Redmineの2つの顔 表の顔 裏の顔 OSSの プロジェクト管理ツール 業務アプリケーションの 開発基盤 (プラットフォーム プラットフォーム) プラットフォーム ・プロジェクト管理で使われる機能が 一通りそろっている。 ・外部システムとの接続 が豊富 外部システムとの接続I/Fが豊富 外部システムとの接続 (REST、Webサービス、rakeによる バッチ処理 etc.) ・ソフトウェア企業(日本では主にSI)を ターゲットにしている。 ・機能のカスタマイズが容易 機能のカスタマイズが容易 ・プラグインによる機能追加 ・パラメータ設定 (プロジェクト、ワークフロー、権限 etc.) ・世界中で使われている。 ・タスク管理以外にも運用保守や ヘルプデスク管理、工数管理にも 使われている。 copyright2014 akipii@XPJUG関西 9
  10. 10. Redmineを カスタマイズするポイント copyright2014 akipii@XPJUG関西 10
  11. 11. 開発基盤としてのRedmine Redmineを開発基盤(プラットフォーム)と⾒なしてカスタマイズする場合、 4種類の手法がある。 外部接続I/Fを通じて 外部接続 を通じて データ操作だけを行う (REST, Webサービス, rake etc.) パラメータの設定だけ で機能拡張する (プロジェクト、ワークフ ロー、権限など) 標準機能のソースを 修正する事無く追加開 修正する事無く追加開 発で機能拡張する ③プラグイン (アドオン アドオン) アドオン アプリケーション層 (カスタマイズ箇所 カスタマイズ箇所) カスタマイズ箇所 ①外部接続I/F ②パラメータ設定 外部接続 標準機能のソースを 直接修正して 機能拡張する (EPM-X, Lychee etc.) ④モディフィケーション ソースを直接修正 プラットフォーム層 (Redmine) フレームワーク層 (Rails) copyright2014 akipii@XPJUG関西 11
  12. 12. 【1】外部接続I/F ①REST編 HTTPによる Redmine操作 RedminePM: (Redmineの iPhone/Android アプリ ) PC XML/ JSON http://redminepm.jp スマートフォン HTTP による リアル連携 サーバー 管理画面で「RESTによるWebサービス」を有効に 設定。「JSONP」にも対応している。 http://www.r-labs.org/projects/r-labs/wiki/Redmine_REST_API copyright2014 akipii@XPJUG関西 12
  13. 13. 【1】外部接続I/F ②構成管理ツールと連携 リポジトリ情報取得 バージョン管理リポジトリへコミット時、「refs #12」「fixes #13」でチケットと相互リンクできる http://redmine.jp/tech_note/subversion/ 管理画面で「リポジトリ管理用のWeb サービス」を有効に設定 →http://Redmineサーバ名 /sys/fetch_changesets?key=APIキー &id=プロジェクト識別子 で取得可能 (http://blog.redmine.jp/articles/redmine-0_9-url-tofetch-changesets/) copyright2014 akipii@XPJUG関西 13
  14. 14. 【1】外部接続I/F ③メールによるチケット登録 チケット登録用 メールアドレス ①メール発行 ②通知 @ ユーザ ③チケット 登録 ④チケット確認 他に下記のrakeコマンドもある。 rake redmine:email:read rake redmine:email:receive_imap rake redmine:email:receive_pop3 管理画⾯で「受信メール⽤Webサービス」を有効に設定 http://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails copyright2014 akipii@XPJUG関西 14
  15. 15. 【1】外部接続I/F ④他ITSからのデータ移⾏ データ移行 下記のrakeコマンドでデータ移⾏できる。 rake redmine:migrate_from_mantis # Mantis migration script rake redmine:migrate_from_trac # Trac migration script RedmineMigrate http://www.redmine.org/projects/redmine/wiki/RedmineMigrate 外部接続I/Fは他にも存在する。 【参考1】期日が間近のチケットをメールで通知する(リマインダ機能): Redmine.JP http://redmine.jp/faq/issue/send_reminders/ 【参考2】 Redmine Rake - Batch job tasks http://www.redmine.org/projects/redmine/wiki/RedmineRake#Batch-job-tasks copyright2014 akipii@XPJUG関西 15
  16. 16. 【2】パラメータ設定 ワークフロー機能で多種多様な運⽤が可能。 (障害、課題、タスク、問合せ、PC資産など) 他に、プロジェクト単位に権限やワークフローも設定できる。 ステータスの移行先 現 在 の ス テ ー タ ス 【参考】第3回SRA関⻄セミナー(2013/9/12) 「Redmineの運⽤パターン集〜私に聞くな、チケットシステムに聞け」 http://www.slideshare.net/akipii.oga/sea-west-ogawa201309open copyright2014 akipii@XPJUG関西 16
  17. 17. 【3】プラグインで機能追加 プラグインは、Railsフレームワークの一部として開発できる。 (1)Railsフレームワークは次の特徴を持つおかげで、開発しやすい。 ・CoC:設定より規約(Convention Over Configuration) ・DRY:繰り返しの禁止(Don't Repeat Yourself) (2)プラグインのインストールの基本は、ソース配置後、下記コマンドを実⾏するだけ。 rake redmine:plugins:migrate RAILS_ENV=production View 参照・更新 操作・依頼 アクセス DB Controller ユーザ Model プラグイン 【参考1】プラグイン開発ガイド - r-labs http://www.r-labs.org/projects/r-labs/wiki/プラグイン開発ガイド 【参考2】プラグインの開発〜Redmine.JP http://redmine.jp/tech_note/plugins/developer/ copyright2014 akipii@XPJUG関西 17
  18. 18. 【4】モディフィケーションで機能拡張①EPM-X Redmineプラットフォーム上でBI/ELTツールを追加開発して機能拡張している。 ※BI(Buisiness Inteligence):業務システムなどから蓄積される企業内の膨大なデータを、蓄積・分析・加 工して、企業の意思決定に活用しようとする手法。 ELT:企業の基幹系システムなどに蓄積されたデータを抽出(extract)し、データウェアハウスなどで利 用しやすい形に加工(transform)し、対象となるデータベースに書き出す(load)こと。 定量的プロジェクト管理ツール(EPM-X):IPA http://www.ipa.go.jp/about/toolcatalog/sec/sec-2-1.html copyright2014 akipii@XPJUG関西 18
  19. 19. 【4】②Lychee Enterpriseシリーズ Lychee Enterprise シリーズは、マネージャの観点で ソフトウェア開発のプロジェクト管理のQCDを支援している スケジュール(D) Lychee Gantt Chart (& Lychee Actual Date) 品質(Q) コスト(C) Lychee Association Chart Lychee EVM Lychee Enterprise : アジャイルウェア(株) http://lychee-redmine.jp/ copyright2014 akipii@XPJUG関西 19
  20. 20. まとめ copyright2014 akipii@XPJUG関西 20
  21. 21. Redmineカスタマイズ手法比較 No カスタマイズ手法 ⻑所 短所 1 外部接続I/F APIを⽤いて、Redmineから 自由にデータの取得・更新が できる (例:REST、JSONP、 rake) ・外部接続⽤プログラムの開発工数が 発生する ・通信要件や性能要件でボトルネック が発生する場合がある 2 パラメータ設定 フィットギャップ分析結果を Redmineの設定に反映す れば、十分に運⽤可能 ・機能拡張できる範囲が小さい 3 プラグイン追加 Redmine本体に手を加えず、・プラグイン開発のコストが発生する 容易に機能追加できる ・RedmineのVerUpに追随するため に回帰テスト工数が発生する 4 モディフィケーション Redmine本体の機能を自 由に修正・追加できる ・4種類のカスタマイズ手法のうち、最 も開発工数がかかる ・RedmineのVerUpに追随するコス トが大きい copyright2014 akipii@XPJUG関西 21
  22. 22. まとめ • RedmineはOSSのプロジェクト管理ツールの開発 基盤として使える • ソースが公開されているので、自由にカスタマイズできる • マネージャを顧客に⾒⽴てて、アジャイルに改善しよう • RedmineのVerUpに追随する⽅が良い • 細かな機能やUIがどんどん改善されている • セキュリティパッチも素早くリリースしてくれる • Redmineの外部接続I/Fを有効活⽤しよう • プラグイン追加やモディフィケーションでも、RESTやJSONP、 rakeのI/Fを流⽤する⽅が安全 copyright2014 akipii@XPJUG関西 22
  23. 23. ご清聴 ありがとう ございました copyright2014 akipii@XPJUG関西 23

×