国内: 海外
分野: その他
製品: Gurobi Optimizer
プロジェクトポートフォリオの最適化は、求解が極めて困難な問題です。この問題は、十分でない制限された有効リソース内でプロジェクトを選択して、最適にスケジューリングするための天文学的な数の組み合わせがあります。
さらに、ポートフォリオの作成にあたっては考慮すべき相反する事業目標があり、その結果、相反する目標間の妥協点を最適化する必要も出てきます。
従来からポートフォリオの「最適化」は、まさしく手作業で行う時間がかかる作業であり、一般的には、プロジェクトやプロセスに無駄や遅れが発生する次善の最適化の結果がでてきます。
組織再編前のヒューレット・パッカード(HP)のGlobal IT部門では、この作業に、プロジェクトポートフォリオマネジメント(PPM)というHPのソフトウェアツールと表計算ソフトのデータを使用していました。関連する何百ものプロジェクトが連鎖的に依存している状態でリソースの複数要件を伴いながら、ものすごく複雑に絡み合っているため、多くの有望なポートフォリオシナリオが見過ごされていました。
グローバルなIT組織では一般的に、プロジェクトマネジメント協会(PMI)のガイドラインに沿って、次の会計年度のITプロジェクトのポートフォリオを3カ月前に作成しています(下図参照)。
このプロセスは次のようなステップを踏んで進められます。
HP Global ITは、ITプロジェクトポートフォリオの作成に必要なデータの取得に2つのツールを使用していました。ビジネスバリュープロポジション(BVP)は、利益予測、KPI、人件費以外のコスト、優先事項等を取得するツールで、プロジェクポートフォリオマネジメント(PPM)は、ITプロジェクトのID、名称、プロジェクト期間の見積もり、プロジェクトスポンサー、プロジェクトが支援する投資分野、人件費、人員配置のプロファイルを取得するツールです。
ITプロジェクトのポートフォリオを生成するには、検討を要する領域が多岐にわたるため、難しい挑戦でした。IT組織、投資分野、エグゼクティブスポンサーが、それぞれ複数あり、ITアプリケーションは何千にもおよび、ITアプリケーションとITプロジェクト間も「多対多」の関係があります。
会社の事業戦略に沿った複数の目標もありました。これらの事業目標には、総合的なプロジェクトランキングの最大化、総合的なプロジェクトスコアの最大化、総合的なプロジェクト利益(直接的または間接的)の最大化、特定された事業目標(顧客満足、戦略的整合性、技術的整合性、能力ロードマップ、従業員満足、法令/規制/監査等)に関する総合的なプロジェクトスコアの最大化などです。最終的なITプロジェクトポートフォリオは、CEOと執行委員会に承認されましたが、これらの意思決定者の利害は幾度となく対立しました。また、ITプロジェクトポートフォリオの作成は年1回でしたが、手作業によるプロセスがきわめて非効率的であるのはあきらかで、出来上がったポートフォリオがビジネスルールやプロジェクトの優先順位制約に違反するため、実行不能になることもたびたび発生しました。さらに、事業要件や労働能力の変化に伴う不確実性により、ITプロジェクトポートフォリオが、非常に短期間で使いものにならなくなってしまうこともありました。
解決すべき問題は、リソースの制約(例:労働能力、予算)とその他の事業上の制約(例:プロジェクト優先順位制約)を考慮しながら、その間にある最適な妥協点を得るために、ITプロジェクトポートフォリオの選択とスケジューリングをどのように最適化すればよいか、ということでした。
ITプロジェクトポートフォリオの作成と維持管理の際の複雑な計算をするプロセスを自動化するために、プロジェクポートフォリオオプティマイゼーション(PPO)という意思決定支援ツールが構築されました。PPOツールは、ITビジネス環境の不確実性と継続的な変動に対応するための「what-if分析」機能を提供し、これによって事業・ITプランナーは、様々な事業目標の妥協点を最適化し、リソースとビジネス制約を満たすプロジェクトポートフォリオを形づくることができました。
PPOモデルの主要な決定変数は、ポートフォリオに含めるITプロジェクトの選択および選択されたプロジェクトの開始時期でした。PPOモデルへの入力データは、BVPツールとPPMツールから取得します。PPOモデルは、単一の事業目標の最大化の課題を処理することも、辞書編纂(階層)法を用いて複数の事業目標を持つ課題を処理することもできました。PPOツールの主要なアウトプットは、図2を参照してください。
PPOツールによるガントチャートと最適なポートフォリオの予算消化状況
一言で言えば、PROモデルは、以下の制約を満たすプロジェクトポートフォリオの事業価値の最大化であると言えます。
PPOツールは、HPのCloudで実行され、役割や能力が様々に異なる多くのユーザの同時アクセスをサポートしました。このツールには、定義されたビジネスルールに基づき、PPOデータを頻繁に更新するステージング領域データベースがありました。PPOの前処理部分は、データセットを全てロードするのではなく増分されたデータのみの更新を実行し、ステージング領域データベース内の新しい情報の管理をしていました。PPOツールには、多数のGurobiサーバの使用が可能で、これにより複数のシナリオを同時に解くことができる最適化シナリオのキューマネージャがありました。
HP Global ITは、PPOツールで2015事業年度のITプロジェクトポートフォリオを作成しました。PPOツールは、戦略的整合性と実行能力を確保しつつ、ポートフォリオのコストの24%で90%のポートフォリオ利益を生み出しました。
前述した手作業のプロセスとPPOツールを比較すると、手作業で作成されたポートフォリオに対してPPOツールが構築したポートフォリオは、HPに1億ドルの経済的利益をもたらしました。
2016年に、PPOテクノロジーはHPのSW PPM R&Dチームに移管されました。
Cookie Settings | Privacy Policy | © Gurobi Optimization, LLC. All Rights Reserved.
Choose the evaluation license that fits you best, and start working with our Expert Team for technical guidance and support.
Request free trial hours, so you can see how quickly and easily a model can be solved on the cloud.
Cookie | Duration | Description |
---|---|---|
_biz_flagsA | 1 year | A Cloudflare cookie set to record users’ settings as well as for authentication and analytics. |
_biz_pendingA | 1 year | A Cloudflare cookie set to record users’ settings as well as for authentication and analytics. |
_biz_sid | 30 minutes | This cookie is set by Bizible, to store the user's session id. |
ARRAffinity | session | ARRAffinity cookie is set by Azure app service, and allows the service to choose the right instance established by a user to deliver subsequent requests made by that user. |
ARRAffinitySameSite | session | This cookie is set by Windows Azure cloud, and is used for load balancing to make sure the visitor page requests are routed to the same server in any browsing session. |
BIGipServersj02web-nginx-app_https | session | NGINX cookie |
cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
elementor | never | This cookie is used by the website's WordPress theme. It allows the website owner to implement or change the website's content in real-time. |
JSESSIONID | session | New Relic uses this cookie to store a session identifier so that New Relic can monitor session counts for an application. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duration | Description |
---|---|---|
__cf_bm | 30 minutes | This cookie, set by Cloudflare, is used to support Cloudflare Bot Management. |
_biz_nA | 1 year | Bizible sets this cookie to remember users’ settings as well as for authentication and analytics. |
_biz_uid | 1 year | This cookie is set by Bizible, to store user id on the current domain. |
_hjAbsoluteSessionInProgress | 30 minutes | Hotjar sets this cookie to detect a user's first pageview session, which is a True/False flag set by the cookie. |
_mkto_trk | 2 years | This cookie is set by Marketo. This allows a website to track visitor behavior on the sites on which the cookie is installed and to link a visitor to the recipient of an email marketing campaign, to measure campaign effectiveness. Tracking is performed anonymously until a user self-identifies by submitting a form. |
bcookie | 1 year | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser ID. |
bscookie | 1 year | LinkedIn sets this cookie to store performed actions on the website. |
doc_langsBB | 1 year | Documentation system cookie |
doc_version | 1 year | Documentation system cookie |
lang | session | LinkedIn sets this cookie to remember a user's language setting. |
lidc | 1 day | LinkedIn sets the lidc cookie to facilitate data center selection. |
UserMatchHistory | 1 month | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
whova_client_id | 10 years | Event agenda system cookie |
Cookie | Duration | Description |
---|---|---|
_gat_UA-5909815-1 | 1 minute | A variation of the _gat cookie set by Google Analytics and Google Tag Manager to allow website owners to track visitor behaviour and measure site performance. The pattern element in the name contains the unique identity number of the account or website it relates to. |
Cookie | Duration | Description |
---|---|---|
_an_uid | 7 days | 6Sense Cookie |
_BUID | 1 year | This cookie, set by Bizible, is a universal user id to identify the same user across multiple clients’ domains. |
_ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
_ga_* | 1 year 1 month 4 days | Google Analytics sets this cookie to store and count page views. |
_gat_UA-* | 1 minute | Google Analytics sets this cookie for user behaviour tracking. |
_gcl_au | 3 months | Provided by Google Tag Manager to experiment advertisement efficiency of websites using their services. |
_gd_session | 4 hours | This cookie is used for collecting information on users visit to the website. It collects data such as total number of visits, average time spent on the website and the pages loaded. |
_gd_visitor | 2 years | This cookie is used for collecting information on the users visit such as number of visits, average time spent on the website and the pages loaded for displaying targeted ads. |
_gid | 1 day | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
_hjFirstSeen | 30 minutes | Hotjar sets this cookie to identify a new user’s first session. It stores the true/false value, indicating whether it was the first time Hotjar saw this user. |
_hjIncludedInSessionSample_* | 2 minutes | Hotjar cookie that is set to determine if a user is included in the data sampling defined by a site's daily session limit. |
_hjRecordingEnabled | never | Hotjar sets this cookie when a Recording starts and is read when the recording module is initialized, to see if the user is already in a recording in a particular session. |
_hjRecordingLastActivity | never | Hotjar sets this cookie when a user recording starts and when data is sent through the WebSocket. |
_hjSession_* | 30 minutes | Hotjar cookie that is set when a user first lands on a page with the Hotjar script. It is used to persist the Hotjar User ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjSessionUser_* | 1 year | Hotjar cookie that is set when a user first lands on a page with the Hotjar script. It is used to persist the Hotjar User ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjTLDTest | session | To determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails. |
6suuid | 2 years | 6Sense Cookie |
AnalyticsSyncHistory | 1 month | LinkedIn cookie |
BE_CLA3 | 1 year 1 month 4 days | BrightEdge sets this cookie to enable data aggregation, analysis and report creation to assess marketing effectiveness and provide solutions for SEO, SEM and website performance. |
CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
dj | 10 years | DemandJump cookie |
djaimid.a28e | 2 years | DemandJump cookiean |
djaimses.a28e | 30 minutes | DemandJump cookie |
li_gc | 5 months 27 days | LinkedIn Cookie |
ln_or | 1 day | LinkedIn Cookie |
vuid | 2 years | Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos to the website. |
Cookie | Duration | Description |
---|---|---|
__adroll | 1 year 1 month | This cookie is set by AdRoll to identify users across visits and devices. It is used by real-time bidding for advertisers to display relevant advertisements. |
__adroll_fpc | 1 year | AdRoll sets this cookie to target users with advertisements based on their browsing behaviour. |
__adroll_shared | 1 year 1 month | Adroll sets this cookie to collect information on users across different websites for relevant advertising. |
__ar_v4 | 1 year | This cookie is set under the domain DoubleClick, to place ads that point to the website in Google search results and to track conversion rates for these ads. |
_fbp | 3 months | This cookie is set by Facebook to display advertisements when either on Facebook or on a digital platform powered by Facebook advertising, after visiting the website. |
_te_ | session | Adroll cookie |
fr | 3 months | Facebook sets this cookie to show relevant advertisements to users by tracking user behaviour across the web, on sites that have Facebook pixel or Facebook social plugin. |
IDE | 1 year 24 days | Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile. |
li_sugr | 3 months | LinkedIn sets this cookie to collect user behaviour data to optimise the website and make advertisements on the website more relevant. |
test_cookie | 15 minutes | The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |