SYSTEM, METHODS, AND COMPUTER PROGRAM PRODUCTS FOR CONTEXTUAL COLLABORATIVE UPDATES FOR RECURRING MEETINGS

A method of informing a first entity of an activity of a second entity. The activity of the second entity during a period between a first time and a second time is tracked, the period between the first time and the second time being between a time of a first meeting and a time of a second meeting. The activity includes a change made by the second entity that is associated with a task, and the tracking is performed by a processor of a computer system. The first entity is informed of the activity of the second entity based on the tracking.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The following detailed description describes various features and functions of the disclosed systems, methods and computer program products with reference to the accompanying figures. In the figures, similar systems typically identify similar components, unless context dictates otherwise. The illustrative systems, methods and computer program products are not meant to be limiting. That is, it will be readily understood that certain aspects of the disclosed systems, methods, and computer program products can be arranged and combined in a wide variety of different configurations, all of which are contemplated herein.

Incidentally, various components described below and shown in the drawings as being functional blocks which perform various processes can be implemented in terms of hardware by a processor, a memory, or other circuits or implemented in terms of software by a program or the like recorded or loaded in memory. Thus, as will be understood by those skilled in the art, the functional blocks can be implemented by hardware alone, software alone, or a combination thereof, and are not restricted to any one of them. Also, for ease of understanding, only those components which are needed in order to describe the technique according to the present invention are illustrated in the drawings.

FIG. 1shows an exemplary embodiment100of the present invention for informing one entity of another entity's activity as it relates to a task. At step110, a meeting N is set and tasks are assigned to one or more entities at step120. N is equal to 1 for the first meeting. At step130, information is continually gathered, recorded, and associated with an activity of an entity and a corresponding task.

For example, assume a first task is assigned to a first entity at step120. The activity of the first entity is tracked at step130and associated with the first task. The information related to the activity of the first entity as it relates to the first task can be automatically updated to reflect the activity of the first entity since meeting N.

According to this feature, the entities do not need to manually track everything they have done since the previous meeting. Rather, their activities are dynamically monitored and updated based on their tracked activities.

The tracking at step130can be performed using any known method of tracking one's activity. For example, any known contextual collaborative tool can be used. Some exemplary embodiments of the present invention use Rational Team Concert ® by IBM®.

This RTC contextual collaborative tool monitors whether files have been updated and, if so, such changed files are marked as a pending change. The developer can then check on their changes, discard the changes, or deliver the changes. There typically is a dashboard associated with different work items and change sets that allow users to see all the changes that were delivered by all of the developers on the team.

It is noted, however, that the RTC (Rational Team Concert®) tool is only one specific example of a contextual collaborative tool that could be used to implement concepts of the present invention, and the present inventors do not intend that the present invention is limited to specific contextual collaborative tools.

In the context of the present invention, a “contextual collaborative tool” is any of various tools that implement cooperative software that interconnects relevant applications such as word processors, instant messaging, calendars, groupware, etc., into a unified user interface to enhance collaboration. There are various such contextual collaborative tools currently available from such venders as IBM®, Microsoft®, Novell®, Lotus®, and Oracle ®. Thus, in an exemplary aspect, the present invention can be viewed as applying any of these contextual collaborative tools into the application of tracking activities between meetings, such as development meetings and more than one such contextual collaborative tool could be used, once the concepts of the present invention are understood.

At step140, each of the entities is informed of the other entities' activities since the last meeting N. The entities can be informed via an update to a calendar meeting, a report, a shared file, etc., and this information can be added immediately before a next scheduled meeting, a certain amount of time before the next scheduled meeting, as the information is gathered (e.g., in real-time), etc.

In some exemplary embodiments, the entities can edit, approve, and annotate, add information regarding open questions and issues they may have, etc., the information associated with the activity (or list thereof) that is associated with them before their activities are shared with the other entities.

For example and in continuation of the above example, the first activity of the first entity is reported to the other entities at step140. In some embodiments, the first entity can edit, approve, and annotate, add information regarding open questions and issues they may have, etc., the information relating to the first activity before sharing it with the other entities. Similarly, these changes can be given to the entity that made them before a meeting.

According to this feature, each entity can be given a brief summary (e.g., a cheat sheet) to remind them about open issues or questions they may have had regarding the work they have performed since the last meeting. Similarly, this brief summary can be given to the other members of the group to inform them of the same.

Similarly, this feature allows the other entities to be provided with a summary of what each of the entities has done since the previous meeting. As a result, when compared with conventional technology, the entities may be more easily able to follow along during a fast paced and information intensive meeting.

At step150, a determination of whether all tasks are complete is made. If this determination is in the affirmative, then the process ends. If this determination is in the negative, then another meeting is held and the aforementioned process is repeated.

The tracked activity of the entities may be recorded and stored for a member's account. The activity stored in the member's account may be reset, deleted, built upon for the next meeting, archived, etc. after each meeting.

In some exemplary embodiments of the present invention, each entity can manually specify which applications/activities they wish to have tracked. In other embodiments, a moderator specifies the applications/activities they wish to track for each entity. In still other embodiments, one or more activities of the entities are automatically tracked. The activities may include, but are not limited to, development tasks, team deliverables, presentation activities, meeting activities, activity within a team area, etc.

For example, development task activities may include actual code lines that where modified (e.g., changed, added, deleted), a summary of code modified (e.g., changed 10 lines, added 100 new lines, deleted 5 lines, added 3 files, etc.), etc. The team deliverable activities may include, for example, work items, change sets, stories, defects, tasks, action items, goals, etc. The presentation activities may include, for example, activities needing presentation software. The meeting activities may include activities based on a user's calendar, etc. The activity within the team areas may include comments, descriptions added, conversations related to work items, etc.

Referring now toFIG. 2, the activities of one or more entities are tracked at step210prior to the first meeting at step230, where N=1. At step220, each entity is informed of the activity of the one or more entities being tracked prior to the first meeting. This tracking and informing are performed in a same or similar manner to that discussed above. Therefore, a duplicative discussion during the meeting can be avoided or reduced.

At step240, new task(s), if any, are added to the task(s) that are being tracked. At step250, it is determined if each of the one or more task(s) is complete. If they are complete, then the process is ended. On the other hand, if they are not complete, then N is incremented by 1 (e.g., a reoccurring meeting is set) and the process is repeated.

This exemplary embodiment allows an initial task or tasks to be delegated to the entities before the first meeting and also allows each entity to be informed of the activities of the other entities before the first meeting. As a result, when compared with conventional technology, each entity can more easily follow along during the initial meeting.

Referring now toFIG. 3, one or more activities of one or more entities are tracked at step310. The tasks can be identified when the project is set up and can by dynamically updated by, for example, a moderator or any of the entities. A task is associated with an activity of an entity that affects the task. The activity affecting the task is tracked. As explained above, any tool known in the art can be used to track the activity of an entity.

Based on the tracked activity of step310, the progress of the task is dynamically updated, at step320. In some exemplary embodiments, the progress of the task is programmatically updated based on a comparison of the progress of the task when the tracking of the activity begins and the progress of the task when the tracking ends. In other exemplary embodiments, the progress of the task is updated in real time as the entity engages in activities and a comparison of the progress of the task when the tracking begins is made with the real time progress.

The progress of a task can be ascertained by, for example, setting one or more milestones (e.g., add 10 lines of code, make code 10% more efficient, make code compliant with an industry regulation, etc.) and determining whether the milestones have been achieved based on the aforementioned comparison.

At step330, one or more other entities are informed of the progress of each task based on the one or more activities of the one or more entities associated with the task. Similar to the discussion above, each tracked entity can edit, approve, annotate, add information regarding open questions and issues they may have, etc., before the other entities are information of the progress of a task associated with that entity.

Referring now toFIG. 4, an exemplary embodiment400of the present invention is depicted, which adds the feature of reoccurring meetings if all the tasks are not complete. Specifically, at step420, a meeting called regarding the progress of the task. At step430, new tasks, if any, are added. At step440a determination is made as to whether all the tasks are complete. If they are then the process ends. If they are not all complete, then the reoccurring meeting continues and the activity then a same or substantially similar process to that discussed above with respect toFIG. 3is repeated.

Referring now toFIG. 5, an exemplary system500for performing the processes of the aforementioned embodiments is shown. A storage unit501stores information. The storage unit501may be integrated into the system as software, as a circuit, or as a combination thereof.

The information stored on the storage unit501includes information regarding the activity of each entity, as well as information regarding one or more tasks having been set. The one or more tasks may be set in, for example, a meeting, and the meeting may be a reoccurring meeting. Similarly, the one or more tasks may be set prior to (or after) the aforementioned meeting. If the meeting is a reoccurring meeting new tasks may be added as needed.

An activity extracting unit510may extract the activity of each entity from the storage unit501. The activity extracting unit510may be integrated into the system as software, as a circuit, or as a combination thereof.

A task extracting unit520extracts the tasks from the storage unit500. The task extracting unit520may be integrated into the system as software, as a circuit, or as a combination thereof.

An activity/task association unit530associates the activity of each entity having been extracted by the activity extracting unit510with the task(s) having been extracted by the task extracting unit520.

For example, if a first activity and a second activity of a first entity advance a level of progress of a first task and a second task, respectively, then the activity/task association unit530associates the first activity with the first task and the second activity with the second task. If a third activity of a second entity is blocking the first entity from engaging in a fourth activity, then the activity/task association unit530associates the third activity with the fourth activity by indicating that the fourth activity is being blocked by the third activity. If a third task is being blocked by the second task, then the activity/task association unit530associates the third task with the second task by indicating that the third task is being blocked by the second task.

Further, if, for example, the first activity of the first entity includes modifying code relating to the first task, then the activity/task association unit530dynamically records which lines of code were modified. Of course the same holds true if the code is added to, deleted, annotated, etc. That is, any change (activity) made by the first entity that is associated with one or more tasks that are related to the change or activity is dynamically recorded by the task association unit530. The recorded information may be stored in a memory.

Based on the information having been associated in the activity/task association unit530, a report is generated by the report generation unit540. This report can include but is not limited to the actual changes (activity) of the entity, a summary of the changes (activity) made by the entity, a summary of annotations added by the entity, the actual annotations added by the entity, a summary of the questions comments the entity has, the actual questions comments the entity has, any combination thereof, etc.

The informing unit550sends the report having been generated by the report generation unit540to each of the entities. The report can be sent as one or more of an update to a calendar meeting (reoccurring or not), a shared file, a file including any actual changes the first entity made, a file including a summary of any actual changes the first entity made, a file including at least one of a comment made by the first entity regarding the task, a description of the task added by the first entity, documentation of a conversation related to the task, any combination thereof, etc. Similar to the discussion above, each entity can approve their information before it is sent to the other entities.

In some exemplary embodiments, the informing unit550pushes the report to a computer associated with each of the entities. In other exemplary embodiments, the informing unit550sends the report to the entities in response to a pull request.

According to these features of the present invention, entities are not required to manually track everything they have done since a previous meeting or up to an initial meeting. As a result each of the entities can become more productive by focusing on accomplishing their tasks, rather than noting every little change they make.

Similarly, the report generated by the report generation unit540can function as a “cheat sheet” to remind each entity of open issues/questions they may have about the work they have performed. Likewise, when compared with conventional technology, the present inventors have recognized that the report allows others more easily follow along during meetings (especially during fast paced and information intensive meetings).

FIG. 6illustrates a typical hardware configuration600which may be used for implementing the inventive cursor control system and method of controlling a cursor. The configuration has preferably at least one processor or central processing unit (CPU)610. The CPUs610are interconnected via a system bus612to a random access memory (RAM)614, read-only memory (ROM)616, input/output (I/O) adapter618(for connecting peripheral devices such as disk units621and tape drives640to the bus612), user interface adapter622(for connecting a keyboard624, mouse626, speaker628, microphone632, and/or other user interface device to the bus612), a communication adapter634for connecting an information handling system to a data processing network, the Internet, an Intranet, a personal area network (PAN), etc., and a display adapter636for connecting the bus612to a display device638and/or printer639. Further, an automated reader/scanner641may be included. Such readers/scanners are commercially available from many sources.

In addition to the system described above, a different aspect of the invention includes a computer-implemented method for performing the above method. As an example, this method may be implemented in the particular environment discussed above.

Thus, this aspect of the present invention is directed to a programmed product, including storage media tangibly embodying a program of machine-readable instructions executable by a digital data processor to perform the above method.

Such a method may be implemented, for example, by operating the CPU610to execute a sequence of machine-readable instructions. These instructions may reside in various types of storage media.

Thus, this aspect of the present invention is directed to a programmed product, including storage media tangibly embodying a program of machine-readable instructions executable by a digital data processor incorporating the CPU610and hardware above, to perform the method of the invention.

This storage media may include, for example, a RAM contained within the CPU610, as represented by the fast-access storage for example. Alternatively, the instructions may be contained in another storage media, such as a magnetic data storage diskette700or compact disc702(FIG. 7), directly or indirectly accessible by the CPU610.

Whether contained in the computer server/CPU610, or elsewhere, the instructions may be stored on a variety of machine-readable data storage media, such as DASD storage (e.g., a conventional “hard drive” or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g., CD-ROM, WORM, DVD, digital optical tape, etc.), paper “punch” cards, or other suitable storage media. In an illustrative embodiment of the invention, the machine-readable instructions may comprise software object code, compiled from a language such as C, C++, etc.