JP7060804B2 - 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム - Google Patents

情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム Download PDF

Info

Publication number
JP7060804B2
JP7060804B2 JP2018116782A JP2018116782A JP7060804B2 JP 7060804 B2 JP7060804 B2 JP 7060804B2 JP 2018116782 A JP2018116782 A JP 2018116782A JP 2018116782 A JP2018116782 A JP 2018116782A JP 7060804 B2 JP7060804 B2 JP 7060804B2
Authority
JP
Japan
Prior art keywords
task
help information
information
software
user
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.)
Active
Application number
JP2018116782A
Other languages
English (en)
Other versions
JP2019219913A (ja
Inventor
マチュー パリジ
達也 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018116782A priority Critical patent/JP7060804B2/ja
Priority to US16/435,938 priority patent/US11099866B2/en
Publication of JP2019219913A publication Critical patent/JP2019219913A/ja
Application granted granted Critical
Publication of JP7060804B2 publication Critical patent/JP7060804B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Description

本発明は情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラムに関する。
ソフトウェアに様々な機能が実装されてソフトウェアが複雑化するに伴い、当該ソフトウェアに不慣れなユーザは、一部の機能の存在を知らないことや一部の機能の適切な使い方を知らないことにより、作業効率を低下させていることがある。そこで、当該ソフトウェアが有する機能を説明するヘルプ情報を、ユーザからのヘルプ要求を待たずにコンピュータが積極的にユーザに対して通知することが考えられる。
例えば、ユーザの習熟度に応じてアプリケーションソフトウェアの操作方法をユーザに案内する操作方法案内装置が提案されている。提案の操作方法案内装置は、アプリケーションソフトウェアに対するユーザ操作を検出して習熟度を判定し、判定した習熟度に対応する案内情報をデータベースから検索して操作画面に表示する。また、例えば、ユーザによる電子書籍の閲覧を監視し、ユーザが所定のページに到達したときに当該電子書籍に関連する関連情報をユーザ端末に表示する配信システムが提案されている。
特開2010-218359号公報 特開2015-158817号公報
プロジェクト管理の一環として、ソフトウェアを使用するユーザに対して積極的にヘルプ情報を通知することが考えられる。しかし、プロジェクト上の一連の作業を行っているユーザに対して頻繁にヘルプ情報を通知しても、ユーザはソフトウェアの機能をその都度学習することを煩わしく感じ、目の前の作業を進めることを優先する可能性がある。そのため、ヘルプ情報がユーザによって無視されてしまい、ヘルプ情報の通知が有効に働かないことがある。そこで、ユーザにヘルプ情報を通知するタイミングが問題となる。
1つの側面では、本発明は、ソフトウェアを使用するユーザに対して適切なタイミングでヘルプ情報を通知することができる情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラムを提供することを目的とする。
1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。記憶部は、複数のタスクそれぞれについて当該タスクの完了の有無を示すステータス情報と当該タスクの作業量を示す作業量情報とを含むタスク管理情報を記憶する。処理部は、ステータス情報に基づいて第1のタスクの完了を検出し、第1のタスクにおけるソフトウェアの使用状況に基づいて選択されたソフトウェアに関連する第1のヘルプ情報の通知を保留し、ステータス情報に基づいて第1のタスクの完了の後に第2のタスクの完了を検出し、作業量情報に基づいて第1のタスクおよび第2のタスクを含む複数の完了済みタスクの作業量の合計を示す指標値を算出し、指標値と閾値とを比較し、指標値が閾値を超える場合、第1のヘルプ情報と第2のタスクにおけるソフトウェアの使用状況に基づいて選択されたソフトウェアに関連する第2のヘルプ情報とを通知することを許容し、指標値が閾値以下である場合、第1のヘルプ情報および第2のヘルプ情報の通知を保留する。
1つの態様では、コンピュータが実行するプロジェクト管理方法が提供される。1つの態様では、コンピュータに実行させるプロジェクト管理プログラムが提供される。
1つの側面では、適切なタイミングでヘルプ情報が通知される。
第1の実施の形態の情報処理装置の例を説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 プロジェクト管理サーバのハードウェア例を示すブロック図である。 チケットのデータ構造例を示す図である。 ログテーブルのデータ構造例を示す図である。 ヘルプ情報テーブルのデータ構造例を示す図である。 トピックテーブルのデータ構造例を示す図である。 タスクサイズテーブルのデータ構造例を示す図である。 通知バッファのデータ構造例を示す図である。 ヘルプ情報の通知タイミングの例を示す図である。 プロジェクト管理画面の例を示す図である。 プロジェクト管理サーバの機能例を示すブロック図である。 通知制御の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、ユーザによるソフトウェアの使用状況に応じて、当該ユーザに対して当該ソフトウェアの効率的な使用方法に関するヘルプ情報を自動的に提供する。情報処理装置10は、例えば、業務上のプロジェクトを管理するプロジェクト管理装置である。情報処理装置10をコンピュータと言うことがある。また、情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プログラムにはプロジェクト管理プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
記憶部11は、タスク管理情報13を記憶する。タスク管理情報13は、複数のタスクそれぞれについてステータス情報13aと作業量情報13bとを含む。ステータス情報13aは、タスクの完了の有無を示す。作業量情報13bは、タスクの作業量を示す。
タスクは、プロジェクトにおけるユーザのひとまとまりの作業を示し、例えば、ソフトウェア開発における新規機能追加やバグ修正などのプログラミング作業を示す。ステータス情報13aや作業量情報13bを含む1つのタスクに関する情報を、チケットやissueや作業指示書などと言うことがある。タスクの作業量はタスクサイズと言うこともできる。タスクの作業量としては、当該タスクの予定作業時間、当該タスクの実際作業時間、当該タスクの着手日時から期限までの猶予時間などを用いることができる。また、タスクの作業量として、仕様を示す入力ファイルのサイズや、当該タスクによって作成された成果物である出力ファイルのサイズなどを用いることもできる。出力ファイルのサイズとしては、例えば、作成されたプログラムのコード量が挙げられる。タスクの作業量の指標は、タスク管理情報13にどの様な情報が含まれているかに依存する。
処理部12は、タスク管理情報13のステータス情報13aに基づいて、複数のタスクのうちタスク14a(第1のタスク)が完了したことを検出する。すると、処理部12は、タスク14aにおけるソフトウェアの使用状況に基づいて、当該ソフトウェアに関連するヘルプ情報15a(第1のヘルプ情報)を選択する。ヘルプ情報15aは、例えば、予め用意されたヘルプ情報の集合の中から選択される。
このソフトウェアは、タスク14aの中でユーザにより利用されたものであり、クライアント装置で実行されてもよいしサーバ装置で実行されてもよい。ソフトウェアとして、例えば、プログラム作成を支援する開発支援ツール、ライブラリモジュール、API(Application Programming Interface)などが挙げられる。ソフトウェアの使用状況は、当該ソフトウェアを実行したクライアント装置またはサーバ装置によって生成されたログを参照して特定することができる。処理部12は、例えば、クライアント装置またはサーバ装置からログを収集する。記憶部11はログを記憶してもよい。ログは、例えば、呼び出されたAPI、実行日時、入力データ、出力データなどを示す。例えば、ヘルプ情報15aにログのパターンが対応付けられており、収集したログから当該パターンが検出されたときに、処理部12はヘルプ情報15aを選択する。
ヘルプ情報15aは、ソフトウェアの効率的な使用方法を説明したテキストを含む文書である。情報処理装置10は、ユーザからの明示的な要求なしに自動的に適切なヘルプ情報をユーザに提示する。ヘルプ情報15aは、タスク14aにおけるソフトウェアの使用状況に鑑みて、ソフトウェアの効率的な使用方法をユーザに提案するものである。ヘルプ情報15aは、タスク14aにおけるソフトウェアの使用状況に鑑みて、ユーザが知らないと推測されるソフトウェアの機能を示すものであってもよい。例えば、タスク14aにおいてユーザが採用したAPIの使用方法が非効率である場合、ヘルプ情報15aは、同等の出力データを得ることができる効率的なAPIの使用方法を示す。また、例えば、タスク14aにおいてAPIの呼び出し時にエラーが発生した場合、ヘルプ情報15aは、当該エラーを回避することができる1つの方法を示す。
ここで、処理部12は、タスク14aに対応して選択したヘルプ情報15aを即時には通知せず、ヘルプ情報15aの通知を保留する。例えば、処理部12は、ヘルプ情報15aまたはヘルプ情報15aの識別情報をバッファに保存する。
次に、処理部12は、タスク管理情報13のステータス情報13aに基づいて、タスク14aの完了の後に、複数のタスクのうちタスク14b(第2のタスク)が完了したことを検出する。タスク14aとタスク14bは、同じユーザにより実行されたものである。タスク14aとタスク14bの間に、同じユーザにより他のタスクが実行されてもよい。すると、処理部12は、タスク14bにおけるソフトウェアの使用状況に基づいて、当該ソフトウェアに関連するヘルプ情報15b(第2のヘルプ情報)を選択する。ヘルプ情報15bは、タスク14bにおけるソフトウェアの使用状況に鑑みて、ソフトウェアの効率的な使用方法をユーザに提案するものである。
ここで、処理部12は、作業量情報13bに基づいて、タスク14a,14bを含む複数の完了済みタスクの作業量の合計を示す指標値16を算出する。作業量の合計が多いほど、指標値16は大きい値をとる。複数の完了済みタスクは、例えば、最も古い未通知のヘルプ情報が発生した完了済みタスク、および、それより後に同一ユーザによって実行された完了済みタスクの集合である。指標値16は、例えば、複数の完了済みタスクに対する予定作業時間の合計、実際作業時間の合計、着手日時から期限までの猶予時間の合計などである。処理部12は、指標値16と所定の閾値とを比較する。閾値は記憶部11に記憶されていてもよく、ユーザ毎に異なってもよい。
指標値16が閾値を超える場合、処理部12は、ヘルプ情報15a,15bを通知することを許容する。例えば、処理部12は、ヘルプ情報15aとヘルプ情報15bとを合わせてユーザに通知する。一方、処理部12は、指標値16が閾値以下である場合、ヘルプ情報15a,15bの通知を引き続き保留する。ヘルプ情報15a,15bの通知方法として、例えば、ユーザが使用する端末装置の画面に、ヘルプ情報15a,15bを含むポップアップ領域を表示させることが考えられる。また、ヘルプ情報15a,15bの通知方法として、例えば、ユーザの電子メールアドレスを宛先アドレスとして含み、ヘルプ情報15a,15bを本文として含む電子メールを送信することが考えられる。
第1の実施の形態の情報処理装置10によれば、ユーザに対して頻繁にヘルプ情報が通知されることが抑制される。よって、ユーザが目の前の作業を進めることを優先してヘルプ情報を無視してしまう可能性を低減できる。また、完了済みタスクの作業量の合計が一定量に達したタイミングで、保留中のヘルプ情報がまとめてユーザに通知される。よって、ユーザの作業が一区切りついたときにヘルプ情報が通知されるようになり、ソフトウェアの機能を学習するのによいタイミングでヘルプ情報を提供できる。このように、ソフトウェアを使用するユーザに対して適切なタイミングでヘルプ情報を通知することができ、通知したヘルプ情報がユーザによって活用されやすくなる。その結果、ユーザによるソフトウェアの学習を支援することができ、ソフトウェアの使用を効率化できる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、プロジェクト管理サーバ100、アプリケーションサーバ200およびクライアント300,300-1,300-2を有する。上記装置はネットワーク40に接続されている。なお、プロジェクト管理サーバ100は、第1の実施の形態の情報処理装置10に対応する。
プロジェクト管理サーバ100は、プロジェクトの進行を管理するサーバコンピュータである。プロジェクト管理サーバ100は、プロジェクトに属する複数のタスクの情報を保持する。プロジェクト管理サーバ100は、ネットワーク40を介してクライアント300,300-1,300-2からアクセスを受け付け、タスクの情報を更新する。また、プロジェクト管理サーバ100は、ネットワーク40を介してクライアント300,300-1,300-2に最新のタスクの情報を提供する。
プロジェクト管理サーバ100とクライアント300,300-1,300-2の間の通信には、例えば、HTTP(Hypertext Transfer Protocol)が用いられる。プロジェクト管理サーバ100からクライアント300,300-1,300-2へは、例えば、HTML(HyperText Markup Language)などのマークアップ言語を用いて記述された画面情報が提供される。クライアント300,300-1,300-2への情報提供のために、プロジェクト管理サーバ100は、アプリケーションサーバ200におけるソフトウェアの実行履歴を示すログをアプリケーションサーバ200から収集する。プロジェクト管理サーバ100は、クライアント300,300-1,300-2におけるソフトウェアの実行履歴を示すログを収集するようにしてもよい。
アプリケーションサーバ200は、プロジェクトで使用されるソフトウェアを実行するサーバコンピュータである。アプリケーションサーバ200には、複数種類のソフトウェアがインストールされている。例えば、アプリケーションサーバ200は、クライアント300,300-1,300-2に対してAPIを提供する。アプリケーションサーバ200にインストールされるソフトウェアの例として、プログラム作成支援ツールや、ユーザプログラムから呼び出されるライブラリやミドルウェアなどが挙げられる。
アプリケーションサーバ200は、ネットワーク40を介してクライアント300,300-1,300-2から入力データを含むリクエストメッセージを受信し、受信したリクエストメッセージに基づいてソフトウェアを実行する。アプリケーションサーバ200は、ネットワーク40を介してクライアント300,300-1,300-2に、ソフトウェアの実行結果である出力データを含むレスポンスメッセージを送信する。また、アプリケーションサーバ200は、ソフトウェアの実行履歴を示すログを記録し、プロジェクト管理サーバ100に対してログを提供する。
アプリケーションサーバ200にインストールされるソフトウェアは、大規模かつ多機能であることがあり、ユーザが当該ソフトウェアに習熟するには時間を要することがある。よって、ユーザは当該ソフトウェアの全ての機能を知っているとは限らず、当該ソフトウェアを非効率な方法で使用してしまうことがある。そこで、プロジェクト管理サーバ100は、プロジェクト管理の一環として、ユーザによるソフトウェアの機能の学習を支援する。プロジェクト管理サーバ100は、アプリケーションサーバ200から収集したログに基づいて、あるユーザによるソフトウェアの非効率な使用を検出し、ソフトウェアの効率的な使用を促すヘルプ情報を当該ユーザに対して送信する。
クライアント300,300-1,300-2は、プロジェクトに参加するユーザが使用するクライアントコンピュータである。クライアント300,300-1,300-2は、プロジェクトに属するタスクの情報をプロジェクト管理サーバ100に登録する。また、クライアント300,300-1,300-2は、プロジェクト管理サーバ100から最新のタスクの情報を受信してディスプレイに表示させる。このようにして、クライアント300,300-1,300-2はタスクの情報を共有する。また、クライアント300,300-1,300-2は、ソフトウェアの効率的な使用方法を示すヘルプ情報をプロジェクト管理サーバ100から受信してディスプレイに表示させる。
また、クライアント300,300-1,300-2は、タスクを実行するためにアプリケーションサーバ200を利用する。クライアント300,300-1,300-2は、入力データを含むリクエストメッセージをアプリケーションサーバ200に送信し、出力データを含むレスポンスメッセージをアプリケーションサーバ200から受信する。
クライアント300,300-1,300-2は、作成中のユーザプログラムを実行してもよい。また、クライアント300,300-1,300-2は、プログラム作成支援ツールなどのソフトウェアを実行してもよい。その場合、クライアント300,300-1,300-2は、ソフトウェアの実行履歴を示すログを記録し、プロジェクト管理サーバ100に対してログを提供するようにしてもよい。
図3は、プロジェクト管理サーバのハードウェア例を示すブロック図である。
プロジェクト管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。上記ユニットはバスに接続されている。
なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。アプリケーションサーバ200およびクライアント300,300-1,300-2も、プロジェクト管理サーバ100と同様のハードウェアを用いて実装することができる。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、プロジェクト管理サーバ100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、プロジェクト管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、プロジェクト管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)など他の種類の記憶装置を備えてもよく、複数の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、プロジェクト管理サーバ100に接続されたディスプレイ104aに画像を出力する。ディスプレイ104aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを使用できる。
入力信号処理部105は、プロジェクト管理サーバ100に接続された入力デバイス105aから入力信号を受信する。入力デバイス105aとして、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、プロジェクト管理サーバ100に複数の種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体106aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体106aとして、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体106aから読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク40に接続され、ネットワーク40を介してアプリケーションサーバ200やクライアント300,300-1,300-2と通信を行うインタフェースである。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントに接続される無線通信インタフェースでもよい。
次に、プロジェクト管理サーバ100によるプロジェクト管理について説明する。
図4は、チケットのデータ構造例を示す図である。
プロジェクト管理サーバ100は、プロジェクトに属する1つのタスクの情報を1つのチケットとして保持する。チケットをissueや作業指示書などと言うこともある。プロジェクト管理サーバ100は、クライアント300,300-1,300-2からの要求に応じてチケットを作成し更新する。また、プロジェクト管理サーバ100は、クライアント300,300-1,300-2からの要求に応じてチケットを提供する。
チケットの一例であるチケット121は、チケットID、タイトル、担当者、説明文、予定工数、期限、開始日時、終了日時、ステータスおよびコメントの項目を含む。
チケットIDは、チケットを識別する識別子である。タイトルは、タスクを端的に表現した文字列である。担当者は、タスクを実行するユーザであり、ユーザを識別するユーザIDによって特定される。1つのチケットに対して2以上の担当者が割り当てられることもある。説明文は、タスクの具体的内容を説明した文字列である。タスクとして、例えば、開発中プログラムに新規機能を追加するものや、既存プログラムの不具合を修正するものが挙げられる。タスクの具体的内容として、例えば、アプリケーションサーバ200が実行する特定のソフトウェアを利用して手書文字認識を行うことが挙げられる。
予定工数は、チケット121の作成時に見積もられるタスクの見積もり作業時間である。期限は、チケット121の作成時に設定されるタスクの予定終了日時である。開始日時は、タスクを実際に開始した日時である。終了日時は、タスクが実際に終了した日時である。ステータスは、現在のタスクの状態を示すフラグであり、例えば、係属中または完了済み(クローズド)を示す。タスクが完了したことをクローズと言うことがある。コメントは、タスクの実行途中で関係ユーザが議論した内容を示す文字列である。
ただし、チケット121は、予定工数、期限、開始日時および終了日時の全てを含んでいなくてもよい。例えば、チケット121は、開始日時および終了日時を含み、予定工数および期限を含まないこともある。また、チケット121は、予定工数を含み、期限、開始日時および終了日時を含まないこともある。また、チケット121は、開始日時および期限を含み、予定工数および終了日時を含まないこともある。チケット121からは、ユーザがタスクの実行に要した時間を概算できればよい。
図5は、ログテーブルのデータ構造例を示す図である。
アプリケーションサーバ200は、ログテーブル122を生成する。プロジェクト管理サーバ100は、アプリケーションサーバ200からログテーブル122を受信する。クライアント300,300-1,300-2がログテーブル122と同様のログテーブルを生成してプロジェクト管理サーバ100に提供するようにしてもよい。
ログテーブル122は、日時、ユーザID、API、入力および出力の項目を含む。日時は、APIが呼び出された日時である。ユーザIDは、APIを呼び出したユーザを識別する識別子である。APIは、実行すべきソフトウェアの機能を識別するソフトウェアインタフェースである。APIは、ソフトウェア名や関数名を含むことがある。APIは、URL(Uniform Resource Locator)によって識別されてもよい。入力は、APIの呼び出しの際にアプリケーションサーバ200に入力された入力データである。出力は、APIの呼び出しに対してアプリケーションサーバ200から出力された出力データである。出力はexceptionなどのエラーメッセージであることもある。
図6は、ヘルプ情報テーブルのデータ構造例を示す図である。
プロジェクト管理サーバ100は、ヘルプ情報テーブル123を保持する。ヘルプ情報テーブル123には、予め複数通りのヘルプ情報が登録されている。プロジェクト管理サーバ100は、ログテーブル122に基づいてヘルプ情報テーブル123の中から適切なヘルプ情報を選択し、選択したヘルプ情報をユーザに通知する。
ヘルプ情報テーブル123は、ソフトウェア名、ヘルプID、検出パターンおよびヘルプ情報の項目を含む。ソフトウェア名は、アプリケーションサーバ200にインストールされたソフトウェアの名称である。例えば、ソフトウェア名は、プログラム開発支援ツールのツール名やライブラリ名などである。ヘルプIDは、ヘルプ情報を識別する識別子である。検出パターンは、ログテーブル122の中から検出すべき実行履歴のパターンである。検出パターンは、ソフトウェアの非効率な使用を示している。
検出パターンの例として、特定の複数の関数を順に呼び出すパターンが挙げられる。同一の出力データを出力可能な単一の関数が用意されている場合、ユーザは当該単一の関数を知らないために迂遠な方法で当該ソフトウェアを使用している可能性がある。また、検出パターンの例として、特定のデータ構造の入力データを使用するパターンが挙げられる。入力データのデータ構造を変更すれば同一の出力データを効率的に出力可能な関数を利用できる場合、ユーザは当該関数を利用できる可能性に気付いていないため非効率な関数を使用している可能性がある。また、検出パターンの例として、関数呼び出しによって特定の種類のexceptionが発生したパターンが挙げられる。ユーザは、当該exceptionを回避するための入力データの作成方法や、当該exceptionに対処する適切なユーザプログラムの記述方法を知らない可能性がある。
ヘルプ情報は、検出パターンが示すソフトウェアの非効率な使用に対して、ユーザが当該ソフトウェアを効率的に使用できるように支援する情報である。ヘルプ情報は、付加情報や関連情報などと言うこともできる。ヘルプ情報は、ソフトウェアの機能を説明するテキストを含む。検出パターンに対応するヘルプ情報は、ユーザが知らない可能性のある機能を説明するものであることがある。例えば、ヘルプ情報は、ユーザが知らない可能性のある関数を説明するものである。また、例えば、ヘルプ情報は、入力データの好ましいデータ構造を説明するものである。また、例えば、ヘルプ情報は、発生したexceptionに対する適切な対処を説明するものである。
図7は、トピックテーブルのデータ構造例を示す図である。
プロジェクト管理サーバ100は、同一のユーザに対して同時に複数のヘルプ情報を通知する場合、ユーザの理解が容易になるように複数のヘルプ情報をトピックに分類する。トピックは、ヘルプ情報の種類、グループ、クラスなどと言うこともできる。トピックは、チケットに含まれるテキストに基づいて判定される。
プロジェクト管理サーバ100は、あるチケットのクローズを検出すると、クローズしたチケットに関連するログをログテーブル122から抽出する。クローズしたチケットに関連するログは、当該チケットが示すタスクの中で実行されたソフトウェアの実行履歴である。抽出すべきログは、チケットの担当者のユーザIDを含み、日時がタスクの開始から終了までの間に属するログである。プロジェクト管理サーバ100は、抽出したログの中から、ヘルプ情報テーブル123に登録された検出パターンを検索する。何れかの検出パターンにマッチするログが存在する場合、プロジェクト管理サーバ100は、マッチした検出パターンに対応するヘルプ情報を、通知すべきヘルプ情報として選択する。
プロジェクト管理サーバ100は、通知すべきヘルプ情報のトピックを、クローズしたチケットのタイトルや説明文やコメントなどのテキストに基づいて判定する。テキストに含まれるキーワードから、ヘルプ情報のトピックが判定される。
プロジェクト管理サーバ100は、トピックテーブル124を保持する。トピックテーブル124には、予め複数のトピックが登録されている。トピックテーブル124とクローズしたチケットに含まれるテキストから、ヘルプ情報のトピックを判定する。
トピックテーブル124は、トピックID、トピック名およびキーワードの項目を含む。トピックIDは、トピックを識別する識別子である。トピック名は、ユーザが理解容易でありトピックを端的に説明した文字列である。ユーザにヘルプ情報を通知する際にトピック名が使用される。キーワードは、チケットのタイトルや説明文やコメントなどのテキストに使用される単語である。1つのトピックに対して、当該トピックとの関連度が高い1以上のキーワードが対応付けられている。
プロジェクト管理サーバ100は、クローズしたチケットからキーワードを検索し、トピックテーブル124に記載されたトピックの中から最もマッチするトピックを選択する。例えば、プロジェクト管理サーバ100は、トピック毎にキーワードの出現数をカウントし、キーワードの出現数が最も多いトピックを選択する。プロジェクト管理サーバ100は、当該チケットから生成されるヘルプ情報を、選択したトピックに分類する。
プロジェクト管理サーバ100は、ヘルプ情報を、チケットに記載された担当者であるユーザに通知する。通知方法としては、当該ユーザの使用するクライアントがプロジェクト管理サーバ100にアクセスしたときに、画面のポップアップとして表示されるようにヘルプ情報を当該クライアントに送信する方法が考えられる。また、他の通知方法としては、当該ユーザの電子メールアドレスを宛先アドレスとして含み、ヘルプ情報を本文として含む電子メールを送信する方法が考えられる。
ここで、プロジェクト管理サーバ100は、ユーザにヘルプ情報を通知するタイミングを制御する。チケットがクローズする毎にヘルプ情報を通知するようにすると、ユーザは複数の小さなタスクを連続的に実行している場合に頻繁にヘルプ情報の通知を受け取ることになる。この場合、ユーザはヘルプ情報の通知を煩わしく感じるようになり、目の前のタスクを実行することを優先してヘルプ情報を無視し、ヘルプ情報に基づいてソフトウェアの効率的な使用方法を学習することを行わない可能性がある。一方、あるソフトウェアを使用してから時間が経過し過ぎると、ユーザは当該ソフトウェアの効率的な使用方法を学習するモチベーションが低下してしまう可能性がある。
そのため、ユーザが一定量の作業を行ってユーザの作業が一区切りついたタイミングでヘルプ情報を通知することが好ましい。これにより、ユーザがヘルプ情報を無視する可能性を低減し、ヘルプ情報の通知がソフトウェアの効率的な使用に貢献できるようになる。そこで、プロジェクト管理サーバ100は、ユーザ毎に累積タスクサイズをカウントし、累積タスクサイズが閾値を超えたタイミングでヘルプ情報を通知する。
図8は、タスクサイズテーブルのデータ構造例を示す図である。
プロジェクト管理サーバ100は、タスクサイズテーブル125を保持する。タスクサイズテーブル125は、ユーザID、累積タスクサイズおよび閾値の項目を含む。ユーザIDは、ユーザを識別する識別子である。累積タスクサイズは、未通知のヘルプ情報が蓄積されている期間におけるクローズしたタスクのサイズの合計である。閾値は、ユーザが設定した累積タスクサイズの閾値である。累積タスクサイズが閾値を超えたときに、プロジェクト管理サーバ100は蓄積されたヘルプ情報をまとめてユーザに通知する。
タスクサイズはユーザの作業量を示す指標であり、クローズしたチケットから算出される。チケットに開始日時および終了日時が記載されている場合、タスクサイズとして、開始日時と終了日時の差である実際作業時間を用いることが好ましい。実際作業時間を算出できない場合、タスクサイズとして予定工数を用いてもよい。また、タスクサイズとして、開始日時と期限の差である猶予時間を用いてもよい。また、タスクサイズとして、作業時間に代えて、プログラムのコード量など成果物のデータサイズを用いることもできる。
プロジェクト管理サーバ100は、あるチケットがクローズすると、当該チケットのタスクサイズを算出する。プロジェクト管理サーバ100は、当該チケットに記載されたユーザの閾値とタスクサイズとを比較し、タスクサイズが閾値以下である場合、当該チケットから生成されたヘルプ情報の通知を保留する。プロジェクト管理サーバ100は、ヘルプ情報の通知の保留を開始すると、当該ユーザの累積タスクサイズとして当該タスクサイズを記憶する。プロジェクト管理サーバ100は、当該ユーザが記載されたチケットがクローズする毎に、クローズしたチケットのタスクサイズを累積タスクサイズに加算し、当該ユーザの累積タスクサイズが閾値を超えるのを待つ。プロジェクト管理サーバ100は、累積タスクサイズが閾値を超えると、保留中のヘルプ情報をまとめてユーザに通知する。このとき、理解を容易にするためヘルプ情報はトピックに分類される。プロジェクト管理サーバ100は、ヘルプ情報を通知すると累積タスクサイズを0にリセットする。
大きなタスクのチケットがクローズした場合、当該チケットから生成されたヘルプ情報が保留されずに即時にユーザに通知される。一方、小さなタスクのチケットがクローズした場合、当該チケットから生成されたヘルプ情報が保留されて即時にはユーザに通知されない。クローズしたチケットのタスクが一定量に達したときにヘルプ情報が通知される。
図9は、通知バッファのデータ構造例を示す図である。
プロジェクト管理サーバ100は、通知バッファ126を保持する。通知バッファ126は、ユーザID、トピックおよびヘルプ情報の項目を含む。ユーザIDは、ユーザを識別する識別子である。トピックは、トピックテーブル124に記載された何れかのトピックであり、クローズしたチケットのテキストから判定される。ヘルプ情報は、保留中のヘルプ情報である。通知バッファ126には、保留中のヘルプ情報がユーザ毎かつトピック毎に分類されて登録される。なお、通知バッファ126には、トピックIDが登録されてもよいしトピック名が登録されてもよい。また、通知バッファ126には、ヘルプ情報そのものが登録されてもよいしヘルプIDが登録されてもよい。
図10は、ヘルプ情報の通知タイミングの例を示す図である。
ここでは、同一ユーザがチケット131~134のタスクを順に実行することを考える。ユーザは、チケット131のタスクが完了した後にチケット132のタスクに着手し、チケット132のタスクが完了した後にチケット133のタスクに着手し、チケット133のタスクが完了した後にチケット134のタスクに着手している。チケット131のタスクサイズは8日、チケット132のタスクサイズは2日、チケット133のタスクサイズは2日、チケット134のタスクサイズは5日であるとする。ユーザが設定した閾値は7日であるとする。チケット131からヘルプ情報135が生成され、チケット132からヘルプ情報136が生成され、チケット133からヘルプ情報137が生成されている。チケット134からはヘルプ情報は生成されていない。
チケット131がクローズすると、チケット131のタスクサイズが閾値を超えているため、ヘルプ情報135は保留されずに即時にユーザに通知される。一方、チケット132がクローズすると、チケット132のタスクサイズが閾値以下であるため、ヘルプ情報136は保留されてユーザに通知されない。次に、チケット133がクローズすると、チケット132,133の累積タスクサイズがまだ閾値以下であるため、ヘルプ情報136,137は保留されてユーザに通知されない。次に、チケット134がクローズすると、チケット132~134の累積タスクサイズが閾値を超えているため、保留中のヘルプ情報136,137がまとめてユーザに通知される。
図11は、プロジェクト管理画面の例を示す図である。
プロジェクト管理サーバ100は、画面のポップアップとしてヘルプ情報をユーザに通知することができる。プロジェクト管理画面140は、プロジェクト管理サーバ100からクライアント300に送信された画面情報に基づいてクライアント300に表示される画面の例である。プロジェクト管理画面140は、ポップアップ領域141を含む。
ポップアップ領域141には、トピック名とヘルプ情報のテキストが表示される。ポップアップ領域141では、複数のヘルプ情報がトピックに応じてソートされている。例えば、トピック名「software1機能」が記載され、その下にsoftware1の機能に関するヘルプ情報のテキストが記載され、トピック名「software2機能」が記載され、その下にsoftware2の機能に関するヘルプ情報のテキストが記載される。ポップアップ領域141の情報が電子メールとして送信されてもよい。
次に、プロジェクト管理サーバ100の機能について説明する。
図12は、プロジェクト管理サーバの機能例を示すブロック図である。
プロジェクト管理サーバ100は、チケット記憶部111、ログ記憶部112、ヘルプ情報記憶部113、ユーザ設定記憶部114、メッセージ記憶部115、チケット編集部116、ログ収集部117、通知制御部118およびメッセージ通知部119を有する。チケット記憶部111、ログ記憶部112、ヘルプ情報記憶部113、ユーザ設定記憶部114およびメッセージ記憶部115は、RAM102またはHDD103の記憶領域を用いて実装される。チケット編集部116、ログ収集部117、通知制御部118およびメッセージ通知部119は、CPU101が実行するプログラムを用いて実装される。
チケット記憶部111は、複数のチケットを記憶する。ログ記憶部112は、ログテーブル122を記憶する。ヘルプ情報記憶部113は、ヘルプ情報テーブル123およびトピックテーブル124を記憶する。ユーザ設定記憶部114は、タスクサイズテーブル125を記憶する。メッセージ記憶部115は、通知バッファ126を保持する。
チケット編集部116は、クライアント300,300-1,300-2からのアクセスに応じて、新規チケットを生成してチケット記憶部111に格納する。また、チケット編集部116は、クライアント300,300-1,300-2からのアクセスに応じて、チケット記憶部111に記憶されたチケットを更新する。
ログ収集部117は、アプリケーションサーバ200からログを収集し、ログテーブル122にログを記録する。例えば、ログ収集部117は、アプリケーションサーバ200にログ要求を送信し、アプリケーションサーバ200からログを受信する。ログ収集部117は、定期的にアプリケーションサーバ200からログを収集してもよい。また、ログ収集部117は、チケットがクローズしたときに、クローズしたチケットに関連するログをアプリケーションサーバ200から収集してもよい。また、ログ収集部117は、クライアント300,300-1,300-2で実行されるソフトウェアに関して、クライアント300,300-1,300-2からログを収集してもよい。
通知制御部118は、チケット記憶部111に記憶されたチケットを監視し、クローズしたチケットを検出する。すると、通知制御部118は、クローズしたチケットに関連するログをログテーブル122から検索し、ヘルプ情報テーブル123に記載された何れかの検出パターンがログに含まれているか判定する。クローズしたチケットに関連するログは、当該チケットの開始からクローズまでの間に当該チケットに記載されたユーザによって実行されたソフトウェアの実行履歴である。何れかの検出パターンがログに含まれている場合、通知制御部118は、当該検出パターンに対応するヘルプ情報を選択する。
ヘルプ情報が選択されると、通知制御部118は、トピックテーブル124に登録されたキーワードをチケットのテキストから検索し、キーワード数が最も多いトピックに当該ヘルプ情報を分類する。また、通知制御部118は、チケットからタスクサイズを算出し、チケットに記載されたユーザの累積タスクサイズと閾値とを比較する。累積タスクサイズが閾値を超える場合、通知制御部118は、当該ユーザ宛てのヘルプ情報を通知することを許容する。一方、累積タスクサイズが閾値以下である場合、通知制御部118は、当該ユーザ宛てのヘルプ情報の通知を保留する。
メッセージ通知部119は、通知制御部118によって許容されたヘルプ情報をユーザに通知する。例えば、メッセージ通知部119は、クライアント300からアクセスを付け付けたときに、クライアント300を使用するユーザ宛てのヘルプ情報を含む画面情報をクライアント300に送信する。また、例えば、メッセージ通知部119は、ヘルプ情報を含む電子メールをユーザ宛てに送信する。複数のヘルプ情報をまとめて通知する場合、メッセージ通知部119は、ヘルプ情報をトピックに基づいてソートする。
図13は、通知制御の手順例を示すフローチャートである。
(S10)通知制御部118は、チケットのクローズを検出する。
(S11)通知制御部118は、ステップS10のチケットに関連するログをログテーブル122から抽出する。通知制御部118は、抽出したログとヘルプ情報テーブル123の検出パターンを比較し、何れかの検出パターンにマッチするヘルプ情報を検索する。
(S12)通知制御部118は、ステップS11で該当するヘルプ情報が検索されたか判断する。ステップS11では、該当するヘルプ情報が存在しない場合もあるし、2以上のヘルプ情報が検索される場合もある。該当するヘルプ情報がある場合はステップS13に進み、該当するヘルプ情報がない場合はステップS15に進む。
(S13)通知制御部118は、ステップS10のチケットのテキストから、トピックテーブル124のキーワードを検索する。通知制御部118は、検索されたキーワードの個数に基づいて、トピックテーブル124から何れかのトピックを選択する。
(S14)通知制御部118は、ステップS10のチケットに記載されたユーザおよびステップS13のトピックと対応付けて、ヘルプ情報を通知バッファ126に登録する。
(S15)通知制御部118は、ステップS10のチケットに記載されたユーザに対応するヘルプ情報が通知バッファ126に登録されているか判断する。登録されているヘルプ情報は、今回のチケットから選択されたヘルプ情報である場合もあるし、過去のチケットから選択されて保留されているヘルプ情報である場合もある。該当するヘルプ情報がある場合はステップS16に進み、該当するヘルプ情報がない場合は通知制御を終了する。
(S16)通知制御部118は、ステップS10のチケットからタスクサイズを算出する。通知制御部118は、ステップS10のチケットに記載されたユーザに対応するタスクサイズテーブル125の累積タスクサイズに、算出したタスクサイズを加算する。
(S17)通知制御部118は、ステップS10のチケットに記載されたユーザに対応するタスクサイズテーブル125の累積タスクサイズと閾値とを比較する。累積タスクサイズが閾値を超える場合はステップS18に進み、累積タスクサイズが閾値以下である場合は今回のチケットに対する通知制御を終了する。
(S18)通知制御部118は、通知バッファ126から、ステップS10のチケットに記載されたユーザに対応する未通知のヘルプ情報を抽出する。メッセージ通知部119は、抽出したヘルプ情報をトピック毎に区分してユーザに通知する。例えば、メッセージ通知部119は、トピック名とヘルプ情報のテキストをポップアップ領域に表示させる。また、例えば、メッセージ通知部119は、トピック名とヘルプ情報のテキストを含む電子メールを、当該ユーザの電子メールアドレスを指定して送信する。
(S19)通知制御部118は、ステップS10のチケットに記載されたユーザに対応するタスクサイズテーブル125の累積タスクサイズを0にリセットする。
第2の実施の形態の情報処理システムによれば、チケットがクローズした際、ソフトウェアの実行履歴を示すログからユーザによる当該ソフトウェアの非効率な使用が検出される。そして、当該ユーザに対して当該ソフトウェアの機能や効率的な使用方法を説明したヘルプ情報が自動的に通知される。よって、ユーザの将来のタスク実行が効率化される。
また、ヘルプ情報は、累積タスクサイズが閾値を超えたタイミングで通知され、累積タスクサイズが閾値以下である間は通知が保留される。よって、頻繁にヘルプ情報が通知されることによってユーザが通知を煩わしく感じ、ヘルプ情報を無視してしまう可能性を低減できる。また、累積タスクサイズが閾値を超えたタイミングは、ユーザの作業が一区切りついたタイミングであることが多く、直前に使用していたソフトウェアの機能を学習するのに好適であるため、ユーザによる学習が促進される。また、複数のヘルプ情報をまとめて通知する場合、それらヘルプ情報が自動的にトピックに分類され、トピックに応じてソートされて表示される。よって、ユーザのヘルプ情報の理解が容易になる。
10 情報処理装置
11 記憶部
12 処理部
13 タスク管理情報
13a ステータス情報
13b 作業量情報
14a,14b タスク
15a,15b ヘルプ情報
16 指標値

Claims (6)

  1. 複数のタスクそれぞれについて当該タスクの完了の有無を示すステータス情報と当該タスクの作業量を示す作業量情報とを含むタスク管理情報を記憶する記憶部と、
    前記ステータス情報に基づいて第1のタスクの完了を検出し、前記第1のタスクにおけるソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第1のヘルプ情報の通知を保留し、前記ステータス情報に基づいて前記第1のタスクの完了の後に第2のタスクの完了を検出し、前記作業量情報に基づいて前記第1のタスクおよび前記第2のタスクを含む複数の完了済みタスクの作業量の合計を示す指標値を算出し、前記指標値と閾値とを比較し、前記指標値が前記閾値を超える場合、前記第1のヘルプ情報と前記第2のタスクにおける前記ソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第2のヘルプ情報とを通知することを許容し、前記指標値が前記閾値以下である場合、前記第1のヘルプ情報および前記第2のヘルプ情報の通知を保留する処理部と、
    を有する情報処理装置。
  2. 前記指標値は、前記複数の完了済みタスクの実際作業時間の合計、予定作業時間の合計、または、タスク開始から期限までの猶予時間の合計である、
    請求項1記載の情報処理装置。
  3. 前記複数の完了済みタスクは、前記第1のタスクと、前記第1のヘルプ情報の通知が保留されている間に前記第1のタスクと同じユーザによって完了されたタスクである、
    請求項1記載の情報処理装置。
  4. 前記タスク管理情報は、前記複数のタスクそれぞれについてテキスト情報を含み、
    前記処理部は更に、前記テキスト情報に含まれる単語に基づいて前記第1のヘルプ情報および前記第2のヘルプ情報それぞれのカテゴリを決定し、
    前記第1のヘルプ情報および前記第2のヘルプ情報を通知する場合、前記カテゴリに基づいて前記第1のヘルプ情報および前記第2のヘルプ情報の表示順序を制御する、
    請求項1記載の情報処理装置。
  5. コンピュータが実行するプロジェクト管理方法であって、
    第1のタスクの完了を検出し、
    前記第1のタスクにおけるソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第1のヘルプ情報の通知を保留し、
    前記第1のタスクの完了の後に第2のタスクの完了を検出し、
    前記第1のタスクおよび前記第2のタスクを含む複数の完了済みタスクの作業量の合計を示す指標値を算出し、前記指標値と閾値とを比較し、
    前記指標値が前記閾値を超える場合、前記第1のヘルプ情報と前記第2のタスクにおける前記ソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第2のヘルプ情報とを通知することを許容し、前記指標値が前記閾値以下である場合、前記第1のヘルプ情報および前記第2のヘルプ情報の通知を保留する、
    プロジェクト管理方法。
  6. コンピュータに、
    第1のタスクの完了を検出し、
    前記第1のタスクにおけるソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第1のヘルプ情報の通知を保留し、
    前記第1のタスクの完了の後に第2のタスクの完了を検出し、
    前記第1のタスクおよび前記第2のタスクを含む複数の完了済みタスクの作業量の合計を示す指標値を算出し、前記指標値と閾値とを比較し、
    前記指標値が前記閾値を超える場合、前記第1のヘルプ情報と前記第2のタスクにおける前記ソフトウェアの使用状況に基づいて選択された前記ソフトウェアに関連する第2のヘルプ情報とを通知することを許容し、前記指標値が前記閾値以下である場合、前記第1のヘルプ情報および前記第2のヘルプ情報の通知を保留する、
    処理を実行させるプロジェクト管理プログラム。
JP2018116782A 2018-06-20 2018-06-20 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム Active JP7060804B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018116782A JP7060804B2 (ja) 2018-06-20 2018-06-20 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム
US16/435,938 US11099866B2 (en) 2018-06-20 2019-06-10 Apparatus and method to provide help information to a user in a timely manner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018116782A JP7060804B2 (ja) 2018-06-20 2018-06-20 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム

Publications (2)

Publication Number Publication Date
JP2019219913A JP2019219913A (ja) 2019-12-26
JP7060804B2 true JP7060804B2 (ja) 2022-04-27

Family

ID=68981805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018116782A Active JP7060804B2 (ja) 2018-06-20 2018-06-20 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム

Country Status (2)

Country Link
US (1) US11099866B2 (ja)
JP (1) JP7060804B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082547A1 (ja) 2009-01-16 2010-07-22 ブラザー工業株式会社 ヘッドマウントディスプレイ
JP2013120473A (ja) 2011-12-07 2013-06-17 Nikon Corp 電子機器、情報処理方法およびプログラム
US20150301729A1 (en) 2014-04-17 2015-10-22 Facebook, Inc. Assisting a user of a software application

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04160527A (ja) * 1990-10-24 1992-06-03 Toshiba Corp データ処理装置
JP5163562B2 (ja) 2009-03-18 2013-03-13 富士通株式会社 操作方法案内装置、操作方法案内プログラムおよび操作方法案内方法
JP2015158817A (ja) 2014-02-25 2015-09-03 大日本印刷株式会社 電子書籍コンテンツ関連情報配信システム、及びコンテンツ関連情報配信方法
US10430214B2 (en) * 2016-12-30 2019-10-01 Google Llc Dynamically generating custom application onboarding tutorials
US20180341336A1 (en) * 2017-05-25 2018-11-29 Microsoft Technology Licensing, Llc Optical indication for keyboard input suggestion
US10885808B2 (en) * 2017-09-28 2021-01-05 International Business Machines Corporation Curating tutorials based on historic user data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082547A1 (ja) 2009-01-16 2010-07-22 ブラザー工業株式会社 ヘッドマウントディスプレイ
JP2013120473A (ja) 2011-12-07 2013-06-17 Nikon Corp 電子機器、情報処理方法およびプログラム
US20150301729A1 (en) 2014-04-17 2015-10-22 Facebook, Inc. Assisting a user of a software application

Also Published As

Publication number Publication date
JP2019219913A (ja) 2019-12-26
US20190391842A1 (en) 2019-12-26
US11099866B2 (en) 2021-08-24

Similar Documents

Publication Publication Date Title
JP5353148B2 (ja) 画像情報検索装置、画像情報検索方法およびそのコンピュータプログラム
KR102455232B1 (ko) 콘텍스트 기반 탭 관리를 위한 방법 및 전자 장치
CN1934539A (zh) 用于监控应用程序中的事件的基于简档的捕捉组件
US8756614B2 (en) Central registry for binding features using dynamic pointers
TWI278744B (en) Methods and systems for recording user actions in computer programs
WO2020164276A1 (zh) 网页数据爬取方法、装置、系统及计算机可读存储介质
JP2022160544A (ja) 計算機システム及び方法
JP2010073114A6 (ja) 画像情報検索装置、画像情報検索方法およびそのコンピュータプログラム
CN114416667B (zh) 快速分享网盘文件的方法、装置、网盘及存储介质
JPH10124413A (ja) 埋め込みウェブオブジェクトの優先順位づけダウンローディングの方法と装置
US20130318496A1 (en) Detection of central-registry events influencing dynamic pointers and app feature dependencies
CN101443762A (zh) 用于搜索的后退机制
JP2005115514A (ja) データベース検索システム及びその検索方法並びにプログラム
WO2011034974A2 (en) Automatically finding contextually related items of a task
US10430713B2 (en) Predicting and enhancing document ingestion time
US8931002B2 (en) Explanatory-description adding apparatus, computer program product, and explanatory-description adding method
CN102368212A (zh) 消息队列管理
US20100192098A1 (en) Accelerators for capturing content
US8584001B2 (en) Managing bookmarks in applications
US9904713B2 (en) Proposing a copy area in a document
JPWO2020208448A5 (ja)
JP2008310514A (ja) ユーザ操作履歴取得表示装置、ユーザ操作履歴取得表示方法、ユーザ操作履歴取得表示プログラム及びそのプログラムを記録した記録媒体
JP7060804B2 (ja) 情報処理装置、プロジェクト管理方法およびプロジェクト管理プログラム
JP4199193B2 (ja) 関連情報管理方法、プログラム及び装置
CN111931037A (zh) 一种朗读作品推荐方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210310

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210324

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220328

R150 Certificate of patent or registration of utility model

Ref document number: 7060804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150