【解決手段】アジャイルデリバリモデルを生成する、コンピュータインプリメント方法であって、事前に構成したメタモデルを選択し、制約に基づいて、ロケーションに依存しないモデルを生成する。コンプライアンスインジケータは、アジャイル原理への、コンプライアンスの度合いを提供する。モデルを、成功裏にインプリメントされたアジャイルモデルの知識ベースを利用して、トレーニングされたマシンラーニングモデルを用いて評価する。
前記ヘッダ属性は、アジャイルプロジェクトアカウント所有者、業界、顧客アジャイル成熟度、ポートフォリオ、地理的位置、チームサイズ、チーム役割、機能ドメイン、通信リンク、コラボレーションテクノロジーに関連するデータを含む、請求項1に記載のプロセッサインプリメント方法。
前記選択可能なコンポーネントは、チーム役割を含むヘッダ属性、プロダクトバックログ、およびスプリントログを含むアーティファクト、地理的ロケーションに関連した、タイムゾーン、連続インテグレーション(CI)、およびアプリケーションライフサイクルマネージメント(ALM)の少なくともいくつかの形態である、請求項1のプロセッサインプリメント方法。
前記1つまたは複数のマシンラーニングモデルは、アルゴリズム、ユースケース、入力、ソリューション、出力または、トレーザビリティに基づく、請求項1に記載のプロセッサインプリメント方法。
前記新しい、ロケーションに依存しない、アジャイル配信モデルは、前記選択されたコンポーネントに基づいたグラフの形態であり、前記地理的ロケーションは、ノードとして機能し、前記ヘッダ属性は、ノード属性として機能し、前記通信リンクは、エッジとして機能する、請求項1に記載のプロセッサインプリメント方法。
前記1つまたは複数のハードウェアプロセッサにより、前記新しい、ロケーションに依存しない、アジャイルデリバリモデルの性能パラメータのセットを出力するために、前記トレーニングした、1つまたは複数のマシンラーニングモデルを用いて、前記新しい、ロケーションに依存しない、アジャイルデリバリモデルの評価を開始するステップと、
前記1つまたは複数のハードウェアプロセッサによって、回帰法または近隣法を用いて、前記1つまたは複数のアジャイルアカウントに対応する、1つまたは複数の、アジャイルデリバリモデルの中の新しい、ロケーションに依存しない、アジャイルデリバリモデルに関するベストマッチを出力するステップと、
の少なくとも1つを実行することをさらに備える、請求項1に記載のプロセッサインプリメント方法。
1つまたは複数のハードウエアプロセッサ(104)に動作可能に結合され、前記1つまたは複数のハードウェアプロセッサが実行するように構成された命令を記憶するように構成された、1つまたは複数のデータストレージデバイス(102)を備えたシステムにおいて、
1つまたは複数のアジャイルプロジェクトアカウントに関係するデータを受信することであって、前記データは、
前記1つまたは複数のアジャイルプロジェクトアカウントに関係するヘッダ属性のワンタイムシーディングと、
前記1つまたは複数のアジャイルプロジェクトアカウントに関係する、性能パラメータの定期的更新を受信する、ことにより受信される、受信することと、
によって、受信される、受信することと、
イニシャル・マスタ・データ・セットアップ、および受信される定期的更新に関する、前記1つまたは複数のプロジェクトアカウントを、知識リポジトリに登録することと、
前記知識リポジトリを、前記受信されたデータで更新することであって、
前記受信されたデータを、非同期に処理することであって、前記処理は、その中に含まれる、キーと価値のペアを解析することを含み、前記キーは、フィールドであり、前記価値は、前記ヘッダ属性と前記性能パラメータに対応する、非同期に処理することと、
前記知識リポジトリを更新するためにアプリケーションプログラミングインタフェース(API)を介して送信する前に、前記価値を検証することと、
前記検証された価値に基づいてクエリ言語ステートメントのセットを動的に構成することと、
前記知識リポジトリを、前記検証された価値で更新するために、前記クエリ言語ステートメントのセットを実行することと、
により、前記受信されたデータで前記知識リポジトリを更新することと、
前記検証された価値を用いて、1つまたは複数のマシンラーニングモデルをトレーニングすることと、
ビジュアルモデリング技術を用いて、潜在的なロケーションに依存しないアジャイルデリバリモデルをインタラクティブに生成することであって、前記潜在的ロケーションに依存しない、アジャイルデリバリモデルは、
前記ヘッダ属性を受信すると、新しいプロジェクトアカウントを自己登録することであって、前記ヘッダ属性の少なくともいくつかは、新しい、ロケーションに依存しない、アジャイルデリバリモデルの生成に関する制約として機能する、自己登録することと、
複数の事前構成されたメタモデル、選択可能なコンポーネントと、それらの相互接続を備えたパレットベースのユーザインタフェースをユーザに、動的に提示することと、
前記複数の事前構成された、メタモデルの1つのユーザ選択された、インスタンス化に基づいて、選択可能なコンポーネントの最小セットを表示することと、
前記制約を最適に管理することにより、対応する潜在的ロケーションに依存しない、アジャイルデリバリモデルを生成するコンプライアインスインジケータを、選択される前記コンポーネントの、すべてのドラッグおよびドロップに応答して、動的に更新することであって、前記コンプライアインスインジケータは、アジャイル原理へのコンプライアインスの度合いを示す、動的に更新すること、
前記新しい、ロケーションに依存しない、アジャイルデリバリモデルとして、アジャイル原理へのコンプライアンスの少なくともユーザ定義された、最小度合いを有する潜在的ロケーションに依存しない、アジャイルデリバリモデルを識別することと、
によりインタラクティブに生成される、インタラクティブに生成することと、
を1つまたは複数のプロセッサが実行するように構成された、システム。
前記ヘッダ属性は、アジャイルプロジェクトアカウント所有者、業界、顧客アジャイル成熟度、ポートフォリオ、地理的位置、チームサイズ、チーム役割、機能ドメイン、通信リンク、コラボレーションテクノロジーおよびエンジニアリング成熟度に関連するデータを含む、請求項8に記載のシステム。
前記選択可能なコンポーネントは、チームの役割と、製品バックログとスプリントバックログを含むアーティファクトと、地理的位置に関連づけられたタイムゾーンと、継続的インテグレーション(CI)とアプリケーションライフサイクルマネージメント(ALM)を含むツールイネーブラーと、を含むヘッダ属性の少なくともいくつかの形態である、請求項9に記載のシステム。
前記1つまたは複数のマシンラーニングモデルは、アルゴリズム、ユースケース、入力、ソリューション、出力またはトレーサビリティに基づく、請求項8に記載のシステム。
前記新しい、ロケーションに依存しない、アジャイルデリバリモデルは、前記選択されたコンポーネントに基づくグラフの形態であり、前記地理的ロケーションは、ノードとして機能し、前記ヘッダ属性は、ノード属性として機能し、前記通信リンクは、エッジとして機能する、請求項8に記載のシステム。
コンピュータ可読プログラムが組み込まれた、非一時的コンピュータ可読媒体を含むコンピュータプログラム製品において、前記コンピュータ可読プログラムは、コンピュータデバイス上で実行すると、
1つまたは複数の、アジャイルプロジェクトアカウントに関係する、データを受信させることであって、前記データは、
前記1つまたは複数の、アジャイルプロジェクトアカウントに関係する、ヘッダ属性のワンタイムシーディングと、
前記1つまたは複数の、アジャイルプロジェクトアカウントに関係する、性能パラメータの定期的更新を受信することと、により受信される、受信させることと、
イニシャル・マスタ・データ・セットアップ、および受信される定期的更新に関する、前記1つまたは複数のアジャイルプロジェクトアカウントを、知識リポジトリに登録させることと、
前記受信されたデータで、前記知識リポジトリを更新させることであって、
前記受信されたデータを、非同期に処理することであって、前記処理は、その中に含まれるキーと価値のペアを解析することを備え、前記キーは、フィールドであり、前記価値は、前記ヘッダ属性および前記性能パラメータに対応する、処理することと、
前記知識リポジトリを更新するために、アプリケーションプログラミングインタフェース(API)を介して送信する前に、前記価値を検証することと、
前記検証された価値に基づいて、クエリ言語ステートメントのセットを動的に構成することと、
前記クエリ言語ステートメントのセットを実行して、前記知識リポジトリを前記検証された価値で更新することと、
により前記知識リポジトリを更新させることと、
前記検証された価値を用いて1つまたは複数のマシンラーニングモデルをトレーニングさせることと、
ビジュアルモデリング技術を用いて、潜在的なロケーションに依存しないアジャイルデリバリモデルを、インタラクティブに生成させることであって、前記潜在的なロケーションに依存しないアジャイルデリバリモデルは、
前記ヘッダ属性を受信すると、新しいプロジェクトアカウントを自己登録することであって、前記ヘッダ属性の少なくともいくつかは、新しい、ロケーションに依存しないアジャイルデリバリモデルの生成に関する制約として機能する、自己登録することと、
複数の事前構成されたメタモデル、選択可能なコンポーネント、およびそれらの相互接続を備えるパレットベースのユーザインタフェースを、ユーザに動的に提示することと、
前記複数の事前構成された、メタモデルの1つのユーザ選択された、インスタンス化に基づいて、選択可能なコンポーネントの最小セットを表示することと、
前記制約を最適に管理することにより、対応する潜在的ロケーションに依存しない、アジャイルデリバリモデルを生成するコンプライアンスインジケータを、前記選択されるコンポーネントの、すべてのドラッグまたはドロップに応答して動的に更新することであって、前記コンプライアンスインジケータは、アジャイル原理でコンプライアンスの度合いを示す、動的に更新することと、および
アジャイル原理へのコンプライアンスの少なくともユーザ定義された最小度合いを有する潜在的なロケーションに依存しない、アジャイルデリバリモデルを、前記新しい、ロケーションに依存しない、アジャイルデリバリモデルとして識別することと、
によりインタラクティブに生成され、
トレーニング済みの1つ以上のマシンラーニングモデルを使用して、新しい、ロケーションに依存しない、アジャイル配信モデルの評価を開始することであって、前記性能パラメータは、新しい、ロケーションに依存しない、デリバリモデルの最適化の度合いを示す、評価を開始することと、
回帰法または近隣法を用いて、前記1つまたは複数のアジャイルアカウントに対応する、1つまたは複数のアジャイルデリバルモデルの中の前記新しい、ロケーションに依存しない、アジャイルデリバリモデルに関するベストマッチを出力することと、
の少なくとも1つを実行させることと、
を前記コンピューティングデバイスに実行させる、コンピュータプログラムプロダクト。
【発明を実施するための形態】
【0015】
例示実施形態が、添付図面を参照して記載される。図において、参照番号の最左端(複数の場合もある)は、参照番号が最初に現れる図を識別する。便宜的である場合には、同一物あるいは類似のパーツを参照するために、図全体を通して同じ参照番号が用いられる。開示された原理の例と特徴をここに記載するけれども、変更、適応、および他のインプリメンテーションは、開示された実施形態の精神と範囲を逸脱することなく可能である。以下の詳細な記述は、例示に過ぎず、真の精神と範囲は、以下の特許請求の範囲によって示されることを意図している。
【0016】
作業のアジャイル方法は、ウォータフォール(waterfall)のような伝統的な、処理の重たい(process heavy)アプローチに比べて、プロダクト開発に対する軽量なアプローチである。ビジネスと技術チーム、豊富な相互作用と、コラボレーション(collaboration)を活用した(leveraging)問題解決フォーカス(problem solving focus)を用いた小さなチーム、短い反復での適応プランニング、およびクィックフィードバックのための増大するデリバリとの間のダイレクトコラボレーションを含む。ビジネスニーズへの応答を改良するために、より多くの企業がアジャイルな作業方法に移行している。アジャイルの最大利益のために、機能の専門知識やロケーションに関係なく、全体プロダクト開発チームにわたって、アジャイルな作業方法を企業が適用することが必須である。そのような企業アジャイルの主要な構成要素は、分散アジャイルチームを介してアジリティ(Agility)を拡張する能力である。
【0017】
分散アジャイルチームモデルを設計する際の課題は、モデルが、アジャイル原理へのコンプライアンスからはずれる尤度(likelihood)である。例えば、技術リソースをアクセスするために、1つのチームが他のチームに依存するロケーションの間で分割されたアジャイルチームを見ることは、珍しいことでなくはない。「環境とサポートを与えて、仕事を成し遂げる」というアジャイルの原理に違反する。特定の課題は、
−企業は、分散アジャイルの種々のモデルを開発したけれども、彼らは、そのようなモデルのアジャイル原理への順守の専門家のマニュアル検証に依存する。
−分散アジャイルチームサイズが大きくなるか、またはより多くのロケーションが追加されるとき、分散アジャイルモデルを構築するのに必要な専門技術は、拡大(scale)しない。
−分散アジャイルモデル計画の背後にある知識は、体系的な方法で強化されない。それゆえ、これは、さまざまな動作条件を用いて、プロジェクト/プログラム/企業にわたって、複製できない、または拡張できない、優秀のポケット(pockets of excellence)を生じる。
−アジャイルチーム構造に対して変更する前に、初めに仮定(what-if)のシナリオをシミュレートするために、役割または動作特性は、失敗の極めて高いリスクを生じる。
【0018】
この開示のシステムと方法は、上で述べた技術的課題を克服するために、以下で説明するように、スケーラブルでカスタマイズ可能なロケーションに依存しないアジャイルデリバリモデルを生成することを可能にする。この開示に従って、生成されたロケーションに依存しないアジャイルモデルは、異なるロケーションにまたがるアジャイルチームが、アジャイル原理を損なうことなく、一緒に作業することができるように設計することによる、分散アジャイルのための体系化されたアプローチである。この開示によれば、種々の作業モデルは、シミュレートすることができ、性能パラメータは、正しいモデルが識別され、現実世界のシナリオにおいて、インプリメントすることができる前に指定することができる。
【0019】
図面を参照すると、特に
図1乃至
図4Cを参照すると、同様の参照符号は、図面全体で一貫して、対応する特徴を示し、好適実施形態が示され、これらの実施形態は、以下の例示システム、および/または方法にコンテキストにおいて、記載される。
【0020】
図1は、この開示の一実施形態における、スケーラブルでカスタマイズ可能な、ロケーションに依存しない、アジャイルデリバリモデルを生成するための、システム100の例示ブロック図を説明する。一実施形態において、システム100は、1つまたは複数のプロセッサ104、通信インタフェースデバイス(複数の場合もある)、または入出力インタフェース(複数の場合もある)106、および前記1つまたは複数のプロセッサ104に動作可能に結合された、1つまたは複数のデータストレージデバイス、またはメモリ102を含む。ハードウェアプロセッサである、1つまたは複数のプロセッサ104は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理装置、ステートマシン、グラフィクスコントローラ、ロジック回路、および/または動作命令に基づいて信号を操作する任意のデバイスとしてインプリメントすることができる。幾つかある能力の中で、プロセッサ(複数の場合もある)は、メモリに記憶されたコンピュータ可読命令をフェッチして、実行するように構成される。この開示のコンテキストにおいて、「プロセッサ」および「ハードウェアプロセッサ」という表現は、互換的に使用することができる。一実施形態において、システム100は、ラップトップコンピュータ、ノートブック、ハンドヘルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウド等のような種々のコンピューティングシステムにおいてインプリメントすることができる。
【0021】
I/Oインタフェース(複数の場合もある)106は、種々のソフトウェアとハードウェアインタフェース、例えば、ウェブインタフェース、グラフィカルユーザインタフェース等を含むことができ、例えば、LAN、ケーブル等の有線ネットワーク、およびWLAN、セルラ、または衛星のような無線ネットワークを含む、多種多様のネットワークN/W、およびプロトコルタイプ内の複数の通信を容易にすることができる。一実施形態において、I/Oインタフェース(複数の場合もある)は、多数のデバイスを互いに、または他のサーバに接続する1つまたは複数のポートを含むことができる。
【0022】
メモリ102は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアセスメモリ(DRAM)のような揮発性メモリ、および/または、リードオンリメモリ(ROM)、イレーザブルプログラマブルROM、フラッシュメモリ、ハードディスク、光ディスクおよび磁気テープのような不揮発性メモリを含む、この分野で知られた任意のコンピュータ可読媒体を含むことができる。一実施形態において、システム100の1つまたは複数のモジュール(102A乃至102C)は、メモリ102に記憶することができる。
【0023】
図2は、この開示の一実施形態に従って、
図1のシステムに構成された例示機能モジュールを説明する。モデリングユニット102Aは、ユーザ入力のためのインタフェースとして機能し、アジャイルデリバリモデルの状態を維持する。モデリングユニット102Aは、主に、ベストフィット(best fit)エンジン、モデルステートコントローラ、およびモデルリポジトリ(Model Repository)を備える。この開示によれば、モデルステートコントローラは、以下に記載するように、リアルタイムで、アジャイルデリバリモデルの状態を追跡し、ベストフィットエンジン、モデルリポジトリおよび知識ベース102Bを統合(orchestrates)する。ベストフィットエンジンは、知識ベース102Bから意志決定ルールを獲得するように構成されたステートレス・ルール・エンジン(stateless rule engine)である。一実施形態において、モデルリポジトリは、アジャイルデリバリモデルの状態を記憶するように構成される。この開示によれば、モデルリポジトリは、リレーショナルデータベースまたはグラフ指向データベースのいずれかである。
【0024】
知識ベース102Bは、アジャイルデリバリモデルの適合性を評価し、最適状態を推奨し、分析論(analytics)に必要なインテリジェンスを供給するために、1つまたは複数のアジャイルプロジェクトアカウントに関係する履歴データの組織化された知識を備える(以下に記載する、ステップ212)。一実施形態において、知識ベース102Bは、知識リポジトリ、知識サービスプロバイダ、および自動推論アップデーター(Auto Inference Updater)を備える。自動推論アップデーターは、継続的に、知識リポジトリをポーリングして、出現パターン(emerging pattern)から推論を再組織化する自己学習メカニズムである。自動推論更新器は、知識リポジトリを更新し続けるとともに機能的に維持する、リフレッシャーおよびチューニングエンジン(a refresher and tuning engine)である。知識サービスプロバイダは、知識ベース102Bを利用するためにサービスを公開する(expose)アプリケーションプログラミングインターフェース(APIs)のセットを含む。この開示によれば、知識リポジトリは、グラフ指向構造またはドキュメント指向構造を有することができる。
【0025】
この開示によれば、複数のデータソースから入力を受信するための、データフィーダ102Cが提供される。データフィーダ102Cは、複数のソースと相互作用し、受信した入力を、知識ベース102Bの自動推論アップデーターにより可読フォーマットに、変換する。
【0026】
図3は、この開示の一実施形態に従う、スケーラブルで、カスタマイズ可能な、ロケーションに依存しないアジャイルデリバリモデルを生成するための方法のハイレベルのフローチャートを説明する。
図4A乃至4Cは、この開示の一実施形態に従う、スケーラブルで、カスタマイズ可能な、ロケーションに依存しないアジャイルデリバリモデルを生成するためのコンピュータインプリメント方法200の例示フロー図を説明する。一実施形態において、システム100は、1つまたは複数のプロセッサ104に動作可能に結合された、1つまたは複数のデータストレージデバイス、またはメモリ102を含む。方法200のステップは、
図3のハイレベルフローチャート、および
図1のシステム100のコンポーネントを参照して詳細に説明される。プロセスステップ、方法ステップ、技術等は、シーケンシャルな順番に説明されるが、そのようなプロセス、方法および技術は、別の順番で動作するように構成することができる。言い換えれば、記載することができるステップの任意のシーケンスまたは順番は、必ずしもステップがその順番で実行する要件を示すものではない。ここに記載したプロセスのステップは、実用的な任意の順番で実行することができる。さらに、いくつかのステップは、同時に実行することができる。
【0027】
この開示の一実施形態によれば、方法200は、2つのパーツからなり、第1のパートは、知識リポジトリの構築と維持に関連し、第2のパートは、適切なロケーションに依存しない、アジャイルデリバリモデルを識別することに関連している。
【0028】
この開示の一実施形態によれば、方法200の第1のパートにおいて、1つまたは複数のプロセッサ104(知識ベース102Bとデータフィーダ102Cを構成する)は、ステップ202において、1つまたは複数のプロジェクトアカウントに関係するデータを受信するように構成される。一実施形態において、データを受信するステップ202は、ステップ202aにおいて、1つまたは複数のアジャイルプロジェクトアカウントに関係するヘッダ属性のワンタイムシーディング(one time seeding)を備え、ステップ202bにおいて、1つまたは複数のアジャイルプロジェクトアカウントに関係する、性能パラメータの定期的更新を受信することを備える。一実施形態において、ヘッダ属性は、アジャイルプロジェクトアカウントオーナー、業界、顧客アジャイル成熟度、ポートフォリオ、地理的ロケーション、チームサイズ、チーム役割、機能ドメイン、通信リンク、コラボレーション技術、およびエンジニアリング成熟度に関連するデータを備える。一実施形態において、性能パラメータは、リリース頻度、測度、機能品質、構造品質、および製造後欠陥(post production defects)を含み、リリース頻度と速度は、単一のメトリクス(metrics)であるのに対して他方のデータは、複数のメトリクスを含むことができる。例えば、機能品質は、回帰欠陥、システムテスト欠陥等を含むことができる。また、構造品質は、静的コード分析違反(static code analyses violations)、コードの複雑さ等を含むことができる。一実施形態において、2つのJavaScript Object Notation (JSON)データ構造(XML。CSV、XLS)は、アジャイルデリバリモデルをモデル化するように定義することができる。一実施形態において、データは、バルク・アップロード(bulk upload)を介してデータフィーダ102Cを介して受信することができる。代替的に、ハイパーテキストマークアップ言語(HTML)のようなウェブインタフェースは、オンラインエントリのために提供することができ、データフィーダ102Cは、データを所望のフォーマットに変換するように構成される。
【0029】
この開示の一実施形態によれば、1つまたは複数のプロセッサ104は、ステップ204において、初期のマスタデータセットアップと、受信する定期的更新のために、1つまたは複数のアジャイルプロジェクトアカウントを知識リポジトリに登録するように構成され、更新の周期は、月単位、四半期単位、等であり、頻度は事前に定義することができる。一実施形態において、各登録された1つまたは複数のアジャイルプロジェクトアカウントに関して、定期的更新(JSONファイル)は、出版購読型モデル(publish-subscribe pattern)により電子メールアッタチメントとして共有することができる。HTML入力の場合、知識リポジトリに対するオンラインアップデートを実行することができる。
【0030】
この開示の一実施形態によれば、1つまたは複数のプロセッサ104は、ステップ206において、知識リポジトリを、ステップ202で受信したデータを用いてアップデートするように構成される。知識リポジトリを更新するステップ206は、ステップ206aにおいて、最初に受信したデータを非同期に処理するステップを、(アップストリームメッセージクリアランス/ネットワークレイテンシ/ネットワーク故障を待たず、メッセージブローカ(Message Broker)(MB)は、メッセージを適切に処理する)含むことができる。一実施形態において、処理のステップは、その中に含まれるキーと価値のペアを解析することを備え、キーは、フィールドであり、価値は、ヘッダ属性と性能パラメータに対応する。ステップ206bにおいて、価値は、知識リポジトリを更新するために、アプリケーションプログラミングインタフェース(API)を介して送信する前に検証される。例えば、電子メールの添付ファイルを受信した場合、添付ファイルを指定された安全な場所にダウンロードし、検証してアジャイルプロジェクトアカウントが登録されているかどうかを確認し、送信者を検証し、データの有効な価値を検証することができる。一実施形態において、データが有効である場合、アクノレジメントを送信者に送信することができる。あるいは、受信したデータを拒絶するエラーメッセージを送信することができる。次に、検証されたデータは、知識リポジトリを更新するためにAPIを介して入力キューに送信される。ステップ206cにおいて、検証された価値に基づいてクエリ言語ステートメントのセットが動的に構築される。例えば、知識リポジトリがグラフ指向の場合、SPARQL(登録商標)、Cypher(登録商標)、Gremlin(登録商標)などのクエリ言語を使用することができる。あるいは、知識リポジトリがドキュメント指向の場合、構造化照会言語(SQL)、JSON等を使用することができる。最後に、ステップ206dにおいて、クエリ言語ステートメントのセットが実行され、検証された価値で知識リポジトリが更新される。クエリ言語ステートメントの動的な構築により、知識リポジトリの構造に柔軟性がもたらされる。
【0031】
この開示の実施形態に従って、(知識ベース102Bとデータフィーダ102Cを構成する)1つまたは複数のプロセッサ104は、ステップ208において、ステップ206からの検証された価値を用いて、1つまたは複数のマシンラーニングモデルをトレーニングするように構成される。受信された各新しいデータは、新しいデータをスキャンして、モデリングユニット102Aのモデルリポジトリ内の、1つまたは複数のマシンラーニングモデルを更新する自動マシンラーニングエンジンである、知識ベース102Bの自動推論アップデータ(Auto Inference Updater)をトリガし、それにより、上述したように、入力として履歴データをとるように学習し、出力として性能パラメータを提供することを可能にする。一実施形態において、1つまたは複数のマシンラーニングモデルは、アルゴリズム、ユースケース、入力、ソリューション、出力またはトレーサビリティに基づく。たとえば、アルゴリズムに基づく1つまたは複数のマシンラーニングモデルは、ニューラルネットワーク、またはディープラーニングを含むことができる。ユースケースに基づく、1つまたは複数のマシンラーニングモデルは、回帰または分類がある。入力に基づく、1つまたは複数のマシンラーニングモデルは、スーパーバイズされた技術であり得る。出力に基づく、1つまたは複数のマシンラーニングモデルは、確率モデルであり得る等である。
【0032】
この開示の一実施形態に従って、方法200の第2の部分において、新しいプロジェクトアカウントについて、正しいロケーションに依存しない、アジャイル配信モデルが識別される。(モデリングユニット102Aを構成する)1つまたは複数のプロセッサ104は、ステップ210において、ビジュアルモデリング技術を用いて、潜在的なロケーションに依存しない、アジャイル配信モデルを、インタラクティブに生成するように構成される。潜在的ロケーションに依存しないアジャイル配信モデルは、最初に、ステップ210aにおいて、ヘッダ属性を受信すると、新しいプロジェクトアカウントを、最初に自己登録することにより、インタラクティブに生成される。この開示に従って、ヘッダ属性の少なくともいくつかは、新しいロケーションに依存しない、アジャイル配信モデルの生成のための制約として機能する。複数の事前構成されたメタモデル、選択可能なコンポーネントおよび関連する相互接続を備えた、パレットベースのユーザインタフェースは、次に、ステップ210bにおいて動的に提示される。
図5は、この開示の一実施形態に従う、スケーラブルでカスタマイズ可能な、ロケーションに依存しないアジャイル配信モデルを生成するためにパレットベースユーザインタフェースを説明する。一実施形態において、
図5に説明するように、選択可能なコンポーネントは、チームの役割(team roles)(製品所有者PO、スクラムマスターSM、開発者Dev、製品スペシャリストPS、テスターテスト)を含むヘッダ属性、プロダクトバックログ(PBL)およびスプリントバックログ(SBL)、地理的ロケーションに関連するタイムゾーン(IST、CST、GMT、EST)を含むアーティファクト(artifact)、継続的インテグレーション(CI)およびアプリケーションライフサイクル管理(ALM)を含むツーリングイネーブラー(tooling enablers)の少なくともいくつかの形態である。
【0033】
次に、ユーザは、ステップ210cで、選択可能なコンポーネントの最小セットが表示されることに基づいて、複数の事前構成されたメタモデルのうちの1つをインスタンス化する。ユーザは、選択可能なコンポーネントをインスタンス化され、事前構成されたメタモデルに。ドラッグまたはドロップする。選択されたコンポーネントの各ドラッグ、またはドロップに応答して、(
図5において、各ロケーションの下にバーとして示される)コンプライアンスインジケータが、動的に更新される。インスタンス化され、事前構成されたメタモデルに対してなされたすべての変更は、対応する潜在的ロケーションに依存しない、アジャイルデリバリモデルを生じる。この開示に従って、コンプライアンスインジケータは、アジャイル原理とのコンプライアンスの度合いを示す。一実施形態において、システム100は、回避することができない、事前に特定された必須の原理を有することができる。
図5の一例示実施形態において、アジャイルの12の原理を説明するバーに12のブロックがある。違反しないアジャイル原理は、クロスパターンを有するブロックにより表され、尊守される(adhered)原理は、点線パターンを有するブロックにより表される。従って、ビジュアルモデルは、アジャイル原理のコンプライアンスの度合いの表示をユーザに提供し、それにより、制約が最適に管理されるように、ユーザが、潜在的ロケーションに依存しない、アジャイルデリバリモデルを、さらに変更することを可能にする。少なくともアジャイル原理とのコンプライアンスの、ユーザ定義した、最小度合いを有する、潜在ロケーションに依存しないアジャイルデリバリモデルは、次にステップ210eにおいて、新しいロケーションに依存しない、アジャイルデリバリモデルとして識別することができる。
【0034】
一実施形態において、新しいロケーションに依存しない、アジャイルデリバリモデルは、選択されたコンポーネントに基づくグラフの形態であり、地理的ロケーションは、ノードとして機能し、ヘッダ属性は、ノード属性として機能し、通信リンクは、エッジとして機能する。
【0035】
この開示の一実施形態に従って、方法200は、3次元制約が与えられた、4つの事前構成されたメタモデル(
図5のM1、M2、M3、M4)のセットから、メタモデルをインスタンス化することにより、新しいロケーションに依存しない、アジャイルデリバリモデルの生成のための3−4−5アプローチに従い、さらに、5つのアクティビティを介して、新しいロケーションに依存しない、アジャイルデリバリモデルをさらに成熟させる。一実施形態において、3次元制約は、以下を含む。
1.分散チーム間のビジネス知識の存在−ビジネス知識が低ければ低いほど、大幅に分散したアジャイルチームの可能性が低くなる。
2.日中に変化し、即時対応が必要な、ビジネス要件の極端な変動性(volatility)のような、交渉不可能なプログラムの存在−交渉不可能なプログラムが高いほど、アジャイルチームが大幅に分散する可能性は低くなる。
3.共通の基本アジャイル作業方法の存在−共通の最小限の作業フレームワークが無いため、ロケーションにまたがってチームを分散する能力が制限される。
組織全体にアジャイルを適用する際の一貫性が増すほど、分散アジャイルチームを実現できる可能性が高くなる。
【0036】
3−4−5アプローチによれば、例示的な実施形態では、3次元制約の解析に基づいた、4つの事前構成されたメタモデル(M1、M2、M3、M4)は、
1.モデルM1:ローカルチーム全体が、物理的/仮想的に同じ場所にある1つのチーム。アジャイル開発チームのメンバ(Dev)は、ビジネスニーズを理解するために、プロダクトオーナ(PO)による、重要な複雑で困難な業務支援(hand-holding)を必要とする。
2.モデルM2−最小限に分散−2つの異なる場所にある2つのアジャイルチーム。
各チームは、完全なアジャイル開発チームである。プロダクトオーナは、物理的/仮想的に同じ場所に位置する。POが存在しない場所にいる一部のアジャイル開発チームメンバは、POによって明確化されたビジネスニーズを解釈するための基本的なビジネス知識を必要とする。チームは、共通のアジャイルイベントを活用して、互いに連携して動作する。
3.モデルM3−大幅に分散−複数ロケーションにある複数のアジャイルチーム。各チームは、完全アジャイル開発チームである。各チームにおける、いくつかのアジャイル開発チームメンバは、POによって明確化されたビジネスニーズに基づいて、解釈するだけでなく、低レベルの要件仕様を作成するための、優れたビジネス洞察(insights)を有する。POは物理的/仮想的に、チームの1つと同じ場所に位置する。チームは、共通のアジャイルイベントを活用して、互いに連携して動作する。
図5は、モデルM3の例示説明図である。
4.モデルM4−完全に分散−複数のロケーションにある複数のアジャイルチーム。各チームは、完全なアジャイル開発チームである。各チームの少なくとも1つのアジャイル開発チームメンバは、プロダクトスペシャリスト(PS)である。PSは、POによって設定された高いレベルの指示に基づいて、詳細なビジネスニーズを作成するのに十分な、ビジネス専門知識を有する。POは、どのチームとも同じロケーションに位置する必要はない。チームは、共通のアジャイルイベントを活用して互いに連携する。
【0037】
この開示のコンテキストにおいて、「ロケーション」または「地理」という表現は、都市または国だけではなく、施設または施設の異なるフロアを指すこともある。したがって、同じビルの異なるフロアで動作しているチームでさえ、分散していると、みなすことができる。しかしながら、アジャイルチームを複数の場所に分散するだけでは、分散アジャイルとしての資格はない。この開示によれば、分散ロケーションを実質的に同じ場所にあると認定し、従って、アジャイル要件を満たすために、以下のルールを順守する必要がある。
ルール1:チームメンバは、少なくとも4時間のタイムゾーンオーバラップを共有する必要がある。これは、チームメンバが地理的に反対の場所にいるチーム、例えば、ムンバイ対シカゴ(Mumbai vs Chicago)を除くほとんどのチームで当然可能である。その場合、チームは、仕事のシフトの一部の動き、例えば午後12時から午後9時までをトライすることができる。ただし、フルシフト(1か所で夜勤に移行するメンバ)は、推奨されない。
ルール2:職場がインフラストラクチャを提供し、チームメンバが物理的なコロケーションと同じくらい優れたコラボレーション/コミュニケーションを行えるようにする(正しいコラボレーションツール)。
ルール3:異なる場所(「1つのチーム文化」)間のコミュニケーションのチーム規範を確立する。経験豊富なコーチまたはファシリテータ(facilitator)は、書かれた言語による誤解、一般的なイベントでのチームメンバの繰り返し欠席、攻撃的な行動、適切なコミュニケーション手段の選択の誤り、推定に関する意見の食い違い、設計、決定など、潜在的なトリッキーなシナリオを、すべてのチームに説明する必要がある。すべてのチームメンバは、一緒に、そのような例外を処理するための規範を構築する必要がある。
【0038】
繰り返しになるが、本開示によれば、コロケーションは、1つのアジャイルチームを意味するものではない。この開示によれば、アジャイルチームは、2つの条件を満足する。
条件1:すべてのチームメンバは、「製品カタログページの作成」など、共通の作業目標を共有する必要がある。
条件2:チームメンバ全員が1日を通して緊密に連携し、少なくとも1日に3回同期する必要がある。したがって、1つのプロジェクト内に、1つ以上のアジャイルチームを配置することは可能であるが、すべてのメンバは、同じ場所に配置される。
【0039】
本開示によれば、プロジェクトに割り当てられたチーム内に、より多くのアジャイルチームを追加することにより、ロケーションに依存しないアジャイル配信モデルで、スケーリング(scaling)が達成される。アジャイルチームは、物理的なコロケーションを必要とせずに、さまざまな場所から作業できるが、仮想コロケーションのルールを、アジャイルチームが、順守する必要がある。上記の事前構成メタモデル(M1、M2、M3、M4)は、このチームの、チームコンセプトを使用して構築されている。
【0040】
3−4−5アプローチによれば、例示的実施形態において、新しいロケーションに依存しないアジャイル配信モデルを成熟させる(maturing)5つのアクティビティは次のとおりである。
1.アジャイル開発チームのメンバがPOへの依存を少なくして作業できるようにし、分散した場所で、ビジネス知識を構築する。
2.時間帯の違いを活用するようにチームを構成する。アジャイルチームは、効果的なコラボレーションのために、タイムゾーン間で最小限の重複が必要である。チームの作業時間を調整して、仕事の持続可能なペ−スを確保し、あるチームが仕事から帰宅するときに、別のチームが、仕事を引き継いて継続できるように計画する。チームは、日々の進行を妨げる要因などの一連の事実に基づいて、重複の程度を決定する場合がある。
3.「1チーム」の文化と適切なコラボレーションツールを計画する−企業全体のチームが共通のアジャイルプラクティスを共有する。また、コンピューティングリソース(データのセットアップ、展開等)に対する同様の特権を教授しているため、どの場所からでもチームに、同等の権限が与えられる。コラボレーションイネーブラーには、ビデオ会議、共有ホワイトボードなどの「仮想コロケーション」を完全に有効にするツールを含むことができる。スプリントサイクルとリリースサイクルの自動化されたフローを同期および増加-ビジネスニーズに対応し、リリースサイクルと同期する適切なスプリントサイクルを選択します。適切なレベルのDevOps(登録商標) チーム間の相互、および外部の依存関係無しに作業の流れを改善するために、自動化およびエンジニアリングの実践が行われる。
5.チーム間での依存関係が最小化され、流出が最大化されるように、場所間での作業の適切な分散を計画する。
【0041】
本開示の例示的な3−4−5アプローチによれば、開発チームとPOの間の依存関係は、子供と母親の間の依存関係として扱われる。ビジネスについて十分に理解していないチームは、母親であるPOに依存する子供である。これは、M1(完全共存)モデルの場合である。このアプローチは、この依存関係を徐々に減らす。たとえば、M2では、チームは、POによって明確化されたビジネスニーズをすばやく解釈できるように、十分なビジネス理解を開発する。M3では、チームは、POに依存せずに、詳細なニーズを引き出すことさえできる。これは、POの利用可能性を増大させPOが、より多くのチームをサポートすることを可能にする。
【0042】
アジャイルマニフェストの発行以来、今日、コラボレーション技術は、大きく進化している。本開示によれば、動作する分布モデルと、動作しない分布モデルの知識、それらの動作特性、適切な分布モデルの選択に関する知識、適切なパラメータの設定に関するノウハウと経験、コンテキストのビジネス知識と、タイムゾーンの処理・重複を活用して、スケーラブルでカスタマイズ可能な、ロケーションに依存しないアジャイル配信モデルを生成した。
【0043】
本開示の一実施形態によれば、新しい、ロケーションに依存しないアジャイル配信モデルが特定されると、ユーザは、特定されたモデルの性能を評価することを選択することができる。したがって、1つまたは複数のプロセッサ104は、ステップ212で、訓練された1つまたは複数の、機械学習モデルを使用して(ステップ208で)新しい、ロケーションに依存しないアジャイル配信モデルの評価を開始し、新しいロケーションに依存しないアジャイル配信モデルのパフォーマンスパラメータのセットを出力するように構成される。本開示によれば、性能パラメータは、新しいロケーションに依存しないアジャイル配信モデルの最適化の程度を示している。パフォーマンスパラメータのセットは、実世界のシナリオで実装された場合に、識別されたモデルが、どのように変化するかをユーザに示す。1つ以上のパフォーマンスパラメータが、履歴モデルと比較して、より良い価値を示す場合、新しいロケーションに依存しないアジャイル配信モデルのアーキテクチャは、将来の参照のためにモデリングユニット102Aのモデルリポジトリで更新される。一実施形態では、性能パラメータのセットを構成する、異なる性能パラメータに対して、複数のパス(バッチプロセス)を実行して、例えばリリース頻度、速度、機能品質、構造品質、製造後欠陥などの価値を計算することができる。ユーザは、パフォーマンスパラメータを使用して、さまざまなリソース使用率または計画に関して変更を加え、ユーザが生成した新しいロケーションに依存しない、アジャイル配信モデルの計算されたパフォーマンスパラメータを改善、変更、またはバランスさせることができます。
【0044】
本開示の別の実施形態によれば、新しい位置非依存のアジャイル配信モデルが特定されると、それをモデリングユニット102Aのモデルリポジトリ内の1つ以上のアジャイル配信モデルと最良の一致と比較することができる。 ステップ214で、回帰法または最近隣法のいずれかを使用して出力し、ユーザが新しいロケーションに依存しないアジャイル配信モデルを異なるアジャイルモデル実装によって設定されたベンチマークと比較し、高性能を実現するベストプラクティス実装を活用できるようにします。
【0045】
したがって、本開示のシステムおよび方法によれば、ロケーションに依存しない、アジャイル配信チームを成功裏に実装するための3つの側面がある。組織のビジネスの専門知識の分布、仕事の性質、およびアジャイルの成熟度の評価。組織のニーズを満たす適切なアジャイル配信モデルの選択。また、アジャイルチームのアジャイル能力を継続的に改善して、本開示により提供されるロケーションに依存しないアジャイル配信モデルの利点を獲得する。
【0046】
組織の評価
ロケーションがビジネスの専門知識を欠いている場合、アジャイルチームをサポートできるようになるには、より多くの専門知識が必要になる。チームメンバが、経験を積むにつれて、ビジネスの知識が構築され、より価値があり、分散組織の一部として働くことができるようになる。最初は、ロケーションに依存しないアジャイルチームは、緊急でも不安定でもない作業に集中できる。作業が両方である場合、交渉不可能な制約がある場合(夜間の修正、日中のスコープ変更、規制要件など)、またはPOへの継続的なアクセスが必要な場合、可能な限り、次のチームと作業するのが最善である。チームが、アジャイルアプローチに比較的慣れていない場合、チームを併置する必要がある。アジャイル文化、特に、リーダーシップの共通理解を持っていることは、組織が、ロケーションに依存しないアジャイル配信チームで成功できることを示している。
【0047】
適切なアジャイル配信モデルの選択:
上記で説明したように、一実施形態では、事前に構成されたメタモデルの1つ(高度に分散された配置で効果的であり得るチームに併置されるべきチームからの範囲)は、アジャイルチームを編成するために選択することができる。
【表1】
【0048】
現実世界のシナリオで観察されるような、ロケーションに依存しないアジャイル配信モデルを実装する利点のいくつかには、分散エンタプライズアジャイルの作成、利用可能な事前構成されたメタモデルから、適切なモデルを選択することにより週5日、24時間、利用することにより、企業をより生産的にする、および複数のチームに依存しないロケーションにわたって技術を共有することにより卓越性を加速する、ことを含む。
【0049】
上記の3−4−5アプローチの5つのアクティビティに基づいて、新しいロケーションに依存しない、アジャイル配信モデルを成熟させることにより、アジャイルチームのアジャイル能力を向上させる。
【0050】
この記述は、当業者が実施形態を作成および使用することを可能にするために、本明細書の主題を説明する。主題の実施形態の範囲は、特許請求の範囲によって定義され、当業者が思いつく他の修正を含むことができる。そのような他の修正は、クレームのリテラル言語と異ならない類似の要素を持っている場合、またはクレームのリテラル言語と実質的な違いの無い、同等の要素を含む場合、クレームの範囲内にあることを意図する。
【0051】
保護の範囲は、そのようなプログラムに拡張され、その中にメッセージを有するコンピュータ可読手段に加えられることを理解されたい。そのようなコンピュータ可読手段、プログラムが、サーバ、またはモバイルデバイス、または任意の適切なプログラム可能なデバイスで実行されるときに、方法の、1つまたは複数のステップを実施するためのプログラムコード手段を含む。ハードウエアデバイスは、サーバ、またはパーソナルコンピュータ等の任意の種類のコンピュータ、またはそれらの任意の組み合わせを含む、プログラム可能な任意の種類のデバイスであり得る。デバイスはまた、例えば、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)のようなハードウェア手段、または、例えば、ASICとFPGA、または少なくとも1つのマイクロプロセッサと、ソフトウエアモジュールを内蔵した少なくとも1つのメモリのような、ハードウェアとソフトウェアの組み合わせであり得る手段を含むことができる。したがって、手段は、ハードウェア手段とソフトウェア手段を含むことができる。ここに記載した方法の実施形態は、ハードウェアとソフトウェアで、インプリメントすることができる。デバイスはまた、ソフトウェア手段を含むことができる。あるいは、実施形態は、異なるハードウエアデバイス、例えば、複数のCPUsを用いてインプリメントすることができる。
【0052】
本明細書の実施形態は、ハードウェアエレメントと、ソフトウェアエレメントを含むことができる。ソフトウェアでインプリメントされた実施形態は、これに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。ここに記載した種々のモジュールにより実行される機能は、他のモジュール、または他のモジュールの組み合わせでインプリメントすることができる。この説明の目的のために、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関連して使用するプログラムを含む、格納する、通信する、伝搬する、または転送することができる任意の装置であり得る。
【0053】
図示されたステップは、示された例示的な実施形態を説明するために提示されており、進行中の技術開発が特定の機能が実行される方法を変えると予想されるべきである。これらの例は限定ではなく、例示の目的でここに提示される。さらに機能構築のブロックの境界は、説明の便宜上、本明細書で任意に定義されている。指定された機能とその関係が適切に実行される限り、代替の境界を定義できる。本明細書に含まれる教示に基づいて、代替物(本明細書に記載されるものの均等物、拡張、変形、逸脱などを含む)は、関連技術の当業者には明らかであろう。そのような代替物は、開示された実施形態の範囲、および精神に含まれる。また、「含む(comprising)」、「有する(having)」、「含む(containing)」および「含む(including)」および他の類似の形態は、意味的に等価であることを意図しており、これらの用語に続く、アイテムまたは複数のアイテムは、そのようなアイテム、または複数のアイテムの総記であることを意味せず、またはリストされたアイテムまたは複数のアイテムのみに限定されることを意味する。また、本明細書および添付の特許請求の範囲で使用される単数形「1つ(a)」、「1つ(an)」、「その(the)」は、コンテキストがそうでないことを明確に示さない限り、複数の参照を含むことに留意する必要がある。
【0054】
さらに、1つまたは複数のコンピュータ可読媒体は、この開示に一致する実施形態をインプリメントするのに利用することができる。コンピュータ可読記憶媒体は、プロセッサにより読むことができる情報、またはデータが記憶される任意のタイプの物理メモリを指す。従って、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサにより実行するための命令であって、プロセッサ(複数の場合もある)に、ここに記載された実施形態に一致するステップ、またはステージを実行させる命令を記憶することができる。「コンピュータ可読媒体」という用語は、有形のアイテムを含み、搬送波と一時的な信号を除外する、すなわち、一時的でないと理解されるべきである。例としては、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、揮発性メモリ、ハードドライブ、CD ROMs、DVDs、フラッシュドライブ、ディスク、および任意の他の周知の物理記憶媒体を含む。開示および実施例は、例示としてのみ考慮することが意図されており、開示された実施形態の真の範囲および精神は、添付の特許請求の範囲によって示される。