こんにちは。元組み込みソフトウェアエンジニアでRedmineを使ったPlayingマネージャーを10年以上していた正月(しょうづき)です。
今回の記事のテーマはRedmineの「ワークフロー」について。
「Redmineを使い始めたけど、ワークフローって何?」
「複雑すぎてわからない!」
「どうやって決めていったらいいの?」
こういったお悩みはないでしょうか?私もどうやって設定するべきなのかよく悩んだものです。Redmineを日常的に使っていても、この部分に関してはかなり悩ましいところ。
本記事では、このワークフローについて、複雑なものをどうやってシンプルに設定していくかを明確にした上で、適切に設定・活用できるようにする術を記載します。
ワークフローを適切に設定することで、業務状況の「見える化」が進み、業務の「コミュニケーション効率」の改善にも繋げていけるようになります。
是非、読み進めて、ワークフローについて理解を深めてみてください。
ワークフローは「業務プロセス」の可視化をするものである
ワークフローは「業務プロセス」の可視化をするものであるとよく言われます。簡単に言うと、日常に行われている業務の流れのことです。この流れを可視化したものを「ワークフロー」といいます。
業務プロセスは会社毎にあると思います。そして、異なると思います。そのため、今回はソフトウェア業界で一般的な「ウォーターフォール」と呼ばれる開発プロセスで説明します。
一般的なウォーターフォール型の開発プロセスは以下のような形になっています。
- 要件定義
- 基本設計
- 詳細設計
- プログラミング(実装)
- 単体テスト
- 結合テスト
- システムテスト
1→2→3→4→5→6→7と順番に進める流れで作業工程を進めます。この各工程の中には以下のような作業フローが存在します。
- 着手前
- 作業中
- 作業完了
- レビュー待ち
- レビュー中
- 完了
これを可視化すると以下のような形になります。
この様に業務プロセスの流れを可視化したものを「ワークフロー」といいます。
ワークフローを決めるメリット
ワークフローを決めるメリットを3つ挙げます。
- 効率の向上に繋がる
- ミスの軽減に繋がる
- 透明性と可視性の向上に繋がる
それぞれについて、詳細を説明します。
1.効率の向上に繋がる
タスクの手順や役割分担が明確化されます。これにより、作業の流れがスムーズになり、タスク完了までの時間短縮に繋がります。効率的なワークフローを設計することで、作業の停滞や重複を最小限に抑えることができます。
2.ミスの軽減に繋がる
各ステップが確立され、作業者が指示に従って進めることで、作業ミスやミスコミュニケーションのリスクが低減されます。また、自動化や標準化の要素を組み込むことで、ヒューマンエラーの可能性を減らすこともできます。
3.透明性と可視性の向上に繋がる
プロジェクトや作業の進捗状況を把握しやすくなります。各ステップが明確になるため、どの段階に作業があるのか、誰が担当しているのかが一目で分かります。また、プロジェクトの管理やチームの協力が容易になります。
進捗管理とワークフロー
業務の進捗を管理するためにはワークフローが明確になっておく必要があります。何故なら、「どこまで進んでいるか?」が明確になっていないと進捗の確認はできません。ワークフローを明確にしておくと、どの時点まで作業が進んでいるかが明確になり、進捗管理がしやすくなります。
Redmineのワークフロー設定の概要
Redmineにはそのまま「ワークフロー」と呼ばれる設定画面が存在します。
このワークフローの画面はすぐに見た感じだと理解しにくいと思います。
左が現在のステータスで、上が遷移する先のステータスです。ステータスを増やせば増やすほど複雑になります。
このワークフローの画面について細かい設定を見ていきましょう。
ワークフローを使うための基礎知識
まず、このワークフローを使うにあたって、知っておく必要のある基礎知識に関して説明をしていきます。
トラッカー
トラッカーはチケットの種類のことを指します。チケットをどう分類分けするかは会社毎に決める必要があります。ここでは2つ程例を挙げて説明します。
例1)作業分類をトラッカーにする
作業分類をトラッカーの種類としてしまうやり方です。これは、Redmine標準でも用意されている以下のようなトラッカーです。
- バグ
- 機能
- サポート
バグはソフト不具合、機能は開発物に搭載するための機能、サポートは作業中に発生する質問やQAなどが該当します。この様に作業分類をトラッカーとしてしまうやり方が存在します。
例2)各工程をトラッカーにする
先程のウォーターフォールの例を挙げると以下がトラッカーの種類になります。
- 要件定義
- 基本設計
- 詳細設計
- 実装
- 単体テスト
- 結合テスト
- システムテスト
この様に各工程をトラッカーとして管理することも可能です。
ステータス
ステータスとはチケットの状態のことを指します。先程のウォーターフォール開発の例では以下が挙げられます。
- 着手前
- 作業中
- レビュー待ち
- レビュー中
- 完了
このステータスが多ければ多い程複雑になるため、なるべく最小限に抑えるようにしましょう。
ロールと権限
ロールはプロジェクト内での役割、権限は役割ごとのプロジェクト内でできることを制限するための設定になります。
この役割ですが、ステータスの遷移を行うためには条件が必要な場合があります。
例えば、先述した「5.レビュー中」から「6.完了」までは多くの会社で責任者となるプロジェクトマネージャーやチームリーダーといった特定の人物だけが承認権限を持っていたりすると思います。
そのため、例えばロール「マネージャー」にのみ「5→6へのステータス遷移」を許可し、その他のロールはできないようにすることで、業務フローに「関所」を設けることが可能になってきます。
ただし、この権限を縛りすぎると柔軟性がなくなり、業務負荷が偏る可能性があるので注意が必要です。
実際の設定方法
それではここで実際の画面での設定を見ていきましょう。
<実例>ウォーターフォールモデルのワークフロー設定
先程のウォーターフォールモデルの開発に関して実際にワークフローを設定していきましょう。
①トラッカーについて
Redmine標準のトラッカーは先述しましたが、以下の通りです。
- バグ
- 機能
- サポート
ここに、新たにトラッカーを追加します。今回は機能を実装するための「作業」が発生するケースを想定します。この作業を「タスク」というトラッカー名で追加するようにします。
作業手順としては、「新しいトラッカー」ボタンを押して、名称を「タスク」として作成していきます。
新しいトラッカーボタンを押すと次のような画面になります。この名称に「タスク」を入力してください。
また、デフォルトのステータスには一旦「新規」を選択して、標準フィールドはそのままで登録していきます。
これで、トラッカーに「タスク」が追加されています。
この時点ではまだ、ワークフローは設定されていません。
②ステータスについて
次にステータスについて設定をしていきます。先述した内容だと以下の通りです。
- 着手前
- 作業中
- レビュー待ち
- レビュー中
- 完了
しかし、Redmineでは実作業者と一緒にステータスの流れを考えてみてください。この時、図示するのをオススメします。
図示した結果を見てみると、足りないフローがあることに気づくと思います。レビュー中の後、指摘がなければいいのですが、一般的にレビューした結果、指摘があり、差し戻しが発生することがあると思います。
そこで、以下のようなフローになります。
この様に図示すると必要なステータスが以下になることがわかります。
- 着手前
- 作業中
- レビュー待ち
- レビュー中
- 完了
- 差し戻し
また、今回シンプルなフローでの説明になっているため、登場人物は2人(作業者とレビュー責任者)のみに限定していますが、組織によっては更に複雑になる可能性があります。
この辺りを明確にするためにもフロー図を活用して、一度絵に描いてみることをオススメします。
③ワークフローについて
ワークフローの設定は図の矢印の方向にしか進めないようにすることが必要になってきます。
ただし、注意が必要で、手戻りや失敗したなどの時に矢印の方向にしか進めないと戻れないという形になり、余計な手間がかかる可能性があります。
そのため、Redmineのワークフローでは不可逆ではなく可逆にしておいた方がいいパターンもあります。この辺りは会社のルール次第でもあるので、よく検討してください。
例)先程のレビューでの手戻りが発生した場合の「差し戻し」ステータスが「着手中」に戻るための設定になります。
<実践>ウォーターフォールモデルのワークフローの流れ
先程の「トラッカー」「ステータス」の設定で実際に動いた場合のワークフローは以下の図の形になります。
この様に、ステータスの遷移と担当者を明確にすることで、業務プロセスがどの様に進むのかが明確になり、これをRedmineのチケットで表現するようにします。
この図の「作業担当者」=「開発者」、「レビュー担当者」=「マネージャー」としてロールを用意して、実際の画面を紹介していきます。
①「開発者」設定
まずは開発者のフローから説明します。
開発者には新しいチケットを作成する権限を与えるため、左端の新しいチケットの行の「着手前」だけチェックを入れます。これで、新規チケットを作成した際のステータスが「着手中」になります。
この後は、図に合う様にチェックを入れていきます。左の列が「現在のステータス」で上の業が「遷移できるステータス」なので、該当するチェックボックスにチェックを入れるようにしましょう。
②「マネージャー」設定
次にマネージャーのフローについて説明します。
マネージャーのフローは新規チケットの作成は今回は許可しません。レビュー待ちからレビュー中への遷移だけ許可するようにします。これ以降は図に沿ってチェックボックスをチェックしていく形になります。
これで全てのワークフローの設定は完了しました。しかし、この時、気をつけないといけないのは「作業中」から「レビュー待ち」にステータス変更する時に、
担当を「開発者」から「マネージャー」に変更しないとどこにも遷移できない状態が発生します。
そのため、ワークフローの流れに関して、見直す必要が出てきそうです。
ルールとして必ず担当を変更するように気をつけるなのか、誰かが遷移できるようにワークフローを設定するなのか…
色々とやり方はあると思いますので、考えてみてください。
ワークフローを使いこなす際のポイント
ここではワークフローをうまく使いこなすためのポイントに関して解説していきます。このポイントに気をつけてワークフローを活用していきましょう。
適切な切り分けの粒度
ワークフローの粒度に適切な切り分けの明確な指標はありません。ですが、運用・引き継ぎがしやすいような「シンプルな設計」にするのが重要になります。遷移する条件が複雑になれば、運用が難しくなっていきます。
ワークフローの遷移条件をシンプルに設計するようにしましょう。
定期的なワークフローの見直しと運用改善
ワークフローは一度決めるとなかなか変えることは難しいものになってきます。しかし、試してみないと本当に実業務にフィットするかはわかりません。
実業務と合っていない場合、軋轢を生み、ツールが使いにくい、業務がやりにくいなどの不満が溜まることに繋がってしまい、生産性の低下に繋がるかもしれません。
定期的なワークフローの見直しを行って改善し、更に施行を繰り返しましょう。長年同じフローを使っていても、良くない部分が見当たれば、改善し、より良い作業環境にすることが重要となってきます。
ワークフローと絡めて進捗状況をより詳細に把握するにはLychee Redmineがオススメ
Redmineのワークフローが決まったら、進捗状況をより詳細に把握するのにLychee Redmineにあるカンバン機能もご検討ください。Lcyee RedmineはRedmineの拡張プラグインであり、使い勝手がよく、進捗状況の「見える化」を図ることができます。
この様な形で、チケット一つ一つがどういう状況なのかが見える化ができます。一つの画面で状況が把握できるため、直感的に状況が分かるのが便利です。また、担当者別にも表示ができます。
この様に映し出すことで、誰がどれだけのチケットを持っているか、それぞれがどういう状況なのかもわかり、業務負荷の分散検討にも活用できます。
Lychee Redmineを活用して、さらなる「見える化」を推進して、プロジェクトを円滑に進めるようにしましょう!
まとめ
設定が難しいワークフローに関して以下のような形で説明してきました。
- ワークフローとは何か?
- ワークフローを設定するメリットとは?
- ワークフローに関連する用語について
- Redmineのワークフローの設定方法
- 実際の設定方法例
- ワークフローを使いこなすポイント
読み進めることでワークフローの設定に関して理解が深まったと思います。複雑なワークフローに関して、ワークフローを設定することで、状況把握がしやすくなり、進捗状況の「見える化」が容易になってきます。Redmineの「ワークフロー」を活用して、業務の進捗状況を把握してプロジェクトを円滑に進めていけるようにしていきましょう!