開発者向けのソフトウエアを開発しているAtlassianは年次のSummitカンファレンスでJIRA Portfolioを発表した。これはJIRA向けのアドオンで、"複数のチームやプロジェクトの動きを管理し計画するための単一の正確なビューを提供する"。
JIRA Portfolioはプロジェクトポートフォリオマネジメント(PPM)ソリューションであり、"チームのすべてのレベルのプロジェクトプランニングの問題"に答えることで、"開発の現実と戦略上の目的を結びつける"。"継続的に、最適で現実的なリソース確保を計算し、リリース日、リソースの使用、ボトルネック"を計算するという自動スケジューリング機能が目玉だ。
このような機能はアジャイルの方法論には、既定のものであり、"スケジューリングアルゴリズムはアイテム(ストーリー)を速く片付けるために最適化されて"いる。しかし、どのような方法論でも利用できるようみ設計されているので、従来の手法でも活用できる。
JIRA Portfolioを使うにはまずプランを作成する。プランはバックログ、利用可能なリソース、リリースのための最上位のコンテナだ。プランにはプラン自体を入れることができ、JIRAのプロジェクトと独立しているので、チームやプロジェクトをまたいで利用できる。つまり、ひとつのプランに組み込むプロジェクトとチームでリソースのバランスを取る必要がある。
プランの中のバックログとグローバル"ToDoリスト"は3つの階層を形成する。最上位がイニシアティブ、次がエピック、一番下がストーリーだ。プランニングのプロセスのための主要な概念と次元は次の通り。
- イニシアティブ (オプション) – エピックとストーリーを高いレベルのビジネスイニシアティブにグループ化する。普通そのようなイニシアティブは複数のリリースにまたがる。例えば、長いプロジェクトや大規模なプロジェクト。
- テーマ – 横断的なバックログのカテゴリ。相対的リソースの確保に注力する戦略的ビジネスによって分類される。例えば、テーマXとテーマYでは、どちらがリソースが必要か。
- 見積もりと時間的予算 – 時間をベースにする。例えば、日/時間(ストーリーポイントはロードマップ上にある)。
- リリース、チーム、メンバアサイン – 自動生成スケジュールの調整と再計算。
- 依存性 – スケジュールされたアイテムの順番を制御する。
- チームと人々 – スキル、平日の時間、稼働可能性、休暇。
- リリース – ターゲット日時。決まっている場合もあれば、希望に応じて動的に予定をたてる場合もある。
InfoQはAnutthara Bharadwaj氏(JIRAのグループプロダクトマネージャ)にAtlassianの最新の製品について話を聞いた。
InfoQ: JIRA Portfolioはプロジェクトマネジメントポートフィリオの分野に参入しています。参入の経緯を教えてください。
Anu: JIRA Portfolioによって、私たちはシンプルで現実的でスケーラブルな方法で大規模なチームの計画をたてることができます。現在、JIRAは無数の開発チームへ真実を提供し、開発チームは日々の作業を管理しています。数年前から、私たちは、大規模なプランニングの難しさについて顧客から聞いていました。[…] JIRA PortfolioはJIRAの顧客向けのソリューションであり、幅広いソフトウエア開発の動きを企業のすべてのレベルを横断して計画、管理できます。
InfoQ: この製品は成長するプロジェクトをマネジメントしなければならないJIRAのユーザに訴求するでしょうか。それとも、既に確立された企業向けのPPM市場を狙っているのですか。
Anu: JIRAの既存のユーザはPortfolioを使い始める明白な理由があります。
この製品のひとつの目標は複数のチームを抱えている企業が高いレベルのビジネスプランを作成し、それを開発プランにそのままつなげられるようにすることです。[…] Atlassian社として、私たちは企画、計画、開発、デリバリ、サポートという来負債切る全体をカバーする完全なプランニングツールのスタックで企業を支援したいと思っています。JIRAとJIRA Portfolioの組み合わせは、多くの企業に既存のツールからの変更を強いることになるでしょう。
InfoQ: この製品は"自動スケジューリングやリリース、リリースの予測、キャパシティプランニングと最適化"というような機能があります。機能について詳しく教えてください。
Anu: 私たちは"秘密の隠し味"である自動スケジューリングアルゴリズムの研究に大量の時間を費やしてきました。ユーザが手動でスケジューリングするという労を節約できるようにアルゴリズムの複雑さに取り組みました。
例えば、アイテムの長いリストがあるとします(依存関係もあれば、異なるスキルが必要なものもありますし、日付の制約もあります)。チームと、さまざまな能力を持った開発者がいます。開発者が使える時間もさまざまです。このような場合、どのようにして、素早く最優先のアイテムを特定すればいいでしょうか。私たちのアルゴリズムは複数の次元を扱います。スキルセットや、稼働可能性、アイテムの依存関係や開始日時の制約などです。そして、実行できそうな現実的な計画に素早くたどり着くための初期計画を策定します。
そして、JIRA Portfolioはリアルタイムでスケジューリングします。なので、"仮定"のシナリオを作成し、調整したりできます。
InfoQ:デモでは、リリース日を後ろ倒しにしたプロジェクトに開発者を追加していますね。JIRA Portfolioは"遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけ"というブルックスの法則を考慮していますか。
Anu: 素晴らしい質問です。私たちは明示的には"ブルックスの法則を適用する"フラグは持っていません。Portfolioは初期に現実的な計画を策定し、素早く変更を適用していくアジャイルチームを支援します。変更を適用するのは、新しい人員を追加することだけではありません[…]。変化に対応するために正しい行動をする必要があります。プロジェクトのスコープを変更したり、リリースを再スケジュールしたりなどです。
[…] まず、私たちが薦めるのは、新しい開発者を戦力にする時間と支援するチームのメンバの能力の低下をモデル化することです。加えて、ひとつのユーザストーリーに何人が同時に作業しているかを設定できます。スキルを考慮することで、追加した人員の能力はランダムにスケジューリングされることはありません。"50人なら1日で50人日分の作業ができる"というようなスケジューリングにはなりません。
InfoQ: JIRA PortfolioはJIRA APIを使っています。Portfolio自体はAPIは提供しますか。
Anu: 現時点では公開されたAPIはありません。しかし[…]統合の可能性がある多くポイントがあると考えています。リソース(企業、機能/スキル、休暇、コスト)のマネジメントやスケジュールの検索や帳票ソリューションのための進捗情報などです。
InfoQ: Portfolioは現在、JIRAサーバで利用可能です。JIRA Cloudでは提供されるのでしょうか。
Anu: 来年の早い段階、3月の末には、JIRA Portfolio Cloudを利用できるように、と考えています。
InfoQ: Atlassian社の内部では、すでにJIRA Portfolioを使っていますか。次のロードマップはどのようなものでしょうか。
Anu: もちろん内部で使っています。[…]自分たちで使うことでさまざまなことを学びました。何が上手くいっていて、何を改善する必要があるかです。
これからのロードマップとしては、計画作りと進捗でストーリーポイントをサポートすること、JIRA Portfolio Cloudを使えるようにすること、JIRAとJIRA Agileのデータをより深く統合することです。これらはこれまでの顧客からのフィードバックをもとに考えました。
Anu氏は@anuttharaへのフィードバックを歓迎している。
JIRA PortfolioはAtlassian Marketplaceで入手できる。自動スケジューリングについてのドキュメントもある。FAQには、スケジューリング機能専用のFAQがある。Atlassianのサポートポータルでサポートを受けることもできる。機能リクエストやバグ報告はAtlassianの公開トラッカーのJIRA Portfolioプロジェクトで受け付けている。