記事ID:2539
分野:ソフトウェア開発
専門性:中
AIサマリー:
この記事では、シナジー研究所がソフトウェア開発プロジェクトでRedmineを活用する事例を紹介しています。特に、反復型開発スタイルでの利用方法が詳細に説明されています。Redmineのガントチャート機能とバージョン管理機能を用いることで、タスク管理と進捗状況の可視化を実現し、開発プロセスの効率化と透明性の向上が図られています。これにより、開発チーム全体のコミュニケーションが円滑になり、プロジェクトの成功に寄与しています。
ソフトウェア開発はREDMINEが従来から使われてきた適用分野です。
VisiWorkの運営会社であるシナジー研究所は、コンサルティングからシステム開発までを行う会社であり、お客様から受注したシステム開発案件を管理するためにREDMINE(Lychee Redmine)を使用しています。
シナジー研究所の開発案件では通常、反復型開発のスタイルが採用され、3から場合によっては2か月という比較的短い個別契約を反復して同一の開発案件を遂行することがあります。その個別契約の期間においては、はじめにお客様と概略の目標を設定し、毎月の月例会で進捗と結果を確認し、次期の目標について話し合うという過程を繰り返します。そこで、プロジェクト管理の手段として使用されるのがREDMINEです。
この記事では、シナジー研究所でどのようにソフトウェアプロジェクトの管理にREDMINEを使用しているかについて書いてみることにします。
ガントチャート
シナジー研究所では、REDMINEをプロジェクト管理に使用していると書きましたが、上述のようなプロセスをお客様と共有していますので、REDMINEはプロジェクト管理というよりは、コミュニケーション・ツールあるいはプロセス可視化ツールとして使用されていると言う方が適切かもしれません。
コミュニケーションや可視化と言えば、なんといっても一番わかりやすいアウトプットは、ガントチャートでしょう。実際の案件ではありませんが、VisiWorkサービスで用意しているサンプルプロジェクトのガントチャートを以下に示します。
これはいわゆるウォータフォール型と呼ばれるプロジェクトスケジュールを表していますが、先述のような反復型開発、あるいはいわゆるアジャイル開発のような、同一のプロダクト(製品)が反復して、あるいは変化しながら進化していく開発プロセスにおいては一工夫が必要で、そのためにバージョンという仕組みを使います。
バージョンとは、特定の期日までに完了させなければならないチケットをまとめて管理するためのものです。これにより、あるバージョンに属するチケットを一括して検索することができます。また、REDMINEでは、ロードマップ機能を使うことで、簡単にバージョン別の進捗状況を知ることができます。
前図のガントチャートに対して、11月リリース、12月リリースなどのバージョンを設定し、各タスクをこれらのバージョンに紐づけてみたのが、次の図になります。シナジー研究所の反復型開発では、このバージョンが1か月単位になりますが、アジャイル開発と言われるより反復期間の短い開発プロセスでは、このバージョンがより短く、たとえば1週間などになるでしょう。
シナジー研究所におけるバージョン機能の使い方としては、将来にわたっての開発計画をこのバージョン単位に一か月ごとに作って、事前に負荷山積み等で平準化を図る一方で、前月に未達成となった開発残項目をバージョンによって一括検索し、当月あるいはさらに未来のバージョンに割り振ることで、開発計画を達成するようにしています。
バージョン機能の使い方を先に説明しましたが、バージョン以外にもREDMINEは、各種の設定を行うことで使える機能がいろいろとあります。以下では、シナジー研究所の反復型開発において使われてきた設定のいくつかをご紹介します。
プロジェクト
全体の工数を把握するため「マスタースケジュール」を親プロジェクトとして作成し、改善作業を行う「リファクタ作業」、インフラ関連のタスクを登録する「インフラ作業」、マニュアルや仕様書のタスクを登録する「ドキュメント作成」を子プロジェクトに作成しています。この親子関係を図示すると以下のようになります。
随時発生する、お客様からの仕様確認や依頼を「質問箱」プロジェクトで、また、お客様環境で発生した不具合を「障害管理」プロジェクトで管理しています。
これは、記事「【TIPS】後悔しないプロジェクト構成」の表で説明したDのケースに相当します。
トラッカーとワークフロー
上記のマスタースケジュール以下のプロジェクトで利用している、トラッカー(作業種別)とワークフローをご紹介します。トラッカー、ワークフロー、ともにREDMINEの管理画面で設定する設定項目です。
トラッカーとしては、機能、バグ、作業の3種類を設定しています。チケットは親子の2階層とし、親チケットが子チケットを束ねる形をとっています。機能とバグは、親チケット用のトラッカー、作業は、子チケット専用で、機能とバグで共通に使われます。
冒頭で説明したお客様と合意した目標に対して、「機能」トラッカーの親チケットを作成し、その配下に、「作業」トラッカーの子チケットを登録します。
「バグ」トラッカーのチケットには、結合テスト以降に発生したバグを登録し、その配下に関連する「作業」トラッカーの子チケットを登録します。
親チケットとチケットではワークフローを変えています。「機能」トラッカーでは、機能全体の状況とリリースまでを把握するステータス設定とし、「作業」では担当者が作業ごとにより細かいステータスを入力できるようにしています。
このような2階層とするメリットは、マネージャー、リーダーが親チケットで機能全体の進捗を把握できる点です。REDMINDEでは、子チケットが全て完了するまで親チケットを完了させることができないのですが、その制約によって、子チケットの作業漏れを防ぐことができます。
この記事に関する質問やご意見がありましたら、当サイトお問い合わせページまでお寄せください。