JP2024008316A - 自動化支援装置、および、自動化支援方法 - Google Patents
自動化支援装置、および、自動化支援方法 Download PDFInfo
- Publication number
- JP2024008316A JP2024008316A JP2022110080A JP2022110080A JP2024008316A JP 2024008316 A JP2024008316 A JP 2024008316A JP 2022110080 A JP2022110080 A JP 2022110080A JP 2022110080 A JP2022110080 A JP 2022110080A JP 2024008316 A JP2024008316 A JP 2024008316A
- Authority
- JP
- Japan
- Prior art keywords
- man
- work
- support device
- work procedure
- procedure manual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000011161 development Methods 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 38
- 238000012423 maintenance Methods 0.000 claims description 19
- 230000008859 change Effects 0.000 description 26
- 238000013515 script Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000012360 testing method Methods 0.000 description 9
- 230000015556 catabolic process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000012417 linear regression Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063114—Status monitoring or status determination for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】
一例としてITシステムの運用管理業務に関連する技術に関し、作業の自動化にかかる工数の目安を算出し、作業の自動化を支援することができる自動化支援装置および自動化支援方法を提供することである。
【解決手段】
自動化支援装置は、プロセッサと、記憶部と、を備えている。この自動化支援装置において、前記の記憶部は、作業の手順に関する作業手順書の自動化にかかる工数を推定するルールである工数推定ルールを記憶している。そして、前記のプロセッサは、前記の作業手順書と前記の作業手順書に従って実行された記録である作業実行記録を入力として、前記の記憶部に記憶された前記の工数推定ルールを用いて、前記作業手順書の自動化にかかる工数を算出する。
【選択図】 図1
一例としてITシステムの運用管理業務に関連する技術に関し、作業の自動化にかかる工数の目安を算出し、作業の自動化を支援することができる自動化支援装置および自動化支援方法を提供することである。
【解決手段】
自動化支援装置は、プロセッサと、記憶部と、を備えている。この自動化支援装置において、前記の記憶部は、作業の手順に関する作業手順書の自動化にかかる工数を推定するルールである工数推定ルールを記憶している。そして、前記のプロセッサは、前記の作業手順書と前記の作業手順書に従って実行された記録である作業実行記録を入力として、前記の記憶部に記憶された前記の工数推定ルールを用いて、前記作業手順書の自動化にかかる工数を算出する。
【選択図】 図1
Description
本発明は、自動化支援装置、および、自動化支援方法に関する。
ITシステムの運用管理の作業(運用作業と記す場合がある)には、多くの手作業による作業がある。運用作業には、例えば、データベースの保守や、アプリケーションの更新、障害対応などがある。運用作業は、定期的あるいはオンデマンドに業務部門からの依頼を受けて、運用部門が実行する。運用作業が手作業の場合、運用作業リクエストには、作業手順書が添付される。運用部門は、この運用作業を実行するスキルがある作業者へ運用作業を割り当てる。運用作業者は、作業手順書にしたがって作業し、正しく作業を行ったことを記録として残す。
運用作業は種類も数も多く、その全ての運用作業を手作業で行うことは非効率であり多大なコストがかかる。コスト削減のためには、計算機により作業を自動化し効率化を進めなければならない。そのため、数多くある手作業の中から、自動化による時短効果が高い作業を選定しなければならない。この選定作業を支援するために、運用作業の記録をとり、回数が多く実行時間が長い作業を選定するツールが使われ始めている。
しかし、自動化すべき作業の選び方として、単純に実行時間だけから選定するやり方は不十分であると考えられる。運用管理には、様々な観点があり、優先度づけは複合的に行われなければならない。
例えば、特許文献1には、作業要求チケットの文言の類似性からチケットをグルーピングした上で、チケットの付与された緊急度や、作業対象のITシステムの重要度に基づいて、自動化する作業の優先度を決めることが開示されていると考えられる。特許文献1が開示する解決方法は、ITシステムで障害が起きた際のダウンタイムを最小化する観点で、有効な作業選定方法であると考えられる。しかし、作業の自動化にかかる工数について提示される情報はない。
実行時間の合計が長く、自動化による時短効果が見込める作業であっても、多大な工数が必要な場合、自動化は現実的ではない。一方で、時短効果は中程度だが、少ない工数で自動化できる作業があれば、自動化の現実的な選択肢となる。
以上から、本発明の目的は、作業の自動化にかかる工数の目安を算出し、自動化を支援することである。
本発明の第1の態様によれば、下記の自動化支援装置が提供される。この自動化支援装置は、プロセッサと、記憶部と、を備える。記憶部は、作業の手順に関する作業手順書の自動化にかかる工数を算出するルールである工数推定ルールを記憶する。プロセッサは、作業手順書と前記作業手順書に従って実行された記録である作業実行記録を入力として、記憶部に記憶された工数推定ルールを用いて、作業手順書の自動化にかかる工数を算出する。
本発明の第2の態様によれば、下記の自動化支援方法が提供される。この自動化支援方法は、プロセッサと、記憶部と、を用いて行う方法である。この方法では、プロセッサが、作業の手順に関する作業手順書と前記作業手順書に従って実行された記録である作業実行記録を取得し、記憶部に記憶された作業手順書の自動化にかかる工数を算出するルールである工数推定ルールを参照し、工数推定ルールを用いて、作業手順書の自動化にかかる工数を算出する。
本発明によれば、作業の自動化にかかる工数の目安を算出し、自動化を支援することができる。なお、上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
実施形態では、ITシステムの運用管理業務に関連する技術に関する自動化支援について説明する。先ず、図1を参照しながら、自動化支援装置による作業選定支援の概要について説明する。
図1は、左上の業務担当者から処理が進む様子を示している。業務担当者は、運用部門へ運用作業を依頼する。業務担当者は、まず、運用作業リクエストを作成する。運用作業リクエストは、依頼する運用作業の内容が記載されたデータで、作業対象システム(作業対象)、作業に必要なスキル(要求スキル)、作業手順書(ワークフロー)、作業の正常完了を確認するためのチェックリストなどが含まれる。なお、本実施形態におけるワークフローとは、手動作業と自動処理が混在した処理手順のことである。
作業割り当てプログラム201は、運用作業リクエストを受領し、同作業を実行可能な作業者へ作業を割り当てる。作業者は、ワークフロー実行プログラム202を使用して、作業リクエスト中のワークフローを動作させる。ワークフローのステップが手作業なら作業者が作業を行い、自動処理ならワークフロー実行プログラム202が自動的に処理を行う。このとき、作業を行った結果として作業実行記録が作成される。作業実行記録には、作業に要した時間(作業時間)、作業者のスキル(作業者スキル)、作業中のエラー(エラー発生数)、GUIによる操作が正常完了したことを示すGUIスクリーンショット、作業対象のシステムから出力されたログなどが含まれる。
工数見積もりプログラム200は、工数見積もりルールに格納されたルールにしたがい、運用作業リクエストと、作業実行記録を入力として、作業の自動化にかかる工数の見積もり値を算出し、開発者へ提示する。例えば、工数見積もりプログラム200は、保守工数見積もりルールにしたがい、作業を自動化した自動フローの保守コストを算出する。工数見積もりプログラム200は、ワークフローに含まれる手作業の手順書が変更された履歴から、手順の変更頻度が十分下がっていれば、少ない保守工数を見積もる。その他のルールとして、工数見積もりプログラム200は、開発やテストにかかる工数を見積もるが、詳細は後で述べる。
ボトルネックステップ提示プログラム203は、運用作業リクエストと作業実行記録を入力として、ボトルネックステップを特定し、開発者へ提示する。ボトルネックステップは、作業を自動化する上で妨げとなる作業ステップを意味する。本明細書において、このようなステップをボトルネックステップと記すことがある。例えば、ボトルネックステップ提示プログラム203は、作業実行記録のGUIスクリーンショットを集計し、多くのワークフローで共通して使用されるGUI画面を特定し、ボトルネックステップとして提示する。こちらについても、詳細は後で述べる。
開発者は、上記のプログラムが提示する作業自動化に役立つ情報を参考に、自動化による時短効果が高く、開発工数が少ない作業を選定する。開発者は、開発ツールを用いて、手作業を自動化する開発作業を行う。開発ツールには、プログラム作成のための統合開発環境や、プログラムのバージョン管理ツール、開発者間のコミュニケーションツールなどが含まれる。これらのツールに記録されたデータを参照することで、自動化した作業ごとに、開発に要した時間やプログラム量を取得できる。
最後に、工数見積もりプログラム200は、開発ツールと連携し、実際に開発に要した工数と、同プログラムが算出した工数見積もりとの差異から、工数見積もりルールのパラメタを調整し、工数見積もりの値が、実工数に近くなるようにする。
以上のサイクルを繰り返すことで、自動化された作業の割合を効率的に向上できる。
上記した作業選定支援によれば、作業の自動化による時短効果だけででなく、作業の自動化にかかる推定工数を考慮して、自動化する作業を選定することができる。
図2は、実施形態に係わる自動化支援システムの構成を示す。自動化支援システムは、管理計算機100(自動化支援装置)と、複数のITシステムと、を含んだ構成とすることができる。管理計算機100は、工数見積もりプログラム200、作業割り当てプログラム201、ワークフロー実行プログラム202、ボトルネックステップ提示プログラム203が動作する計算機である。管理計算機100は、LAN110を介して、管理対象のITシステムであるシステムA(120a)、システムB(120b)と接続されている。
管理計算機100は、CPU101、メモリ102、永続データを格納するHDD103、NWインタフェース104、および、ディスプレイ105(表示装置)を備える。CPU101(プロセッサ)は、各種のプログラム(200~203)の実行の主体となる。HDD103(記憶部)には、各種プログラムと、プログラムが参照するデータを格納するテーブルが格納される。これらのプログラムは、HDD103からメモリ102へロードされ、CPU101上で実行される。また、管理計算機100は、データの入力に用いる適宜の入力装置(不図示)を備える。
システムA(120a)は、複数のサーバ(図中のサーバA(130a)、サーバB(130b))を含んで構成されるITシステムである。一方、システムB(120b)は、クラウド1(140)のサービスA(150)を利用したITシステムである。運用作業者は、管理計算機100を介して、これらITシステムに対してコマンド実行、API呼び出し、GUIによる運用操作を行う。
次に、図3-図17を参照しながら、各種のデータ等の一例について説明する。図3は、作業リクエストテーブル300の構成例を示す。作業リクエストテーブル300には、業務担当者から依頼された作業のデータが各行(例えば、行301a)に格納される。作業ID302は、各作業の一意識別子である。作業名303は、依頼する作業の名称である。対象システム304は、作業の対象となるITシステムの名称である。登録日時305は、作業リクエストを登録した日時である。緊急度306は、作業の緊急度である。図中では、緊急度「中」「高」の作業が登録されている。緊急度「高」の作業とは、例えば障害の原因調査などの、できるだけ早い着手と実行が求められる作業である。ワークフローID307は、この作業リクエストの具体的な手順を含むワークフローの一意識別子である。ワークフローの実体は、ワークフロー定義テーブル400に格納される。
図4は、ワークフロー定義テーブル400の構成例を示す。ワークフロー定義テーブル400は、作業の具体的な手順にあたるデータを格納するテーブルである。各行(例えば、行401a、行401b)が、ワークフローのそれぞれのステップに相当する。ワークフローID402は、ワークフローの一意識別子である。ステップ番号403は、ワークフローを構成するステップに付与された連番である。作業タイプ404は、作業の種類、すなわち、「手動」作業か「自動」作業かを表す。要求スキル名405は、当該行のステップを実行する作業者に求められるスキルの名称である。要求スキルは複数個あってもよい。要求スキルレベル406は、作業者に求められるスキルの習熟度である。作業指示文407は、自然文で記述された作業者に対する指示文である。要求スキル名405、要求スキルレベル406、および作業指示文407は、作業タイプ404が「手動」であるときに値が格納される。チェックリストID408は、当該行のステップが正常に実行されたことの確認に用いられるチェックリストの一意識別子である。チェックリストのデータは、チェックリストテーブル700に格納される。自動スクリプトID409は、作業を自動処理するスクリプトの一意識別子である。自動スクリプトのデータは、自動スクリプトテーブル800に格納される。自動スクリプトID409は、作業タイプ404が「自動」のときに値が格納される。
図5は、作業対象テーブル500の構成例を示す。作業対象テーブル500には、各作業におけるステップの作業対象(ITシステムのどの構成要素)を格納するテーブルである。作業対象テーブル500の各行(例えば、行501a、行501b)は、作業の各ステップにおける作業対象を格納する。作業ID502は、作業の一意識別子であり、作業リクエストテーブル300の作業ID302に対応する。ワークフローID503およびステップ番号504は、ワークフローのステップを示すデータであり、ワークフロー定義テーブル400のワークフローID402およびステップ番号403に対応する。作業対象505は、当該ステップにおける作業対象を表す。ITシステムごとの構成要素は、後述するシステム構成テーブル600に格納される。
図6は、システム構成テーブル600の構成例を示す。システム構成テーブル600は、ITシステム(本実施形態では、システムA(120a)およびシステムB(120b))を構成する構成要素を格納するテーブルである。テーブルの各行(例えば、行601a、行601b、行601c)は、構成要素を表す。構成要素603は、構成要素の名称を表し、システム602は、同構成要素が属するITシステムの名称を表す。プラットフォーム604は、同構成要素の属性の一つであり、例えば、同構成要素で動作するオペレーティングシステムの種類や、構成要素がクラウド上のサービスであれば、クラウドの名称が格納される。アプリケーション605は、同構成要素上の属性の一つであり、同構成要素上で動作するアプリケーションの名称、例えば、データベースやWebサーバといった値が格納される。システム構成要素テーブル600に格納される構成要素の属性は、プラットフォーム604やアプリケーション605に限定されず、他の属性値を格納してもよい。
図7は、チェックリストテーブル700の構成例を示す。チェックリストテーブル700は、作業が正常に完了したことを確認するためのチェック項目を格納するテーブルである。チェックリストテーブル700の各行(例えば、行701a、行701b)には、それぞれ1つのチェック項目が格納される。チェックリストID702は、チェック項目に対して付与された一意識別子である。チェックリストID702は、ワークフロー定義テーブル400のチェックリストID408に対応する。チェック項目703は、チェックする内容を示す自然文である。チェック704は、同チェック項目の確認が完了したか否かを表す値が格納される。
図8は、自動スクリプトテーブル800の構成例を示す。自動スクリプトテーブル800は、作業を自動化したスクリプトの内容を格納するテーブルである。自動スクリプトテーブル800の各行(例えば、行801a、行801b、行801c、行801d、行801e)には、それぞれスクリプトを構成する要素が格納される。自動スクリプトID802は、自動スクリプトそれぞれに対して付与された一意識別子である。自動スクリプトID802は、ワークフロー定義テーブル400の自動スクリプトID409に対応する。項目803は、自動スクリプトを構成する要素の種類を表し、例えば、スクリプトの「引数」「正常処理」「エラー処理」といった値が格納される。内容804は、スクリプト構成要素の内容が格納される。例えば、項目803が「引数」であれば、引数の名称やデータ型、デフォルト値などの内容が格納される。また、項目803が「正常処理」であれば、正常処理スクリプトの処理内容やプログラムが、項目803「エラー処理」であればエラー処理の内容やプログラムが格納される。本実施形態では、自動スクリプトテーブル800は、管理計算機100内に格納されているが、同テーブルは管理計算機100の外部にあってもよい。例えば、管理計算機100と連携する開発ツールや、バージョン管理ツールが保持してもよい。
図9は、作業員テーブル900の構成例を示す。作業員テーブル900は、作業を行う作業員の名前と保有スキルの情報を格納するテーブルである。作業員テーブル900の各行(例えば、行901a、行901b)には、作業員が保有するスキルの情報が格納される。作業員名902は、作業員の名前が格納される。スキル名903は、作業員が保有するスキルの名称が格納される。作業員のスキルとは、例えば、データベースなどの対象アプリケーション、バックアップやバージョンアップなどの作業の名称である。スキルレベル904は、対応するスキルの習熟度を表すデータで、スキルレベルの値が大きいほど習熟度が高いことを示す。
図10は、作業指示変更履歴テーブル1000の構成例を示す。作業指示変更履歴テーブル1000は、作業指示の内容の変更履歴を格納するテーブルである。このテーブルの各行(例えば、行1001a、行1001b)には、ワークフロー定義テーブル400の作業指示文407の変更によって生じる差分が記録される。ワークフローID1002は、ワークフローの一意識別子である。ステップ番号1003は、ワークフローのステップ番号である。これらは、それぞれワークフロー定義テーブル400のワークフローID402、ステップ番号403に対応する。変更日時1004は、作業指示文407が変更された日時である。変更内容1005は、作業指示文407の変更差分が格納される。新規作成の場合、変更差分ではなく新規作成を示す値が格納される。作業指示変更履歴テーブル1000は、自動スクリプトテーブル800と同様に、管理計算機100と連携する外部の開発ツールに格納されていてもよい。
図11は、作業指示フィードバック履歴テーブル1100の構成例を示す。作業指示フィードバック履歴テーブル1100は、作業指示文407に対して、それを見て作業を行った作業者が指示内容に対して登録したフィードバックを各行(例えば、行1101a、行1101b)に格納するテーブルである。ワークフローID1102およびステップ番号1103は、これまでの説明と同様に、ワークフローのステップを示す一意識別子およびステップ番号である。フィードバック種別1104は、フィードバックの種類を表す。例えば、「GUIアクセス」は、GUIへのアクセスを改善することが望ましいとするフィードバックであり、「データアクセス」は、手作業によるファイル操作の改善が望ましいことを示すフィードバックである。フィードバック内容1105は、自然文で記述されたフィードバック内容である。賛同数1106は、フィードバックを登録した作業者以外の作業者が、フィードバック内容に賛同した回数である。
図12に、フィードバックを記録するための画面例を示す。この画面1200は、作業者が、ワークフローを実行する際に参照する画面である。図には、作業指示文が表示されている。作業者は、この指示内容(作業指示1201)にしたがって作業を行う。作業者は、作業中に指示内容が煩雑と感じた箇所をマウス等で選択し(図中1202の網掛け部分)、メニューから「フィードバックの記録」を選択する。すると、フィードバック記録ダイアログ1203が開き、作業者は、フィードバック内容を入力する。フィードバック種別選択1204は、改善したいフィードバックの種類、例えば、データアクセスのAPI化なら「データアクセス」を選択する。選択された値は、フィードバック種別1104に格納される。また、作業者は、フィードバック内容入力フォーム1205へメモを入力する。入力内容は、フィードバック内容1105に格納される。図中の網掛け部分は、別の作業者が参照する画面にも表示される。つまり、作業者間でフィードバックが共有される。作業者が、別の作業者が登録したフィードバックに賛同する場合、賛同ボタン1206をクリックする。これにより、作業指示フィードバック履歴テーブル1100の該当フィードバックにおける賛同数1106がインクリメントされる。
図13は、ワークフロー実行記録テーブル1300の構成例を示す。ワークフロー実行記録テーブル1300は、作業者が、指示された作業を行ったことを示す記録を格納するテーブルである。ワークフロー実行記録テーブル1300の各行(例えば、行1301a、行1301b)は、作業のワークフローで定義された各ステップについての記録である。作業ID1302は、作業リクエストテーブル300の作業IDに対応し、ワークフローID1303~作業タイプ1305は、ワークフロー定義テーブル400のワークフローID402~作業タイプ404に対応する。作業者スキル名1306および作業者スキルレベル1307は、当該作業を割り当てられ、実行した作業者が保有していたスキルおよびスキルレベルを格納する。格納される値の意味は、ワークフロー定義テーブル400の要求スキル名405および要求スキルレベル406と同様である。開始時刻1308および終了時刻1309は、当該行のステップを開始、終了した時刻を表す。発生エラー数1310は、当該行のステップを実行中に発生したエラーの数を表す。ログファイル名1311は、当該行のステップを実行中に作業対象で出力されたログファイルや、作業時に操作したGUIのアクセスログなどのログファイルの名称が格納される。ログファイル名1311は、一つのステップにつき複数の値が格納されてもよい。
図14は、スクリーンショットテーブル1400の構成例を示す。スクリーンショットテーブル1400は、作業者が、作業指示にしたがって取得したGUI等のスクリーンショットを格納するテーブルである。スクリーンショットテーブル1400の各行(例えば、行1401a)は、それぞれスクリーンショットの画像が格納される。作業ID1402~ステップ番号1404は、ワークフロー実行記録テーブル1300と同様であるため説明を省略する。GUI名1405は、スクリーンショットをとったGUIの画面名を表す。画像データ1406は、スクリーンショットのデータである。
図15は、ログファイルテーブル1500の構成例を示す。ログファイルテーブル1500は、ログファイルの出力内容を各行(例えば、行1501a)に格納するテーブルである。ログファイル名1502は、ログのファイル名を表し、ワークフロー実行記録テーブル1300のログファイル名1311に対応する。ログデータ1503は、ログファイルの出力内容である。
図16は、工数見積もりルールテーブル1600の構成例を示す。工数見積もりルールテーブル1600は、工数を見積もるための様々なルールを格納するテーブルである。工数見積もりルールテーブル1600の各行(例えば、行1601a、行1601b、行1601c、行1601d)には、それぞれ一つのルール(工数推定ルール)が格納される。ルールID1602は、各ルールに対して付与された一意識別子である。工数種別1603は、当該行のルールが推定する工数の種別である。例えば、保守工数を推定するルールであれば「保守」、開発工数を推定するルールであれば「開発」が格納される。工数見積もりルール1604には、工数見積もりルールの名称や、見積もり計算のプログラムが格納される。重み1605は、それぞれのルールが推定した工数を合算する際に、各ルールが算出した推定工数に掛け合わせる重みである。
図17は、工数見積もり結果テーブル1700の構成例を示す。工数見積もり結果テーブル1700は、工数の見積もり結果と、実際にかかった工数とを格納するテーブルである。工数見積もり結果テーブル1700の各行(例えば、行1701a、行1701b)には、ワークフローのステップに対して、各ルールを適用して見積もった工数が格納される。ワークフローID1702およびステップ番号1703は、これまでの説明と同様、ワークフローのステップを表す。ルールID1704は、ルールを表す一意識別子であり、工数見積もりルールテーブル1600のルールID1602に対応する。推定工数1705は、当該行の工数見積もりルールを当該行のワークフローのステップに適用して得た推定工数である。工数種別1706は、工数見積もりルールテーブル1600の工数種別1603と同様である。合計推定工数1707は、推定工数1705を、ワークフローID1702、ステップ番号1703および工数種別1706でグルーピングして集計した値を格納する。合計実工数1708は、当該ステップの作成にかかった実工数を格納する。元となる実工数は、外部の開発ツールから取得する。
以下、実施形態における処理の流れの詳細を説明する。
図18は、本実施形態において作業リクエストの受付から、作業を実行するまでの流れである。
S100で、作業割り当てプログラム201は、業務担当者が入力した作業に関する情報を受領し、作業リクエストテーブル300、作業対象テーブル500に新規行を追加する。業務担当者は、ワークフロー定義テーブル400に格納されたワークフローの中から実行したいワークフローを選択する(希望のワークフローがなければ、新規作成してもよい)。作業割り当てプログラム201は、作業リクエストテーブル300に新規行を作成し、ワークフローID307の値は、選択されたワークフローのIDを保存する。対象システム304および緊急度306には、業務担当者が入力した値を保存する。次いで、業務担当者は、ワークフローの各ステップにおける作業対象を選択する。業務担当者は、システム構成テーブル600を参照して、作業対象システムの構成要素603の中から作業対象を選択する。作業割り当てプログラム201は、ワークフローのステップごとに選択された作業対象を、作業対象テーブル500へ格納する。
S101で、作業割り当てプログラム201は、作業リクエストに対して作業者を割り当てる。作業割り当てプログラム201は、作業リクエストにワークフローID307によって関連づけられたワークフローの要求スキル名405および要求スキルレベル406を取得する。次に、作業割り当てプログラム201は、作業員テーブル900を参照し、当該スキルを持ち、かつ、スキルレベルが要求値以上である作業者を検索する。作業割り当てプログラム201は、ワークフロー実行記録テーブル1300に、当該作業用の行を追加する。このとき、作業ID1302~作業タイプ1305には、作業リクエストテーブル300およびワークフロー定義テーブル400の当該行の値をコピーする。また、作業者スキル名1306および作業者スキルレベル1307には、さきほど検索した作業者の作業員テーブル900の該当行の値をコピーする。
S102で、ワークフロー実行プログラム202は、作業者と協調して作業を実行し、作業の記録を保存する。ワークフロー実行プログラム202は、作業リクエストテーブル300のワークフローID307で指定されたワークフローをワークフロー定義テーブル400から取得し、各ステップを順に実行する。作業タイプ404が「自動」であれば、自動スクリプトを実行し、作業タイプ404が「手動」であれば、作業指示文407を作業者へ提示する。作業者は、指示文にしたがって作業を行う。作業中にエラーが発生した場合、ワークフロー実行プログラム202は、発生エラー数1310へエラー回数を記録する。スクリーンショットの取得を指示されている場合、ワークフロー実行プログラム202は、作業者が取得したスクリーンショットを受領し、スクリーンショットテーブル1400に新規行を作成してスクリーンショットを保存する。また、ワークフローにチェックリストが付随する場合、ワークフロー実行プログラム202は、作業者が行ったチェックリストの確認結果を受領し、チェックリストテーブル700のチェック704に格納する。最後に、ワークフロー実行プログラム202は、作業中に出力されたログの内容をログファイルテーブル1500のログデータ1503へ格納する。以上により、ワークフローを実行による様々な記録がテーブルに保存され、作業の自動化にかかる工数推定に必要なデータが準備できる。
図19は、工数見積もりプログラム200およびボトルネックステップ提示プログラム203が、自動化する作業の選定に役立つ情報を提供する処理の流れを示す。
S200で、工数見積もりプログラム200は、作業リクエストおよび作業実行の結果記録された諸情報から、手作業によるステップの自動化にかかる工数を見積もる。工数見積もりプログラム200は、工数見積もりルールテーブル1600から、工数見積もりルール1604を読み込む。工数見積もりプログラム200は、ワークフロー定義テーブル400から、手作業で行われているワークフローのステップを読み込み、先に読み込んだ工数見積もりルールを適用し、各ステップの自動化にかかる工数を見積もる。その結果である工数の見積もり値は、工数見積もり結果テーブル1700へ格納される。各ルールの処理の流れは、図20~図23を用いて後述する。
S201で、ボトルネック提示プログラム203は、自動化を阻害しているステップの統計情報を提示する。本処理の詳細は、図25を用いて詳述する。
S202で、ボトルネックステップ提示プログラム203は、実際に自動化にかかった工数をフィードバックとして受領し、S200で見積もった工数との差に基づいて見積もりに関わるパラメタを最適化し、工数見積もりの精度を改善する。本処理の詳細は、図27を用いて詳述する。
図20は、工数見積もりルールテーブル1600に格納された、保守工数ルールによる保守工数見積もり処理の流れを示す。
S301で、工数見積もりプログラム200は、工数を見積もる対象のワークフローのステップを受領する。ステップは、ワークフローIDとステップ番号によって指定される。
S302で、工数見積もりプログラム200は、ワークフローIDとステップ番号をキーとして作業指示変更履歴テーブル1000を参照し、当該ステップに対する全ての変更履歴を取得する。
S303で、工数見積もりプログラム200は、ワークフローIDとステップ番号をキーとしてワークフロー実行記録テーブル1300を参照し、当該ステップの実行記録を全て取得する。
S304は、工数見積もりプログラム200は、当該ステップの「変更頻度」を計算する。変更頻度は、例えば、S302で取得した当該ステップの変更回数を、当該ステップが作成されてからの経過時間で除算した値である。変更頻度の別の計算方法として、当該ステップが作成されてからの経過時間ではなく、直近の一定期間(例えば直近の1ヵ月)における変更回数としてもよい。また、変更頻度の別の計算方法として、同ステップの実行回数あたりの変更回数としてもよい。例えば、直近1ヵ月の当該ステップの変更回数が1回、当該ステップの実行回数が100回とした場合、変更頻度をその除算値、すなわち、1÷100=0.01としてもよい。
S304において、工数見積もりプログラム200は、変更頻度を計算する対象のステップを限定してもよい。例えば、当該ステップが作成されてからの経過時間が短く、保守工数を見積もることに適していない場合、当該ステップを保守工数見積もりの対象外としてもよい。あるいは、当該ステップの作成直後1ヵ月の変更頻度と、直近1ヵ月の変更頻度をそれぞれ計算し、作成直後の変更頻度が高く、かつ、作成直後の変更頻度と直近1ヵ月の変更頻度との差が小さい場合、つまり、ステップ内容の変更が高い頻度で続いている場合、当該ステップを保守工数見積もりの対象外としてもよい(この場合、保守工数が高すぎると思われるため、全体工数見積もりの対象外としてもよい)。
最後に、S305において、工数見積もりプログラム200は、S304で求めた変更頻度に、工数見積もりルールテーブル1600の重み1605を乗算して保守工数を計算し、その値を工数見積もり結果テーブル1700の、当該ステップに対する保守工数ルールによる保守工数の見積もり値として推定工数1705へ格納する。
図21は、工数見積もりルールテーブル1600に格納された、正常処理工数見積もりルールによる開発工数見積もり処理の流れを示す。
S401で、工数見積もりプログラム200は、工数を見積もる対象のワークフローのステップを受領する。ステップは、ワークフローIDとステップ番号によって指定される。
S402で、工数見積もりプログラム200は、ワークフローIDとステップ番号をキーとしてワークフロー実行記録テーブル1300を参照し、当該ステップに対する全ての変更履歴を取得する。
S403で、工数見積もりプログラム200は、同ステップの実行時間の「安定度」を計算する。安定度とは、ここでは、同ステップの実行時間のばらつきの大きさとする。実行時間のばらつきが少ないということは、トラブルが少なく開発しやすい作業であることを意味する。実行時間のばらつきの計算方法は、例えば、実行時間の標準偏差である。
工数見積もりプログラム200が、安定度を計算する際、エラーが発生したときの記録を除外してもよい。すなわち、ワークフロー実行記録テーブル1300の発生エラー数1310が0でない行を除外して、実行時間の安定度を計算してもよい。これにより、エラーが発生したことで対応に多大な時間がかかったときの記録を除外でき、純粋に当該ステップの実行時間の安定度を計算できる。
工数見積もりプログラム200が、安定度を計算する際、作業者のスキルレベルを考慮してもよい。作業者のスキルレベルはワークフロー実行記録テーブル1300の作業者スキルレベル1307に格納されている。例えば、スキルレベルの値がある閾値よりも低い行を除外し、初心者レベルの作業者による記録を除外して、安定度を計算してもよい。
また、工数見積もりプログラム200は、作業者のスキルレベルを考慮して、先に示した方法以外の、別の考え方に基づく安定度を計算してもよい。例えば、スキルレベルと実行時間との相関係数を計算し、その絶対値を安定度としてもよい。ここで、相関係数の絶対値が小さいということは、作業時間がスキルレベルに依存しない、つまり、誰が作業を行っても実行時間に差が出ない安定したステップ(すなわち、ばらつきが小さいステップ)だと考えることができる。
S404で、工数見積もりプログラム200は、ワークフローIDとステップ番号をキーとしてワークフロー定義テーブル400を参照し、ステップの定義情報を取得する。
S405で、工数見積もりプログラム200は、いくつかの観点から開発工数を参照する。工数見積もりプログラム200は、作業指示文407を取得し、作業指示文の文字列の長さに基づいて工数を算出する。同プログラムは内部に文字列の長さに対する工数の換算表を持ち、同表に基づいて工数を算出する。あるいは、工数見積もりプログラム200は、文字列の長さではなく作業指示文の項目数から工数を算出してもよい。あるいは、工数見積もりプログラム200は、既に自動化済みのステップであって開発工数が確定している他のステップを、作業指示文の文字列の類似性から特定し、確定された開発工数を、当該ステップの開発工数としてもよい。例えば、他の作業手順書における作業指示文の記述内容との類似性に基づいて、既に確定されている類似する記述内容のステップの開発工数を求め、これを算出する開発工数としてもよい。ただし、これは流用可能なプログラムが既にあることを意味するため、開発工数に更に0.7や0.5といった係数を乗算して、当該ステップの開発工数としてもよい。
また、工数見積もりプログラム200は、チェックリストID408の値をキーにチェックリストテーブル700を参照し、当該ステップに対応するチェックリストの項目数に基づいて工数を算出し、既に計算した工数と合算する。
S406で、工数見積もりプログラム200は、S405で計算した工数に、S403で計算した安定度を乗算し、新たな工数値とする。
S407で、工数見積もりプログラム200は、S406で求めた工数に、工数見積もりルールテーブル1600の重み1605を乗算して正常処理の開発工数を計算し、その値を工数見積もり結果テーブル1700の、当該ステップに対する正常処理工数ルールによる開発工数の見積もり値として推定工数1705へ格納する。
図22は、工数見積もりルールテーブル1600に格納された、エラー処理工数ルールによる開発工数見積もり処理の流れを示す。
S501で、工数見積もりプログラム200は、工数を見積もる対象のワークフローのステップを受領する。ステップは、ワークフローIDとステップ番号によって指定される。
S502で、工数見積もりプログラム200は、ワークフローIDとステップ番号をキーとしてワークフロー実行記録テーブル1300を参照し、当該ステップに対する全ての実行履歴を取得する。
S503で、工数見積もりプログラム200は、前ステップで取得した当該ステップの実行履歴から、エラー率を計算する。すなわち、発生エラー数1310の合計値を、行数で除算し、当該ステップの実行あたりのエラー数を計算する。工数見積もりプログラム200は、エラー発生率に基づいてエラー処理の開発にかかる工数を算出する。同プログラムはエラー率に対する工数の換算表を持ち、同表に基づいて工数を算出する。
S504で、工数見積もりプログラム200は、当該ステップのワークフローIDとステップ番号をキーとしてワークフロー定義テーブル400を参照し、当該ステップの要求スキルレベル406を取得する。
S505で、工数見積もりプログラム200は、S503で求めた工数にS504で取得した要求スキルレベル(スキル要件)を乗算する。これは、高いスキルレベルが求められる作業は、エラー処理の難易度が高く、より複雑な対応を求められると考えられるためである。つまり、スキルレベルが高い分、エラー処理の開発にかかる工数が大きくなると推定されるためである。このとき、スキルレベルの値をそのまま乗算せず、要求スキルの内容に応じて、スキルレベルの値を増減してもよい。例えば、同じスキルレベルであっても、より難易度が高いと考えられる作業、例えば、データベースを扱う作業は値を増やすといった加工をしてもよい。
S506で、工数見積もりプログラム200は、S505で求めた工数に、工数見積もりルールテーブル1600の重み1605を乗算してエラー処理の開発工数を計算し、その値を工数見積もり結果テーブル1700の、当該ステップに対するエラー処理工数ルールによる開発工数の見積もり値として推定工数1705へ格納する。
図23は、工数見積もりルールテーブル1600に格納された、テスト工数ルールによる開発工数見積もり処理の流れを示す。
S601で、工数見積もりプログラム200は、工数を見積もる対象のワークフローのステップを受領する。ステップは、ワークフローIDとステップ番号によって指定される。
S602で、工数見積もりプログラム200は、ワークフローIDをキーとして作業リクエストテーブル300を参照し、当該ワークフローに関連する全ての作業リクエストを取得する。
S603で、工数見積もりプログラム200は、前ステップで取得した作業リクエストの作業対象に関する対象システム304を参照し、その値の種類数(ユニーク数)を計算する。これは、当該ワークフローが対象とするシステムのバリエーション数を表す。
S604で、工数見積もりプログラム200は、ワークフローIDおよびステップ番号をキーとして作業対象テーブル500を参照し、当該ステップの全ての作業対象505を取得する。次に、工数見積もりプログラム200は、これらの作業対象と、作業リクエストの対象システム304をキーとして、システム構成テーブル600を参照し作業対象のプラットフォーム604を取得する。そして、工数見積もりプログラム200は、プラットフォーム604の値の種類数(ユニーク数)を計算する。これは、当該ワークフローの当該ステップが対象としたプラットフォームのバリエーション数を表す。
S605で、工数見積もりプログラム200は、システム数とプラットフォーム数から、テストにかかる工数を算出する。例えば、システム数とプラットフォーム数を乗算した値をテストにかかる工数とする。これは、システム数、プラットフォーム数の組み合わせに比例してテスト工数がかかるという考え方に基づく。あるいは、より単純に、システム数とプラットフォーム数を加算した値としてもよいし、それぞれの数に係数を乗じた値を合計してもよい。
S606で、工数見積もりプログラム200は、S605で求めた工数に、工数見積もりルールテーブル1600の重み1605を乗算してテストにかかる工数を計算し、その値を工数見積もり結果テーブル1700の、当該ステップに対するテスト工数ルールによる開発工数の見積もり値として推定工数1705へ格納する。
ここで、図24を参照しながら、工数見積もり結果の表示について説明する。図24に、工数見積もり結果を表示する画面例を示す。この画面(工数見積もり2400)は、ディスプレイ105上に表示される。画面上部は、ステップごとの工数一覧表2401である。表には、工数見積もりプログラム200が計算した、手作業で行われたステップ別の推定工数(合計)が表示される。また、ステップごとの総実行時間も同様に表示される。総実行時間は、ワークフロー実行記録テーブル1300の、当該ステップに該当する行の開始時刻1308と終了時刻1309から計算できる。この画面を見た開発者は、総実行時間と、総推定工数を参考に、自動化するステップあるいはワークフローを選定する。
この表で、一つのステップを選択すると、当該ステップの推定工数内訳表2402が画面下部に表示される。推定工数内訳表2402には、工数見積もり結果テーブル1700に格納された、当該ステップの推定工数1705が表示される。
次に、ボトルネックステップの提示について説明する。図25は、ボトルネックステップ提示プログラム203が、ボトルネックステップを特定して提示する処理の流れを示す。
S701で、ボトルネックステップ提示プログラム203は、スクリーンショットテーブル1400を読み込む。
S702で、ボトルネックステップ提示プログラム203は、GUI名1405が同一である行をグルーピングする。GUI名1405に格納された値が、表記ゆれ等のあいまいさがある場合、あいまいさを許容する文字列の類似度に基づいてグループを作成してもよい。また、グルーピングの別の方法として、画像データ1406を使用してもよい。例えば、画像認識技術を用いて画像データ1406を処理し、類似する画像データをまとめてグループを作成してもよい。また、別のグルーピング方法として、ログファイルを使用してもよい。例えば、作業ID1402、ワークフローID1403、ステップ番号1404をキーとしてログファイルテーブル1500を参照し、当該ログファイルのログデータ1503を取得し、ログファイルの出力内容(文字列)の類似度に基づいてグループを作成してもよい。
S703で、ボトルネックステップ提示プログラム203は、前ステップで作成したグループごとに行数をカウントする。このようにして、スクリーンショット数に基づくボトルネックステップが特定される。
S704からS705で、ボトルネックステップ提示プログラム203は、作業者からの改善フィードバックを集計する。まず、S704で、ボトルネックステップ提示プログラム203は、作業指示フィードバック履歴テーブル1100の全行を取得する。このとき、全行ではなく直近の1ヵ月に限定したり、既に自動化されたステップの行を除外してもよい。
次に、S705で、ボトルネックステップ提示プログラム203は、これらの行を賛同数1106順に降順ソートする。賛同数1106の値の大きさは、作業者による改善要求の大きさを表すため、上位の行は、それだけ作業を阻害するボトルネックステップであることを示す。このようにして、フィードバックに基づくボトルネックステップが特定される。
S706で、ボトルネックステップ提示プログラム203は、ディスプレイ105上にS703およびS705で特定したボトルネックステップを画面上に表示する。
ここで、図26を参照しながら、ボトルネックステップの表示について説明する。図26に、ボトルネックステップ提示プログラム203が表示する画面例を示す。画面には、ボトルネックステップ一覧2600が表示される。上部には、S703で集計したスクリーンショット数に基づくボトルネックステップ一覧2601が表示される。関連ワークフロー数は、当該ボトルネックステップが関連するワークフローの種類の数で、S706でグルーピングしたスクリーンショットテーブル1400の行においてワークフローID1403のユニーク数として計算できる。回数は、グループに含まれる行数として計算できる。この一覧表を見た開発者は、回数が多いステップを順に自動化していけばよいことが分かる。
ボトルネックステップ一覧2600の下部には、S705で集計したフィードバックに基づくボトルネックステップ2602が表示される。表のフィードバック内容には、フィードバック内容1105を表示し、関連ワークフロー数には、作業指示フィードバック履歴1100の当該行のワークフローID1102のユニーク数を表示し、賛同数には賛同数1106を表示する。表の回数には、ワークフローID1102およびステップ番号1103をキーとしてワークフロー実行記録テーブル1300を参照し、該当する行数(当該ステップの実行回数にあたる)を表示する。この一覧表を見た開発者は、賛同数もしくは回数が多いステップを順に自動化していけばよいことが分かる。
図27は、工数見積もりプログラム200が、推定工数と実際にかかった実工数との差を基に、工数見積もりルールテーブル1600の重み1605の値を調整し、工数の見積もり精度を改善する処理の流れを示す。
S801で、工数見積もりプログラム200は、対象のワークフローのステップを受領する。ステップは、ワークフローIDとステップ番号によって指定される。対象となるステップは、開発者によって手作業から自動処理への開発が完了したステップである。
S802で、工数見積もりプログラム200は、外部の開発ツールと連携し、対象ステップの開発にかかった工数を取得する。取得した工数は、工数見積もり結果テーブル1708の合計実工数1708に格納される。開発工数は、自動処理のリリースまでにかかった工数、保守工数はリリース後にかかった工数として算出できる。開発工数は、更なる内訳、すなわち、正常処理の開発にかかった工数、エラー処理の開発にかかった工数、テスト工数などの内訳が分かる場合は、内訳の値を格納する。内訳が分からない場合は、合計値を格納する。
S803で、工数見積もりプログラム200は、工数見積もり結果テーブル1700の合計推定工数1707(内訳が分かる場合は、推定工数1705)と、合計実工数1708との差に基づいて、工数見積もりルールテーブル1600における各見積もりルールの重み1605を調整する。重みの計算方法は、例えば、線形回帰式による方法でよい。すなわち、目的変数を、工数見積もり結果テーブル1700に蓄積された各ステップの合計実工数1708とし、説明変数を各ルールの推定工数1705として線形回帰式を作成し、推定工数にかかる係数を重みとする計算方法でよい。別の方法として、線形回帰式ではなく、他の回帰アルゴリズムを使用してもよい。例えば、Ramdom Forest回帰や、Support Vector回帰などの、より高精度な推定が可能なアルゴリズムを使用してもよい。この場合、目的変数や説明変数は線形回帰を使用する場合と同じであるが、線形回帰のように各ルールの重みはないため、重みの代わりに生成された回帰モデルをバイナリとして保存する。
以上の説明より、作業に必要なスキルなどの作業依頼情報、作業手順の内容およびその変更履歴、作業実行履歴(作業時間、作業者のスキル、作業によって出力されたログ)を入力として、工数推定ルールに基づいて、作業の自動化にかかる開発工数、保守工数の推定値を算出することができる管理計算機100が提供される。また、この管理計算機100は、作業結果の画面をキャプチャしたスクリーンショットや、作業者からのフィードバックに基づき、自動化を阻害しているボトルネックステップを特定し、提示することができる。
本実施形態によれば、手動で行われている作業を自動化するための工数見積もりを容易に算出でき、また、自動化を阻害しているステップ(ボトルネックステップであって、例えば、GUI以外の操作方法がなく自動化が難しいステップ)を容易に特定できる。そして、効率的に手動作業の自動化を進めることができる。すなわち、本実施形態によれば、工数に対して時短効果が高い手作業や、ボトルネックステップが簡単に分かるため、自動化を効率的に進めることができ、一例として、経済的な観点で貢献することができる。
ボトルネックステップの解消には、例えば、ITシステムを担当する業務部門、開発部門の協力が欠かせない。どこがボトルネックステップか分かれば、運用部門は、業務部門、開発部門を説得する際の材料として、ボトルネックステップをAPI化することによる作業効率の向上を定量的に示すことができ、全体最適化の観点から他部門の協力を得やすくなる。本実施形態によれば、ボトルネックステップが簡単に分かるため、このような観点からも自動化を効率的に進めることができる。
以上、本発明の実施形態について詳述したが、本発明は、前記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。例えば、前記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
100…管理計算機、
101…CPU(プロセッサ)、
102…メモリ、
103…HDD(記憶部)、
104…NWインタフェース、
105…ディスプレイ、
110…LAN、
120…ITシステム、
130…サーバ、
140…クラウド、
150…クラウドサービス、
200…工数見積もりプログラム、
201…作業割り当てプログラム、
202…ワークフロー実行プログラム、
203…ボトルネックステップ提示プログラム、
300…作業リクエストテーブル、
400…ワークフロー定義テーブル、
500…作業対象テーブル、
600…システム構成テーブル、
700…チェックリストテーブル、
800…自動スクリプトテーブル、
900…作業員テーブル、
1000…作業指示変更履歴テーブル、
1100…作業指示フィードバック履歴テーブル、
1200…ワークフロー実行画面、
1201…作業指示、
1202…作業指示へのフィードバック箇所、
1203…フィードバック記録ダイアログ、
1204…フィードバック種別選択、
1205…フィードバック内容入力フォーム、
1206…賛同ボタン、
1300…ワークフロー実行記録テーブル、
1400…スクリーンショットテーブル、
1500…ログファイルテーブル、
1600…工数見積もりルールテーブル、
1700…工数見積もり結果テーブル、
2400…工数見積もり画面、
2401…ステップごとの工数一覧表、
2402…推定工数内訳表、
2600…ボトルネックステップ一覧画面、
2601…ボトルネックステップ一覧、
2602…フィードバックに基づくボトルネックステップ。
101…CPU(プロセッサ)、
102…メモリ、
103…HDD(記憶部)、
104…NWインタフェース、
105…ディスプレイ、
110…LAN、
120…ITシステム、
130…サーバ、
140…クラウド、
150…クラウドサービス、
200…工数見積もりプログラム、
201…作業割り当てプログラム、
202…ワークフロー実行プログラム、
203…ボトルネックステップ提示プログラム、
300…作業リクエストテーブル、
400…ワークフロー定義テーブル、
500…作業対象テーブル、
600…システム構成テーブル、
700…チェックリストテーブル、
800…自動スクリプトテーブル、
900…作業員テーブル、
1000…作業指示変更履歴テーブル、
1100…作業指示フィードバック履歴テーブル、
1200…ワークフロー実行画面、
1201…作業指示、
1202…作業指示へのフィードバック箇所、
1203…フィードバック記録ダイアログ、
1204…フィードバック種別選択、
1205…フィードバック内容入力フォーム、
1206…賛同ボタン、
1300…ワークフロー実行記録テーブル、
1400…スクリーンショットテーブル、
1500…ログファイルテーブル、
1600…工数見積もりルールテーブル、
1700…工数見積もり結果テーブル、
2400…工数見積もり画面、
2401…ステップごとの工数一覧表、
2402…推定工数内訳表、
2600…ボトルネックステップ一覧画面、
2601…ボトルネックステップ一覧、
2602…フィードバックに基づくボトルネックステップ。
Claims (15)
- プロセッサと、記憶部と、を備え、
前記記憶部は、
作業の手順に関する作業手順書の自動化にかかる工数を算出するルールである工数推定ルールを記憶し、
前記プロセッサは、
前記作業手順書と前記作業手順書に従って実行された記録である作業実行記録を入力として、前記記憶部に記憶された前記工数推定ルールを用いて、前記作業手順書の自動化にかかる工数を算出する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、前記作業手順書に含まれる作業指示内容の文字列の長さ、および/または、項目数に基づいて、前記作業手順書の自動化にかかる工数を算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記作業手順書は、作業が正常に完了したことをチェックするチェックリストを含み、
前記記憶部は、
前記プロセッサが、前記チェックリストのチェック項目の数に基づいて前記作業手順書の自動化にかかる開発工数を算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、前記作業手順書の自動化にかかる開発工数を、前記作業手順書と記述内容の類似度が高く、かつ、開発工数が確定している他の作業手順書の開発工数に基づいて算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、前記作業実行記録に基づいて、前記作業手順書の作業時間のばらつきに関する安定度を計算し、算出した開発工数と、前記安定度と、を乗算することで、前記作業手順書の自動化にかかる開発工数を算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、前記作業手順書の変更頻度に基づいて、自動化された後に変更された前記作業手順書の保守にかかる工数を算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項6に記載の自動化支援装置であって、
前記変更頻度は、前記作業手順書が変更されてからの経過時間あたりの変更回数、あるいは、前記作業手順書の実行回数あたりの変更回数に基づいて、決定される、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、入力された作業の難易度を表すスキル要件を更に用いて、前記作業手順書の自動化にかかる工数を算出することに用いる前記工数推定ルールを記憶する、
ことを特徴とする自動化支援装置。 - 請求項8に記載の自動化支援装置であって、
前記作業実行記録は、作業中のエラー発生回数の記録を含み、
前記工数推定ルールは、前記プロセッサが、前記エラー発生回数からエラー発生率を算出し、前記エラー発生率を更に用いてエラー処理に関する開発工数を算出することを定めたルールである、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記プロセッサが、入力された作業する対象である作業対象を更に用いて、前記作業手順書の自動化にかかる工数を算出することに用いる前記工数推定ルールを記憶し、
前記工数推定ルールは、前記プロセッサが、前記作業対象の種類数に基づいて前記作業手順書の自動化にかかる工数を算出することを定めたルールである、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
前記記憶部は、
前記工数推定ルールに対して設定された重みを記憶し、
前記プロセッサは、
前記作業手順書の自動化にかかった実工数と、前記工数推定ルールに基づいて算出された工数に前記重みを乗算した工数と、の差が小さくなるように、前記工数推定ルールに設定された重みの値を調整する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
表示装置を備え、
前記プロセッサは、
前記作業実行記録における前記作業手順書と関連づけられた作業の正常完了を示す画面のスクリーンショットの記録を前記記憶部に蓄積し、
同種の前記スクリーンショットのカウント数が多い作業を、自動化を妨げる作業であるとして前記表示装置に提示する、
ことを特徴とする自動化支援装置。 - 請求項1に記載の自動化支援装置であって、
表示装置を備え、
前記プロセッサは、
前記作業手順書において、作業の自動化を妨げる記載箇所を作業者が指定したフィードバックを前記記憶部に蓄積し、
フィードバック数が多い箇所に関する作業を、自動化を妨げる作業であるとして前記表示装置に提示する、
ことを特徴とする自動化支援装置。 - プロセッサと、記憶部と、を用いて行う自動化支援方法であって、
前記プロセッサが、
作業の手順に関する作業手順書と前記作業手順書に従って実行された記録である作業実行記録を取得し、
前記記憶部に記憶された前記作業手順書の自動化にかかる工数を算出するルールである工数推定ルールを参照し、前記工数推定ルールを用いて、前記作業手順書の自動化にかかる工数を算出する、
ことを特徴とする自動化支援方法。 - 請求項14に記載の自動化支援方法をプロセッサに実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022110080A JP2024008316A (ja) | 2022-07-07 | 2022-07-07 | 自動化支援装置、および、自動化支援方法 |
US18/172,724 US20240013111A1 (en) | 2022-07-07 | 2023-02-22 | Automation support device and automation support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022110080A JP2024008316A (ja) | 2022-07-07 | 2022-07-07 | 自動化支援装置、および、自動化支援方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024008316A true JP2024008316A (ja) | 2024-01-19 |
Family
ID=89431434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022110080A Pending JP2024008316A (ja) | 2022-07-07 | 2022-07-07 | 自動化支援装置、および、自動化支援方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240013111A1 (ja) |
JP (1) | JP2024008316A (ja) |
-
2022
- 2022-07-07 JP JP2022110080A patent/JP2024008316A/ja active Pending
-
2023
- 2023-02-22 US US18/172,724 patent/US20240013111A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240013111A1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3552092B1 (en) | Differencing of executable dataflow graphs | |
US20160292621A1 (en) | Automatically identifying a project's staffing-availability risk | |
US20080010543A1 (en) | Test planning assistance apparatus, test planning assistance method, and recording medium having test planning assistance program recorded therein | |
US20140229216A1 (en) | System and method for planning a schedule for a worker based on scheduled events and suggested activities | |
US20080103871A1 (en) | Company project management system | |
EP2107514A1 (en) | Process monitoring | |
JP5614843B2 (ja) | ソフトウェア設計・運用統合管理システム | |
US20130159036A1 (en) | Runtime generation of instance contexts via model-based data relationships | |
US11740883B2 (en) | Software automation deployment and performance tracking | |
JP6094593B2 (ja) | 情報システム構築装置、情報システム構築方法および情報システム構築プログラム | |
US20180365608A1 (en) | Quantitive time estimation systems and methods of project management systems | |
US10699225B2 (en) | Production management support apparatus, production management support method, and production management support program | |
JP7341073B2 (ja) | 工場管理装置、工場管理方法、及び工場管理プログラム | |
EP3502872A1 (en) | Pipeline task verification for a data processing platform | |
JP2006318331A (ja) | 作業工数見積および人材割当システム、ならびにその方法 | |
JP6622592B2 (ja) | 生産計画立案支援システムおよび支援方法 | |
WO2014061229A1 (ja) | 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム | |
CN113039527A (zh) | 用于在分析应用环境中进行定制的系统和方法 | |
US20180012162A1 (en) | Human resource development support system | |
US20230045235A1 (en) | Trusted application release architecture and dashboard | |
JP5160773B2 (ja) | 情報処理装置およびその方法 | |
JP2024008316A (ja) | 自動化支援装置、および、自動化支援方法 | |
JP5655326B2 (ja) | ビジネスプロセスの自動化のための装置及び方法 | |
CN108694493B (zh) | 作业委托支援系统及其方法 | |
JP2020102138A (ja) | 生産実績データ分析装置 |