Redmine活用術(とある技術者の活用方法)

# 本記事について
※全体的に構成から何から何まで2019/04/29に更新しました。
※色々更新中です。随時更新します。

堅苦しく書くつもりはないのですが、まずは以下を書きたいと思います。

* なぜこの記事を書こうとしたのか
* どんな人にこの記事を参考にして欲しいか
* 自己紹介

その後に「Redmine」についてつらつらと…
時には「Git」や「Jenkins」といったツールを紹介したいと思います。

## なぜこの記事を書こうとしたのか？
[redmine.tokyo 第15回勉強会](https://redmine.tokyo/projects/shinared/wiki/%E7%AC%AC15%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A)への参加がきっかけ。
様々な人の発表を聞いていると、ここでは私が社内でRedmineを活用しようとして
「失敗した話」「現在進行系の話」「これからやりたいこと」…全てが説明されていた！
でも、私がいろいろ探した書籍やらブログにあまり赤裸々に書かれていない！
なら、まずは書いてみよう！ということがきっかけ。
皆様の何かの活用になればと思って始めてみました。
(目指せコンプライアンス規定に触れないようにギリギリのラインでいっぱい書く！)
後、Redmineエバンジェリストの方々の思想に憧れを持つので…
目指せ「社内Redmineマイスター」となるべく、記事にして忘れないようにするため…。

## どんな人にこの記事を参考にして欲しいか？
本内容はRedmineに関して私のこれまでの失敗含めて色々とつらつらと書きます。

* これからRedmineで色々はじめようと考えている人
* Redmineに興味がある人
* よくわからないけどとりあえず読んでみるかな人

上記の方々に向けて書きます。ダラダラした文章で読みにくかったらすみません。

## 自己紹介
自称エンジニア。これまでに二社で働いています(現在二社目)。
C言語で組み込みやっています。
某製品の音楽再生やら動画再生やらメディア再生系の仕事が多いです。
とりあえず目指すは組み込みなんでも屋さん。
「社内インフラ整備屋さん」は今の会社ではじめました。
(最近辞めろ(誰かに渡せ)感が半端ないw)

完全ド素人の日曜大工屋さんです。
(この記事は「何もRedmineなんて知らないよ！」のレベル(今もｗ)を
 思い出しながら「全て」書きます。)

それでは次から本題に入ります！

## Redmine活用術(本題)
それでは…

* 失敗談
* 私が考えるRedmineの活用方法
* 現在の環境説明
* 導入方法(どうやって環境作った？)
* 成功談(？)

上記で説明をしていきます。

####1.失敗談
まずは、失敗談から書くことにします。
遡ること7年ぐらい前。Redmineがまだ「1.*」の時代。前職で初めてRedmineを使用していました。
「お？これ、色々使えるんじゃない？」

…

…

…

そこで終わりましたorz
いや…バグの管理には使っていたのですが、誰も更新しない。
バグのチケットは溜まる。とりあえずチケットの更新履歴だけは読む。
溜まる→更新しない→溜まる…
結果、バグの情報だけが溜まって終わりました。
私も駆け出しで、先輩が管理していたのでそのまま…本当にもったいないことをしていました。
今もその職場では変わっていないのかもしれません…。

####2.私が考えるRedmineの「活用方法」
失敗談を経験し、転職した私。会社の惨状を見るも無残なものでした…

1.バグの管理がされていない(バグは起きたときに直す。直した後？知らね)
2.ソフトウェア(修正内容)の管理がされていない

そこで「Redmine」でバグを管理しようと考えて導入に踏み込んだわけです。
私の失敗談からフェーズを3段階に分けることにしました。

[フェーズ1]
**とりあえず慣れてもらう**

[フェーズ2]
**管理ルールを決めてルールに従ってもらう**

[フェーズ3]
**自発的にカイゼンを提案できるチームを作りカイゼンをしていく**

####3.現在の環境説明
まずは現在使用中の環境説明から！これ、参考になりますよね。
私も他の方のこの部分が参考になりました。
しかし、結構作り方端折っていることが多くて困った…ってのが経験。
次の「2.導入方法」で極力全て書きます。
…が、抜けてわからないことがあるかも？その時は質問してください。

1.サーバ環境
サーバの環境は以下の通りです。

|項目                  | 使っている内容        |
|:---------------------|--------------------:|
| OS                   | CentOS Linux release 7.1.1503 (Core) |
| オンプレ？クラウド？   | オンプレ(仮想)                        |


サーバは正直なんでも良いと思っています。容量とかは？とか質問あるかと
思いますが、ここに関しては使い方とお値段とのご相談になるかなぁ…
今の会社は景気が良いときがあってそこで4TBのHDDをレイドして…みたいなことをしています。
素人日曜大工がやったのでいい環境とは言えませんが、日々動いています。
ただ、OSについては合わせてもらえると以下の作り方が非常に参考になると思います。
※OSは64bit版です。Linux版を使う際には凄く重要になります。
ちなみにオンプレ(仮想)はサーバ買った際にvSphireがついてきたのでVMで使用しています。
これに関してはあったらいいなぁぐらい？

2.Redmine環境
Redmineの環境は以下の通りです。

|項目                  | 使っている内容        |
|:---------------------|--------------------:|
| Redmine              | Bitnami Redmine 3.4.6 |

Bitnamiなところがミソ

####4.導入方法

極力初心者でも安心な説明をします。
まずはOSのインストール。

1.Googleで「Centos install」を検索
一番上に来たページを参考にしてください。
正直、私が説明するより何倍もわかりやすく書いてくれている人がいます。

2.Bitnami redmineをダウンロード
以下のページからダウンロード
https://bitnami.com/stack/redmine/installer

Linux版(64bit)をダウンロードしてください。
※ここがLinux版の64bit版を推奨している理由

3.install
執筆中

★導入のコツ
Bitnamiを使いましょう。
[理由]
日曜大工な私はRailsって何？データベースって何？インストールできない！
nokogiriってなんだ？そのエラー？nokogiriが終わったら…っと、
Redmineを入れるのに正直1周間は悩みました。それがBitnamiなら数時間…
時間がもったいなかったです…。ちなみに最終的に買った本「Redmine超入門」。
これにBitnamiの紹介があってできました。

####5.使用しているプラグイン
社内で使用しているプラグインについて紹介します。

|プラグイン                   | 使っている内容        |有償/無償 |HP　　　　　|
|:---------------------------|:---------------------|:--------|:-----------|
| Lychee Redmine             |ガントチャートなど|有償|http://lychee-redmine.jp|
| Redmine Code Review plugin |コードレビュー|無償|http://www.r-labs.org/projects/show/codereview|
|Redmine Issue Templates plugin |テンプレート|無償|https://github.com/akiko-pusu/redmine_issue_templates|
|Redmine Wiki Unc plugin |wiki編集|無償|https://github.com/bearmini/redmine_wiki_unc/blob/master/README.rdoc.ja
|

基本的に無償のものを使うようにしています。
Lycheeに関しては(上司が)ガントチャートが使いたいがため。
ちょっとこのあたりの使い方についての良し悪しは「4.活用している内容」で説明します。

####6.活用している内容
現在、社内で活用している内容を書きます。
ちなみに私は紹介文にも書きましたが「組み込み開発」屋です。

|項目                  | 成功/失敗        |
|:---------------------|--------------------:|
| 「バグ」管理          | 成功 |
| ナレッジベース        | 成功 |
| 「進捗」管理          | 失敗 |
| 「スケジュール」管理   | 失敗(？) |
| コードレビュー        | 失敗(？) |
次にそれぞれの具体的な成功/失敗事例を書きます。
ここが皆様の何かの役に立てば…。

#####6-1.成功談(まずは良いことから)
まずは「バグ」管理から。
これについては前職からやっていたのでイメージがついており、他の人に説明しやすかったのと…

**「バグ」発生→「チケット」起票**

と**ルールがわかりやすかった**から。
また、書く内容に関しては「Issue Template」で予め書かなくては
いけない情報(バージョン情報や発生頻度など)をテンプレート化することで
ほぼRedmineの設定を変えないまま使えているのがありがたいところです。
**必要な情報が増えたらテンプレートを変えればいい**だけ。
また、日々の修正・進捗状況も確認でき、データとして管理できるので
グラフ化して報告にも使えます。
グラフ化は他のチームがやってて詳しく知らないので聞いたら更新。

次にナレッジ・ベース。
**要はwikiです。**
みんなが色々と気づいた情報を載せれるので活用されまくる!!!
ただ、最近は乱立しすぎてどこに情報がいったかわからなくなってきている…。
**一番親のプロジェクトに一個の割合でつくる**ことを勧めます。
(私の会社ではすべてのプロジェクトにwiki用意してしまったので整理中…)

## 番外
プラグインの活用術についてご紹介できるページ

・issue Templateの作成者様のHP
https://daily-postit.hatenablog.com/entry/2018/12/09/150835
→
私がtwitterで活用方法を具体的な説明がほしいとつぶやいたら
反応してくださって書いてくださいました。
バナープラグインに関しては入れて活用例をここに書こうと思います。

(執筆中)

## Redmineと連携しているツール
ここではRedmineと連携して使用しているツール等を説明していきます。
(執筆中)

## 今後の展望
(執筆中)