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

10,273 views
10,143 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
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,273
On SlideShare
0
From Embeds
0
Number of Embeds
6,327
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

第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

×