METHOD AND SYSTEM FOR USING ARTIFICIAL INTELLIGENCE FOR TASK MANAGEMENT

A method and a system for managing a task are provided. The method includes: receiving, from a user, a description of a first task that relates to a first project that has not been completed; generating, by using a machine learning algorithm, a plan for executing the first task based on the received description of the first task and historical task management information that relates to at least one task that has been completed; initiating an execution of the first task based on the generated plan; and tracking the execution of the first task in order to determine whether the execution is progressing in accordance with the generated plan. The historical task management information includes task-specific skill requirements and task duration.

BACKGROUND

1. Field of the Disclosure

This technology generally relates to methods and systems for task management, and more particularly to using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

2. Background Information

In a large organization such as a multinational corporation, project management and personnel utilization are important for sustained success and profitability. Inefficiencies in these aspects may cause competitive disadvantages and a lack of growth.

In an organization that has a large number of employees, i.e., on the order of hundreds of thousands, project planning that is performed manually by individual users may lead to sub-optimal plans that have time periods during which some employees are not assigned tasks and are generally underutilized. This may also result in a slow, disjointed process that lacks transparency and thus causes misunderstandings and/or noncompliance among employees.

Accordingly, there is a need for a methodology for optimizing task management and project planning that maximizes employee efficiency and employee understanding and compliance with task requirements.

SUMMARY

The present disclosure, through one or more of its various aspects, embodiments, and/or specific features or sub-components, provides, inter alia, various systems, servers, devices, methods, media, programs, and platforms for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

According to an aspect of the present disclosure, a method for managing a task is provided. The method is implemented by at least one processor. The method includes: receiving, by the at least one processor from a user, a description of a first task that relates to a first project that has not been completed; generating, by the at least one processor, a plan for executing the first task based on the received description of the first task and historical task management information that relates to at least one task that has been completed; initiating, by the at least one processor, an execution of the first task based on the generated plan; and tracking, by the at least one processor, the execution of the first task in order to determine whether the execution is progressing in accordance with the generated plan.

The historical task management information may include, for each of the at least one task that has been completed, information that relates to at least one respective skill required for completing the respective task and information that relates to a respective amount of time required for completing the respective task. The generating of the plan may include using a machine learning algorithm that is trained by using the historical task management information and that generates an output that includes first information that relates to identifying at least one skill required for performing the first task and second information that relates to an amount of time expected to be required for completing the execution of the first task.

The historical task management information may further include personal information that identifies a plurality of persons and indicates, for each person included in the plurality of persons, a respective list of skills. The output generated by the machine learning algorithm may further include third information that relates to identifying at least one person from among the plurality of persons to be assigned to perform the first task.

The historical task management information may further include, for each of the at least one task that has been completed, information that relates to a priority level for the respective task. The output generated by the machine learning algorithm may further include fourth information that relates to assigning a priority level to the first task.

The historical task management information may further include, for each of the at least one task that has been completed, information that relates to a complexity of the respective task. The output generated by the machine learning algorithm may further include fifth information that relates to determining a complexity of the first task.

The method may further include analyzing, by the at least one processor, the received description of the first task to determine whether the first task is duplicative of a second task that is currently being executed. When the first task is determined as being duplicative, the method may further include transmitting, to the user, a message that includes a notification of the duplicativeness determination and a recommendation for adjusting the description of the first task in order to avoid a subsequent redundancy.

The method may further include analyzing, by the at least one processor, a result of the tracking of the execution of the first task to detect a problem caused by the execution of the first task; and transmitting, to the user, a message that includes a notification of the detected problem and a recommendation for adjusting the description of the first task in order to overcome the detected problem.

The method may further include determining, based on a result of the tracking, whether the execution of the first task is expected to cause a delay in a completion of the first project; and transmitting, to the user, a status message that includes information that relates to a result of the determining of whether the execution of the first task is expected to cause the delay in the completion of the first project.

When a determination is made that the execution of the first task is expected to cause the delay in the completion of the first project, the method may further include identifying at least one additional resource to be applied to the first project in order to overcome the expected delay.

According to another exemplary embodiment, a computing apparatus for managing a task is provided. The computing apparatus includes: a processor; a memory; and a communication interface coupled to each of the processor and the memory. The processor is configured to: receive, from a user via the communication apparatus, a description of a first task that relates to a first project that has not been completed; generate a plan for executing the first task based on the received description of the first task and historical task management information that relates to at least one task that has been completed; initiate an execution of the first task based on the generated plan; and track the execution of the first task in order to determine whether the execution is progressing in accordance with the generated plan.

The historical task management information may include, for each of the at least one task that has been completed, information that relates to at least one respective skill required for completing the respective task and information that relates to a respective amount of time required for completing the respective task. The processor may be further configured to generate the plan by using a machine learning algorithm that is trained by using the historical task management information and that generates an output that includes first information that relates to identifying at least one skill required for performing the first task and second information that relates to an amount of time expected to be required for completing the execution of the first task.

The historical task management information may further include personal information that identifies a plurality of persons and indicates, for each person included in the plurality of persons, a respective list of skills. The output generated by the machine learning algorithm may further include third information that relates to identifying at least one person from among the plurality of persons to be assigned to perform the first task.

The historical task management information may further include, for each of the at least one task that has been completed, information that relates to a priority level for the respective task. The output generated by the machine learning algorithm may further include fourth information that relates to assigning a priority level to the first task.

The historical task management information may further include, for each of the at least one task that has been completed, information that relates to a complexity of the respective task. The output generated by the machine learning algorithm may further include fifth information that relates to determining a complexity of the first task.

The processor may be further configured to: analyze the received description of the first task to determine whether the first task is duplicative of a second task that is currently being executed; and transmit, to the user via the communication interface when the first task is determined as being duplicative, a message that includes a notification of the duplicativeness determination and a recommendation for adjusting the description of the first task in order to avoid a subsequent redundancy.

The processor may be further configured to: analyze a result of the tracking of the execution of the first task to detect a problem caused by the execution of the first task; and transmit, to the user via the communication interface, a message that includes a notification of the detected problem and a recommendation for adjusting the description of the first task in order to overcome the detected problem.

The processor may be further configured to: determine, based on a result of the tracking, whether the execution of the first task is expected to cause a delay in a completion of the first project, and transmit, to the user via the communication interface, a status message that includes information that relates to a result of the determination of whether the execution of the first task is expected to cause the delay in the completion of the first project.

When a determination is made that the execution of the first task is expected to cause the delay in the completion of the first project, the processor may be further configured to identify at least one additional resource to be applied to the first project in order to overcome the expected delay.

According to yet another exemplary embodiment, a non-transitory computer readable storage medium storing instructions for managing a task is provided. The storage medium includes executable code which, when executed by a processor, causes the processor to: receive, rom a user, a description of a first task that relates to a first project that has not been completed; generate a plan for executing the first task based on the received description of the first task and historical task management information that relates to at least one task that has been completed; initiate an execution of the first task based on the generated plan; and track the execution of the first task in order to determine whether the execution is progressing in accordance with the generated plan.

The historical task management information may include, for each of the at least one task that has been completed, information that relates to at least one respective skill required for completing the respective task and information that relates to a respective amount of time required for completing the respective task. The executable code may be further configured to cause the processor to generate the plan by using a machine learning algorithm that is trained by using the historical task management information and that generates an output that includes first information that relates to identifying at least one skill required for performing the first task and second information that relates to an amount of time expected to be required for completing the execution of the first task.

DETAILED DESCRIPTION

As described herein, various embodiments provide optimized methods and systems for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

Referring toFIG.2, a schematic of an exemplary network environment200for implementing a method for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements is illustrated. In an exemplary embodiment, the method is executable on any networked computer platform, such as, for example, a personal computer (PC).

The method for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements may be implemented by an Artificial Intelligence for Task Management (AITM) device202. The AITM device202may be the same or similar to the computer system102as described with respect toFIG.1. The AITM device202may store one or more applications that can include executable instructions that, when executed by the AITM device202, cause the AITM device202to perform actions, such as to transmit, receive, or otherwise process network messages, for example, and to perform other actions described and illustrated below with reference to the figures. The application(s) may be implemented as modules or components of other applications. Further, the application(s) can be implemented as operating system extensions, modules, plugins, or the like.

Even further, the application(s) may be operative in a cloud-based computing environment. The application(s) may be executed within or as virtual machine(s) or virtual server(s) that may be managed in a cloud-based computing environment. Also, the application(s), and even the AITM device202itself, may be located in virtual server(s) running in a cloud-based computing environment rather than being tied to one or more specific physical network computing devices. Also, the application(s) may be running in one or more virtual machines (VMs) executing on the AITM device202. Additionally, in one or more embodiments of this technology, virtual machine(s) running on the AITM device202may be managed or supervised by a hypervisor.

The communication network(s)210may be the same or similar to the network122as described with respect toFIG.1, although the AITM device202, the server devices204(1)-204(n), and/or the client devices208(1)-208(n) may be coupled together via other topologies. Additionally, the network environment200may include other network devices such as one or more routers and/or switches, for example, which are well known in the art and thus will not be described herein. This technology provides a number of advantages including methods, non-transitory computer readable media, and AITM devices that efficiently implement a method for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

The server devices204(1)-204(n) may be hardware or software or may represent a system with multiple servers in a pool, which may include internal or external networks. The server devices204(1)-204(n) hosts the databases206(1)-206(n) that are configured to store data that relates to task management history and personnel utilization.

One or more of the devices depicted in the network environment200, such as the AITM device202, the server devices204(1)-204(n), or the client devices208(1)-208(n), for example, may be configured to operate as virtual instances on the same physical machine. In other words, one or more of the AITM device202, the server devices204(1)-204(n), or the client devices208(1)-208(n) may operate on the same physical device rather than as separate devices communicating through communication network(s)210. Additionally, there may be more or fewer AITM devices202, server devices204(1)-204(n), or client devices208(1)-208(n) than illustrated inFIG.2.

The AITM device202is described and illustrated inFIG.3as including an artificial intelligence for task management module302, although it may include other rules, policies, modules, databases, or applications, for example. As will be described below, the artificial intelligence for task management module302is configured to implement a method for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

An exemplary process300for implementing a mechanism for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements by utilizing the network environment ofFIG.2is illustrated as being executed inFIG.3. Specifically, a first client device208(1) and a second client device208(2) are illustrated as being in communication with AITM device202. In this regard, the first client device208(1) and the second client device208(2) may be “clients” of the AITM device202and are described herein as such. Nevertheless, it is to be known and understood that the first client device208(1) and/or the second client device208(2) need not necessarily be “clients” of the AITM device202, or any entity described in association therewith herein. Any additional or alternative relationship may exist between either or both of the first client device208(1) and the second client device208(2) and the AITM device202, or no relationship may exist.

Further, AITM device202is illustrated as being able to access a historical task management data repository206(1) and a personnel utilization database206(2). The artificial intelligence for task management module302may be configured to access these databases for implementing a method for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements.

Upon being started, the artificial intelligence for task management module302executes a using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements. An exemplary process for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements is generally indicated at flowchart400inFIG.4.

In process400ofFIG.4, at step S402, the artificial intelligence for task management module302receives a description of a task that relates to a project that is upcoming or ongoing. In an exemplary embodiment, the task description includes a description of the requirement(s) for completing the task, an estimate of complexity, an estimated amount of time that is expected to be required for completing the task, an assignee, and a priority (i.e., high, medium, or low).

At step S404, the artificial intelligence for task management module302analyzes the received task description to determine whether there is any redundancy, i.e., whether the newly received task is duplicative of an existing task. In an exemplary embodiment, the task description may also be checked for quality, i.e., whether any similar tasks have caused downstream issues that may be replicated by the newly received task. In an exemplary embodiment, a result of the analysis of the task description may be provided in a notification message that is transmitted to a user from whom the task description was received.

At step S406, the artificial intelligence for task management module302identifies requisite skills and suitable personnel for performing the task. In an exemplary embodiment, the artificial intelligence for task management module302uses a machine learning algorithm that is trained by using historical task management information that is stored in the historical task management data repository206(1) and that outputs information that identifies the requisite skills for performing the current task. The historical task management information may also include information that identifies a personnel roster together with a corresponding list of skills for each person included on the roster, and the machine learning algorithm may also retrieve information relating to personnel availability from personnel utilization database206(2). Based on this information, a suitable person or persons for performing the task may be indicated.

At step S408, the artificial intelligence for task management module302determines a task sequencing, a task complexity, and a task priority for the current task. In an exemplary embodiment, the machine learning algorithm that has been trained on the historical task management data uses the task description as an input and generates an output that includes each of 1) information that relates to task sequencing with respect to the current task, 2) information that relates to a complexity of the current task, and 3) information that relates to a priority of the current task.

At step S410, the artificial intelligence for task management module302determines an expected task duration for the current task. In an exemplary embodiment, the machine learning algorithm uses the task description and the historical task management information to generate an output that indicates an expected task duration based on the determinations regarding required skills, task sequencing, complexity, and priority.

At step S412, the artificial intelligence for task management module302generates a task plan for the current task. In an exemplary embodiment, the task plan includes an identification of one or more persons to whom the task is to be assigned and a projected schedule for executing and completing the task.

At step S414, the artificial intelligence for task management module302initiates an execution of the task and then tracks the progress of the task during execution with reference to the task plan generated in step S412. Then, at step S416, the artificial intelligence for task management module302identifies problems and issues, also referred to herein as “bugs”, and/or sources of delay in the execution and completion of the task. In this aspect, when the execution of the task is progressing in accordance with the plan, there may be no problems or issues and therefore no delays, and the task execution may proceed to completion.

However, when a problem or issue is identified, and in particular when the identified problem or issue is deemed as potentially causing a delay in the completion of the project, then at step S418, the artificial intelligence for task management module302allocates resources to remedy the identified problem and/or issue. In an exemplary embodiment, the allocation of resources may entail determining which additional personnel have the proper skill set and availability to address the identified problem and then assigning the task to the additional personnel.

In an exemplary embodiment, a framework for completely transforming the handling of task management is provided. Tasks that are created are subjected to a task analysis process that can inform a user whether a particular task, as described by the user, is likely to cause downstream issues. The user can then revise the task description in such a way that increases the likelihood of assignees understanding the requirement and therefore completing the task without sending back for clarification.

Tasks then can move towards a planning module where they are automatically planned for sprints. The planning module learns features, such as duration, user skills, and task precedence from historical tasks in order to generate an optimal plan.

As tasks are being executed, a feedback loop is introduced via a module that monitors how closely the assignees are following the plans. For example, if a task duration is estimated to take two days and the assignee completes the task in three days, this data is fed back to the model in order to continuously improve model accuracy.

Task tracking is a key module with respect to following task progress throughout the rest of the lifecycle of the task. For example, a software development task can be tracked throughout the software development lifecycle. This means that as the code is written for a task, the metadata related to the code such as unit test coverage, code quality, and other attributes can be linked to the task. If a bug appears as a result of executing this code, the bug can be associated with the original task. The task tracking module then feeds the task analysis module so that tasks that may cause these downstream issues in the future may be rejected by the task analysis module.

Task generation is then a module that is able to generate tasks automatically as a result of the task tracking module. As an extension of the example above, if a piece of code results in a bug, a new task can be generated automatically in order to fix the bug, rather than waiting for an end user to detect the bug and manually raise it as an issue.

As end users are able to create tasks when bugs are found, when multiple users encounter the same issue, then multiple tasks may be created with the purpose of fixing a single bug. Thus, another goal of the task analysis module is to warn users when creating tasks as to whether a similar type of task exists or has already been created. In an exemplary embodiment, the task analysis module questions whether or not a particular task should be completed at all.

Finally, by tracking tasks, transparency is provided with respect to the end-to-end process in order to show whether or not a project is on-track to meet goals and timelines. In addition to the benefits of the transparency alone, by combining this with the skills estimators, the skill sets that are needed in order to complete the tasks for the projects that are falling behind can be identified. These skills can drive the hiring process, and/or internal resources that have these skills available from projects that are ahead of schedule can be assigned to help. This, in turn, makes internal resources more fungible.

FIG.5is a flow diagram500of a process for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements, according to an exemplary embodiment.

Flow diagram500illustrates a process flow as follows:

1) Tasks: In an exemplary embodiment, each task has a description of the requirement(s), an estimate of complexity, an estimate of duration for completion, an assignee, and a priority, i.e., high priority, medium priority, or low priority.

2) Task Analysis module: This module performs analysis in order to determine whether a task should actually be completed, and also performs a quality check on each task. For example, if multiple users create a task to fix one particular bug, there could be multiple tasks that refer to the same issue. In an exemplary embodiment, at the time of task creation, the task analysis module determines whether a similar task already exists. The task analysis module also receives feedback from the task tracking module in order to warn users that tasks that are similar to the one they have created have caused issues downstream, with a recommendation on how to improve the task. For example, the task analysis module may provide a recommendation to add more information to the task description.

3) is this a useful task?: Based on the output of the task analysis module, a decision is made at this stage regarding whether to recommend that user revise/change the task, or whether the task can continue to the rest of the pipeline.

4) Recommend user re-thinks task: Task returned to user with recommendation.

5) Skill Estimator module: Based on previous tasks that have been completed by each assignee, the skills are learned for each person such that future tasks can be assigned to people who have skills that are suitable for completing each task.

6) Task Sequencing module: Based on previous tasks that have been completed, an optimal sequence of tasks is learned. For example, for an optimal task sequence, the Task Sequencing module may learn that high priority tasks are to be completed first and that a user interface is to be completed before completing a backend. The optimal task sequences will then be used in the Planner module.

7) Task Duration Prediction module: Based on previous tasks that have been completed, an optimal duration of tasks is learned using features such as priority, and even assignee, as some individuals may complete a certain type of task faster than others. As a result, the Task Duration Prediction module predicts a respective duration of each subsequent task. The optimal task durations will be a factor in the Planner module.

8) Task Complexity Prediction: Based on previous tasks that have been completed, a complexity of each task is learned. As a result, the Task Complexity Prediction module predicts a respective complexity of each subsequent task.

9) Task Priority Prediction module: Based on previous tasks that have been completed, an optimal priority of tasks is learned. As a result, the Task Priority Prediction module predicts a priority of each subsequent task.

10) Planner module: The Planner module receives all of the learned variables from the Skill Estimator module, the Task Sequencing module, the Task Duration Prediction module, the Task Complexity Prediction module, and the Task Priority Prediction module, and uses these outputs to generate an optimal plan for completing each respective task. Further, the Planner module also assigns tasks to persons that have suitable skills for completing each task. In an exemplary embodiment, the Planner module uses a mixed integer programming approach to accomplish these objectives.

11) Feedback loop to update models: Each plan that is provided to users is only a recommendation. Thus, whether users follow this plan is monitored, and feedback that indicates any deviations from the plan is provided back to the models in order to facilitate continuous learning.

12) Task Tracking module: The Task Tracking module tracks each task through its lifecycle. For example, for a software engineering task, software will be developed, then tested, then scanned for code quality, until the software is ultimately deployed into a production environment. Once in the production environment, a bug may appear. By completing this traceability exercise, the test and scan results may be obtained, and these results may then be combined with the original task description in order to facilitate issue identification and determinations re potential remedies.

13) Feedback loop to the Task Analysis module: Based on the output of the Task Tracking module, feedback is provided such that the Task Analysis module is able to inform users when a similar type of task has previously caused issues downstream.

14) Auto-Task Generation module: When an issue is detected downstream by the Task Tracking module, a new task can automatically be created in order to fix the corresponding bug rather than wait for a human to find the issue and manually generate a new task for addressing the bug.

15) Project Likelihood Success Estimator module: Based on all of the data provided by the Task Tracking module, the Project Likelihood Success Estimator predicts a likelihood of a particular task being late and a likelihood of a particular task resulting in a bug. Each prediction is presented as a real-time probability and is updated as new events are received from the Task Tracking module. Delays in tasks are aggregated to the project level such that a prediction can be made regarding whether or not a delay in completing a particular task may cause a corresponding delay in a corresponding project as a whole.

16) Skill Gap Identifier module: When the Project Likelihood Success Estimator module predicts that there is a high probability that a project will be delayed, then extra resources can be added to the project in order to overcome the expected delay and restore an ability to complete the project in accordance with its original schedule. However, there may remain a question regarding which resources are needed. By identifying the skills needed to complete the remaining tasks based on input received from the Skill Estimator module, the Skill Gap Identifier module determines which resources may be most useful for addressing a particular situation, and then developers with those skills can be assigned from other projects in order to help. As a result, the overall fungibility of resources is increased.

Accordingly, with this technology, an optimized process for using artificial intelligence techniques to increase efficiency in task management and to improve understanding and compliance with task requirements is provided.