Excelでバックログを管理し、タスクボードで日々の進捗状態を可視化する、これは小さなチームがアジャイル開発を気軽にスタートできるベストプラクティスと言っても過言ではありません。しかし、開発期間が3か月を超えたり、チームメンバーが5人になったり、マルチサイトの開発が始まったりといった状況になると、何かプロジェクトの可視化をサポートし、チームメンバー間のコミュニケーションを促進するより専門的なツールが使えたら、というような気持ちが次第に沸いてきます。
本記事では、以下の構成で、プロジェクト管理ツールHansoftを用いてアジャイル開発をスタートする方法を紹介いたします。
つまり、「今すぐ使える」アジャイルプロジェクト管理ツールとしてのクイックスタートのご説明が中心となっています。アジャイル開発をサポートするプロジェクト管理ツールをご検討されている方、Hansoftの導入をご検討されている方、あるいはHansoftを利用し始めている方のご参考にしていただければ幸いです。
アジャイルプロジェクト管理には 3 つのポイントがある
アジャイル開発にはさまざまな開発手法があります。スクラムがシンプルさと実践しやすさで、最も使われています(図1)。本記事では、以降、アジャイル開発といった場合にスクラムを前提とします。
スクラムは複雑な製品開発を管理するためのアジャイル開発のデファクトスタンダードの手法です。プロダクトオーナー、スクラムマスター、開発チームからなるスクラムチームは1~4週間の複数の反復(反復=スプリント)で開発を行い、反復毎に動作する製品の一部を納品します。そのため、図2で示すように、
- プロダクトバックログを用いて、製品開発の内容を管理します。プロダクトオーナーはプロダクトバックログの内容と優先順位に責任を持ち、開発する製品の価値を確保します。
- スプリントはスプリント計画で始まります。優先順位が付けられたプロダクトバックログに基き、開発チームは開発内容をプロダクトオーナーと合意します。個々のプロダクトバックログ項目の実装について、開発チームは実装方法を決め、タスクを識別します。2週間のスプリントの場合スプリント計画が4時間かかります。終了時にスプリントバックログを作成します。
- 開発チームはスプリントバックログに基づいて、スプリントを実施します。毎日、スクラムマスターと開発チームは15分のデイリースクラムを行い、プロジェクトの進捗を計測し、日々の計画を確認します。進捗状況はバーンダウンチャートなどに反映します。
- スプリント終了時に、開発された製品の一部(インクリメント)に対するスプリントレビューと改善のためのスプリント振り返りを行います。
このように、スクラムを導入するチームにとっては、
- 何を開発するかに関するプロダクトバックログを管理し共有する
- いつ納品できるかに関わる長期計画(リリース計画)と反復計画(スプリント計画)を策定し、日々の開発状況を可視化する
- 3つの役割間の協力とコミュニケーションを促進する
の3点がアジャイルプロジェクト管理のキーポイントとなります。
Hansoftとは何か
HansoftはスウェーデンのHansoft社が提供するクライアント/サーバー型のプロジェクト管理ツールです。表1に記した主要な特長と機能から、Hansoftは上記のアジャイルプロジェクト管理の3つのキーポイントをしっかりカバーしていることがお分かりいただけると思います。
特長 | 機能 |
---|---|
要求管理 | プロダクトバックログ管理 |
計画と進捗管理 | リリース計画、スプリント計画と進捗管理 カンバン、ワークフロー、パイプライン |
WBS ガントチャートによる計画と進捗管理 |
|
品質管理 | 不具合管理 |
意思決定のサポート | レポートとダッシュボード 高品質・リアルタイムのデータ |
コミュニケーションの促進 | チャット、ニュースフィード |
Hansoftの優れている点
Hansoftはもとはと言えばゲーム開発者が自分たちの開発を管理するために生み出したツールでした。そのため、データベースの構造及びデータベースへのアクセス、サーバーとクライアント間の通信について、速度とセキュリティを特に重視しています。今でも世界中で多数の著名なゲームメーカーが実はHansoftを利用し開発を管理しています。特に次の4点において優れています。
1. 操作が軽い → ストレスフリー
Hansoftの操作は軽快で、かつCPUへの負荷も軽く、常時起動しても、開発マシンへの目立った影響がありません。
2. 導入が速い → 学習コストを考慮しなくでもよい
Windowsでも、OS Xでも、Linuxでも、サーバーやクライアントのインストールはワンクリックで済みます。直観的なインタフェースで、自分のやりたいことをすぐ開始できます。
3. 複数の開発方法を併用する開発をサポートする → 一つのツールでプロジェクト全体を管理できる
例えば、以下のような、1つのプロジェクトに複数の開発手法が混在する場合であっても、Hansoftだけでプロジェクト管理ができます。
- 組み込み開発:ソフトウェア開発チームはアジャイル的に開発する一方、ハードウェア開発チームはガントチャートを利用している。
- ゲーム開発:ソフトウェア開発チームが短い反復で開発しつつ、デザインチームはカンバン方式で開発する。
Hansoftはアジャイル開発プロジェクト管理をサポートすることはもちろん、従来のガントチャートを用いたプロジェクト管理にも対応します。
4. 多言語対応 → 多国間の協同開発をサポートする
Hansoftのユーザーは自分の好みによって、インタフェースを英語、日本語及び中国語の中から選ぶことができます。
以上がHansoftの基本的な機能と特長です。より詳細な情報は弊社のホームページをご覧ください。
Hansoftでスクラムしてみよう
Hansoft社は1サーバーに付き9ユーザーまで、無期限に使える無償トライアル版を提供しています。この「9ユーザー」という規模は、通常9人以下で構成される1つのスクラムチームがフル機能で無期限に使えることを意味します。以下、Hansoftの無償トライアル版で、もっとも基本的な機能を利用し、スクラムの導入を紹介いたします。
I.Hansoftのインストールと設定
まず、 Hansoftをインストールする予定のサーバーのOSに応じ、Hansoftの無償トライアル版をダウンロードします。2014年12月現在では、Hansoft V8.2がご利用できます。クライアントのOSが異なる場合、クライアントPCのOSに合わせ、別途Hansoftのクライアントをダウンロードします。以下サーバーとクライアントのOSとしてWindows 7を前提に説明します。
Hansoftのインストールはサーバーとクライアントがそれぞれで行います。
サーバーのインストール
Hansoftのサーバーとなるマシン上で、ダウンロードしたexeファイルをダブルクリックし、セットアップのウィザードに従い、インストールを行います。「コンポーネントを選んでください」ステップで、「すべて」を選び、Hansoftサーバーとクライアントが同時にインストールします。インストール完了後、HansoftのサーバーはWindowsのサービスとして開始します。
クライアントのインストール
上でダウンロードしたexeファイル、あるいは別途でダウンロードしたHansoftクライアントのインストールファイルを開き、ウィザードに従いインストールを完了します。
Hansoftをインストールした後に、実際の開発で利用するための設定をサーバーで行います。
1. Hansoftサーバーの管理者パスワードを変更する
Hansoftがサーバーの管理機能を提供しています。この機能は、Windowsの「スタート→すべてのプログラム」のメニューから「Hansoft→Server→Hansoftサーバー管理」で起動できます。
Hansoftのサーバーの管理機能が、ライセンスの更新や変更、サーバー名や管理者パスワードやセキュリティなどサーバーの設定、データベースの作成・削除、個々のデータベースの設定機能を提供しています。
2. Hansoftの管理者としてユーザー登録とプロジェクト登録を行う
Hansoftの管理者(Administrator)はHansoftのユーザーの管理、プロジェクトの管理、共有の管理、ダッシュボードの管理を行います。また、メールの設定、セキュリティポリシーの設定なども必要に応じできます。
以下、開発に関わる人々がすぐHansoftを利用できるように、ユーザーの管理とプロジェクトの管理を利用し、プロジェクト及びプロジェクトの参加者の登録を行います。
3. ユーザーの登録
1ユーザーにつきHansoftのクライアントライセンス1つが必要です。
ユーザー登録は「ユーザー」タブで「新規ユーザーを作成」をクリックし、ポップアップした「新規ユーザーを作成」画面で行います。登録した「名前」が作成したユーザーのログインIDとなります。
「新規ユーザーを作成」ポップアップ画面の「ユーザーグループ」を利用し、必要に応じてユーザーグループを定義します。例えば、所属別、役割別、役職別などにユーザーをグループに分類することができます。
ユーザー登録後、Hansoftで管理するデータに対するアクセス権限をユーザー別に設定します。顧客、社員、パートナーによる権限設定、管理者、一般利用者による権限設定、役割による権限設定など、組織の構造に応じ柔軟にできます。
4. プロジェクトの登録
上記のユーザー登録と同要領で、「プロジェクト」タブで「新規プロジェクトを作成」をクリックし、プロジェクトの登録を行います。Hansoftはプロジェクト管理のテンプレートを事前に定義しているので、自分のニーズに応じて選択することができます。本記事では、スクラムのプロジェクトのテンプレートを利用します。プロジェクト名を入力し、「アジャイルを使用」を選択します。「OK」をクリックし、次にプロジェクトメンバーの追加を行います。
プロジェクトにメンバーが追加された後に、メンバーたちの権限設定を行い、このプロジェクトの情報に関連するアクセス権限に制約をかけます。
本記事ではサンプルプロジェクト「図書管理システム」を登録しました。
田中PO | 林SM | 上野 | ||
---|---|---|---|---|
管理者権限 | プロジェクトサーバーにログオン | ○ | ○ | ○ |
管理画面へのアクセス | ○ | |||
ポートフォリオ割当へのアクセス | ○ | |||
ドキュメントへのアクセス | ○ | ○ | ○ | |
ダッシュボードへのアクセス | ○ | ○ | ||
ダッシュボードのページの共有 | ○ | ○ | ○ | |
プロジェクト権限 | メインマネージャー | ○ | ○ | |
閲覧制限 | ||||
プロジェクト履歴へアクセス可能 | ○ |
プロジェクトメンバーはプロダクトオーナーの田中PO、スクラムマスターの林SM、メンバーの上野の3ユーザーを登録しました。各メンバーの権限は表2のように設定し、林SMには、管理者権限をフルで付与し、プロジェクトのメインマネージャーとして権限設定をしました。
この節では、1つのスクラムチームがHansoftを入手し、サーバーとクライアントをそれぞれインストールし、基本的な設定を行う方法を紹介しました。これで、プロジェクトメンバーはすぐHansoftが利用できます。
III.プロダクトバックログの作成
スクラムチームは、納品物の価値を最大化にするため、開発内容(要求など)をプロダクトバックログとして管理し、優先順位の高いプロダクトバクログ項目から開発していきます。プロダクトバックログで管理される項目は開発される可能性があるもので、逆に言うとプロダクトバックログに入っていない項目は開発対象からは外れます。プロダクトバックログはチームの作業の目標であり、作業の根拠ですから、その管理は非常に大切です。
プロダクトバックログ項目の源は顧客の要望、市場のニーズ、チームの提案など様々です。プロダクトオーナーはプロダクトバックログの管理責任者でもあり、その優先順位と内容に責任を持ちます。以下、プロダクトバックログの作成と管理におけるHansoftの活用方法を説明します。
プロダクトバックログの入力
プロダクトバックログの個々の項目は通常プロダクトオーナーや開発内容に関心ある関係者やチームで複数回のワークショップ(インタビュー、議論を含む)などで識別を行います。ワークショップでは、検討の結果が付箋やカードに書かれたり、電子ファイルで記述されたり、その場でツールに入力されたりします。
Hansoftを利用する場合、プロダクトバックログの階層ビューで、手入力によって直接個々のプロダクトバックログ項目を入力できますし、他の電子ファイルからコピーペーストで、あるいはXMLファイルからのインポートで、プロダクトバックログ項目の一括入力もできます。図7は、入力された図書管理システムのプロダクトバックログを示します。
プロダクトバックログの見積もり
アジャイル開発では、プロダクトバックログの見積もりはストーリーポイントを利用し、相対的な見積もりを行うことが推奨されています。一方、時間の予実績管理は組織によって求められる場合があります。
Hansoftにおけるプロダクトバックログの見積もりはデフォルトが「概算日数」です。「ストーリーポイント」を利用する場合、図8で示すように、カラムを追加することで対応します。従って、プロダクトバックログの見積もりは「時間」単位であろうと、「ポイント単位」であろうと、どちらでも可能です。いずれにせよ、ここで、各プロダクトバックログ項目の見積もり結果をHansoftに入力します。
プロダクトバックログの優先順位調整
Hansoftは1つのプロダクトバックログを階層、ボード及び優先度の視点で可視化できます。プロダクトバックログの優先順位を調整する時には、プロダクトバックログの「優先度」ビューを利用します。
Hansoftでの優先順位は5段階で評価できます。プロダクトバックログ項目ドラッグをして上下にーに移動することで優先順位を簡単に調整できます。
プロダクトバックログの管理
一般的に、プロダクトバックログ項目は優先順位の高いものは詳細化されており、逆に優先順位の低いものは抽象度が高く、粒度も大きいという特徴があります。1つの反復に付き5%から10%未満の工数を使い、プロダクトバックログに対する定期的な手入れを行います。この活動を通じ、チームが2、3スプリント先で開発するプロダクトバックログ項目を検討し、詳細化していきます。また、この過程で粒度の大きなプロダクトバックログ項目の分解を行い、反復期間に収まる規模に分けていきます
図10で示すように、Hansoftはプロダクトバックログ項目の階層化をサポートします。また、プロダクトバックログ項目に対する補足情報及び検討はコメントや添付ファイルを利用して行うことができます。
III.リリース計画の作成
変更に強いアジャイル開発ですが、だからと言って長期的な計画を考慮しないわけではありません。開発プロジェクトにビジョンがあり、そのビジョンの実現に向けて、チームや開発の関係者が、いつ、どのようなものをリリースするのかについての全体的な見通しを共有していることが大事です。
本記事のサンプルプロジェクト「図書管理システム」のリリース計画では、リリース日とリリース目標、スプリントの周期と数、リソースの配置を行います。Hansoftを利用する場合、リリース計画は図11で示す「プランニング」タブの「アジャイルスケジュール」ビューで行います。
表3のリリース予定に基づくリリース計画を、以下に示す4つのステップで作成します。
リリースNo. | 開発期間 | リリース目標 |
---|---|---|
1 | 2ヶ月 | 書籍の貸出・返却情報がシステムで管理できる |
2 | 1ヶ月 | 書籍へのコメントや感想がシステムで管理できる |
3 | 1ヶ月 | 貸出期間の設定や延滞がシステムで管理できる |
4 | 1ヶ月 | SNSとの連携ができる |
1. プロジェクトのカレンダーを設定する
「アジャイルスケジュールビュー」で「その他」をクリックし、「プロジェクトのカスタマイズ」で「プロジェクトのカレンダー」を設定します。図12は設定画面です。今回のサンプルプロジェクトでは、年末年始の休日を設定します。
また、同「プロジェクトのカスタマイズ」で「アジャイル&スケジューリング」で、スプリントの周期を設定します。今回は2週間(14日)のスプリントを設定します。
2. スケジューリングする
チームごとの計画、リリースごとの計画、フィーチャーごとの計画、大計画と中・小計画など、計画は明確な切り口で管理したほうが分かりやすいです。Hansoftは「サブプロジェクト」で、計画を階層化できます。今回のサンプルプロジェクトの場合、「アジャイルスケジュール」ビューで、「コンテキストメニュー」(マウスを右クリックする)の「サブプロジェクトの挿入」によって以下2つのサブプロジェクトを作成します。
- リリース計画:リリース日を設定し、リリースの進捗を管理します。
- スプリント計画:個々のスプリントの計画と実績を管理します。
表3のリリース予定に基づいて、以下のようにリリーススケジュールを作成します。
- 「リリース」操作で、上記作成した「リリース計画」サブプロジェクト以下に回数分(サンプルでは4回)のリリースを作成します。リリース目標はコメント欄に記入することができます。また、ビューの右側のタイムラインを利用し、ドラッグ操作でリリース日を設定します。
- 「スプリント」操作で、上記作成した「スプリント計画」サブプロジェクト以下に、回数分(サンプルでは10回)のスプリントを作成します。スプリントの名前はチームが決めた命名方法に従って変更します。今回は「スプリント+連番」を利用します。コメント欄にスプリントの目標を記述することもできます。
- 各スプリントを選択し、「コンテキストメニュー」の「リリースにタグをつける」でスプリントとリリースの関連付けを行います。これによって、日々の進捗はリリースの進捗(リリースバーンダウンチャート)に反映できます。
3. リソースを配置する
プロジェクトにアサインしたメンバーは自動的に各スプリントに配置されます。メンバーの調整がある場合、スプリントごとに個別に調整します。また、個々のメンバーのスプリント内での割当率も設定できます。
4. リリース内容を計画する
プロダクトバックログの「優先度」ビューを利用し、効率的にリリースの内容に関する計画ができます。
- プロダクトバックログ項目がいつリリースされるのか
- プロダクトバックログ項目を選択し、「コンテキストメニュー」の「リリースにタグをつける」で、リリース日を選択できます。
- プロダクトバックログ項目がどのスプリントで完成させるか
- プロダクトバックログ項目を選択し、「コンテキストメニュー」の「スプリントにコミットする」で、スプリントへのコミットを行います。
このように、リリースのスケジュール、リリースの内容、リソースの配置でリリース計画を作成します。いつ、何をリリースするのかが明確になり、リリースの進捗が追跡しやすくなります。
IV.日々の作業
計画がいくら綿密に立てられていても、進捗を管理し、状況に応じた変更をしない限り、すぐに計画は無意味なものになってしまいます。また、ツールがいくらパワフルであっても、メンバーたちが日々の作業状況をツールに反映しなければ、すぐにお飾りになってしまいます。メンバーたちが日々そのツールを使うために、ツールの「使いやすさ」は重要です。ここではチームのイベント--スプリント計画、デイリースクラム、スプリントレビュー、スプリント振り返りをHansoftを使って簡単に行う方法を紹介します。
スプリント計画
1つのスプリントはスプリント計画から始まります。スプリントの周期が2週間の場合、スプリント計画は大体4時間ほどかかります。スプリント計画へのインプットはリリース計画、プロダクトバックログ、そしてメンバーたちがスプリントで提供できる工数です。スプリント計画の終了時には、チームがスプリントに何を開発するかに関するスプリント目標と、どのように開発するかに関する見積もりされたタスクの一覧を持つことが望ましいです。
スプリント計画の前半では、チームがプロダクトオーナーと一緒にリリース計画時に計画した開発内容(スプリントにコミットしたプロダクトバックログ項目)やスプリント目標を確認し、調整を行い、スプリント目標を確約します。Hansoftでは、プロダクトバックログ項目のスプリントへのコミットやプロダクトバックログに戻すといった調整は直観的です。プロダクトバックログのビューやプランニングビューにおいて、該当するプロダクトバックログ項目を選択し、「コンテキストメニュー」の「スプリントにコミットする」や「プロダクトバックログに戻す」を利用し調整を行います。
スプリント計画の後半では、チーム自身がスプリント目標を達成するために、自分たちの作業タスクを識別します。Hansoftを利用する場合、スプリントにコミットした個々のプロダクトバックログ項目に対し、「分解」を利用し、プロダクトバックログ項目を実現するための識別されたタスクを記録します。同時に、タスクの作業工数の見積もり、作業の割当ても行います。メンバーのスプリントで提供できる工数と割り当ての結果はリアルタイムに表示されます。
スプリント計画時にHansoftを利用すれば、チームの目標、各メンバーの作業予定、負荷状況の可視化や変更が簡単にできます。
デイリースクラム
毎日、メンバーたちが出勤し、Hansoftにログインしたら、Hansoftの「ニュースフィード」によって、いつ、誰が、何をしたのか分かります。気になるトピックがありましたら、チャットで相手に連絡できます。また、自分に割り当てられた作業は「ToDoリスト」に表示されています。毎日、チームがデイリースクラムを開始する前に、自分が取り掛かっているタスクの進捗状況に応じてタスクのステータスを変更したり、その日作業するタスクを確認したりします。
デイリースクラムはチームが開発状況を共有するための毎日開催する15分間のミーティングです。Hansoftの「プランニング」ボードビューは、進捗の共有と可視化をサポートし、このイベントの効率的な開催を促進します。付箋の色の使い分けにより、視覚効果を高めます。また、進捗のステータスをカスタマイズできますし、カラムとレーンの設定によって、ボードの見方も必要に応じ変えられます。同様、プロダクトバックログのボードビューで、プロダクトバックログ項目の進捗状況も共有できます。
また、Hansoftのスプリントのバーンダウンチャートとリリースバーンダウンチャートも、進捗を追跡するための良い手段でしょう。
スプリントレビュー
スプリントの終盤では、チームはスプリントレビューを通じて、プロダクトオーナーや他の利害関係者に対し、動作するテスト済みのソフトウェアをデモします。このイベントは2週間のスプリントの場合、約2時間ほど掛けます。この時、不具合などの指摘事項は、Hansoftの「品質保証(QA)」を利用し管理できます。
「品質保証(QA)」は不具合の管理機能です。図19で示すように1つの不具合に関する説明、再現手順、添付ファイルなどを一括で管理できます。また、カラムを追加すれば、例えば不具合の分類などプロジェクト固有の管理項目の追加ができます。
不具合のステータスは、ワークフローによって管理しています。Hansoftが提供するワークフローは、チームの方針によってカスタマイズができます。図20はワークフローのカスタマイズの例を示しています。
スプリント振り返り
チームによる持続的な改善のため、定期的な振り返りが大事です。この活動では、チームメンバーたちは経験したこと、感じたことなどを話し合い、改善案を出し合います。このイベントは2週間のスプリントの場合、約1時間がかかります。
スプリント振り返りでは、Hansoftに蓄積したプロジェクトデータが定量的な振り返りを可能にすると共に、今後の改善案の根拠を提供します。
V.Hansoftで可視化
Hansoftはボードビューやバーンダウンチャートなどの可視化以外にも、ポートフォリオ割り当て機能によるリソース割り当ての可視化、レポート機能によるデータの加工、ダッシュボード機能によるプロジェクトデータの可視化手段を提供します。今回は紙幅関係で紹介は割愛します。
最後に
組織にアジャイル開発を導入する時、一般的に「守」、「破」、「離」の三段階を経過すると思います。標準的な「型」をチームに提供し、チームが「型」通りにやることを促進することはプロジェクト管理ツールの基本です。この記事では、Hansoftの基本機能を利用し、アジャイル開発を始まるやり方を紹介しました。Hansoftは導入しやすいプロジェクト管理ツールであることをご理解いただければと思います。
しかし、アジャイル開発チームは定期的な振り返りによって絶えず改善を図ります。プロジェクト管理ツールは成長するチームの「型」を調整する要望、チーム自身の開発スタイルを定義する要望に応えなければなりません。この場合、プロジェクト管理ツールの柔軟性が求められています。筆者の感じたHansoftの柔軟性を以下の3点にまとめます。
スケーラブル
小規模でシンプルなプロジェクトなら、本記事で紹介したやり方ですぐにスタートできます。しかし、大規模あるいは複雑なプロジェクト、例えばScale Agile Framework(SAFe)を導入しているプロジェクトでは、Hansoftの高性能、複数開発手法併用へのサポートなど特長がよりよく発揮できます。つまり、Hansoftは小規模から大規模まで対応したツールです。
情報の量
開発の中で管理したい、または関心のある情報を、Hansoftを利用してチームが自分自身でHansoftをカスタマイズできます。例えば、プロダクトバックログは階層化、あるいはカラムの追加によって、管理する情報の量を拡張できます。それによって、ユーザーストーリーに受け入れ条件や、画面設計図、より詳細的な仕様などの情報も追加できます。また、これらの情報はExcelやXMLなどの形式で出力したり、レポートにより抽出したりすることで、共有や再加工は容易です。
可視化
プロダクトバックログ、タスク、計画と進捗状況、ダッシュボード、レポート、ポートフォリオ管理などHansoftはさまざまな可視化手段を提供しています。これらの手段はユーザーの権限の設定によって、可視化の対象や公開範囲を管理できます。
Hansoftを含む、アジャイル開発をサポートするプロジェクト管理ツールは数え切れないと思います。プロジェクトの規模、複雑度、予算、今後の拡張性などに応じ、プロジェクト管理するためのツールを検討される場合、このように柔軟に使えるHansoftも視野に入れていただければ幸いです。
今後、機会がありましたら、以下のようなトピックで、Hansoftが役に立つ利用方法も取り上げいたします。ご期待ください。
- 1つのプロジェクト中に従来型開発とアジャイル開発が混在する場合のプロジェクト管理方法、
- プロジェクトのメトリックス、
- Scaled Agile Framework(SAFe)の導入をサポートするツールとしての使い方