Abstract:
A method and system for displaying and reporting project completion information of a large-scale project having a number of individual subprojects. A rollup agent is employed for acquiring project completion information from a number of subproject databases to provide overall project-wide display and reporting capabilities. The rollup agent collects and organizes the information, and stores it on a rollup database. The rollup agent also interacts with a user to select aspects of any subprojects to report or display. The rollup agent then creates and stores reports of the selected information, or displays the report interactively as a pop-up summary report or a spreadsheet format report to a user. A number of scheduled agents provide scheduled reporting at the subproject level. A number of on demand agents provides the interactive database view, pop-up reporting and spreadsheet reporting for each of the individual subprojects.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is related to pending U.S. patent application entitled “METHOD AND SYSTEM FOR ENTERPRISE-WIDE MIGRATION” Ser. No. 10/728,520; filed Dec. 4, 2003, and hereby incorporates paragraphs [0014] through [0032] of such application by reference as if it were set forth in its entirety herein. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Technical Field  
         [0003]     The present invention relates to a system for project management, and more specifically, for a project management system for displaying and reporting completion status and overall performance of a project.  
         [0004]     2. Related Art  
         [0005]     In business, it is common to upgrade communications, information technology, and other systems on a large-scale basis. These systems typically employ a number of differing types of individual units in which the electronic hardware, software, or associated equipment must be replaced, updated, or have components added to them to change (“migrate”) them to the new configuration. This migration involved differing processes and equipment to convert each of the different types of units. These projects may be implemented company-wide over many locations globally. It can become a large task to keep track of the overall progress of a project due to its complexity.  
         [0006]     There have been some prior art devices which display project progress, but are not able to handle large multifaceted projects. There also have been systems which provide so much information that they are not readily understandable.  
         [0007]     Currently, there currently is a need for a project reporting system capable of calculating and displaying project completion information for a large-scale project in an organized, understandable manner.  
       SUMMARY OF THE INVENTION  
       [0008]     The present invention is a project reporting tool for reporting the progress of a large-scale project.  
         [0009]     It employs a project reporting tool, comprising a number of subproject databases (DBs) for storing project completion information, a rollup database for storing information from the plurality of the subproject DBs, a plurality of scheduled agents, and a rollup agent. The scheduled agents a) acquire project completion information from the subproject DBs b) automatically generate subproject reports; c) display the acquired project completion information in a database view format.  
         [0010]     The rollup agent is adapted to a) acquire project completion information from the plurality of subproject DBs, b) update the rollup database with the project completion information from the plurality of subproject DBs, c) automatically generate project-wide reports from the rollup database, and d) display the project completion information from the plurality of subproject DBs in a database view format.  
         [0011]     The present invention may be implemented as a method of reporting project completion information executing the steps of: a) acquiring project completion information from a plurality of subproject databases (DBs); b) automatically generating subproject reports from the acquired project completion information; c) displaying the acquired project completion information in a database view format; d) updating a rollup database with extracted project completion information that has been extracted from the plurality of subproject DBs; e) automatically generating project-wide reports from the extracted project completion information; and f) displaying the extracted project completion information in a database view format.  
         [0012]     The present invention may also be implemented as a computer program product, comprising a computer usable medium having computer readable program code embodied therein for displaying and reporting project completion information, said computer readable program code including an algorithm adapted to a) acquire project completion information from subproject databases; b) automatically generate subproject reports from the acquired project completion information; c) display the acquired project completion information in a database view format; d) update a rollup database with project completion information from a plurality of subproject databases; e) automatically generate project-wide reports from the project completion information; and f) display the project completion information in a database view format.  
         [0013]     The present invention overcomes at least one disadvantage of the prior art, by providing a system that can display and report project-wide information in an organized, understandable manner. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0014]      FIG. 1  illustrates a block diagram of the major portions of a system according to the present invention.  
         [0015]      FIG. 2  is a simplified block diagram of a computer system capable of implementing the present invention.  
         [0016]      FIGS. 3 and 4  together are a flowchart showing the functioning of the rollup agent and the scheduled agent of the present invention.  
         [0017]      FIG. 5  is an illustration of the display of the present invention showing a database view of the project completion information.  
         [0018]      FIG. 6  shows a pop-up summary format report generated by the present invention.  
         [0019]      FIG. 7  is a display of a sample spreadsheet format report generated according to the present invention.  
         [0020]      FIG. 8  is another illustration of the display of the present invention showing a database view showing a screen input object.  
         [0021]      FIG. 9  is a flowchart illustrating the functioning of scheduled agents according to the present invention.  
         [0022]      FIG. 10  is a flowchart illustrating the functioning of rollup agent functioning in its scheduled mode according to the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0023]     There are known criteria to measure progress of a large scale project, such as a migration. One specific measure of the project&#39;s progress is through the use of earned value (EV) measurements. This takes into account the value of the work completed with a reference to the value of the work originally planned.  
         [0024]     Since the invention may be more clearly understood through a description of a specific embodiment, the remainder of the specification describes the present invention as applied to a large scale company-wide Ethernet migration, as an example.  
         [0025]      FIG. 1  shows a simplified block diagram of the present invention  100 . Information regarding the migration project is stored on a plurality of subproject databases (DB)  101   a ,  101   b ,  101   c  . . . or  101   n . The subproject DBs are collectively referred to as “subproject Dbs  101 ”. The subproject DBs  101  physically may be located together, or they may be distributed at any number of locations and connected through an appropriate wired or wireless network.  
         [0026]     These subproject DBs are updated with project completion information relating to a migration project preferably by a project manager of the team responsible for the project. Each project manager updates their appropriate subproject DB, populating it with information specific to their section of the project stored on subproject DB  101  as per the application referenced in “Cross Reference to Related Applications” above, of which a portion has been incorporated by reference here.  
         [0027]     For the embodiment described here, information stored on the subproject DBs may include one or more of the following: project numbers, sites to migrate, building to migrate, total number of seats to migrate, total number of ports to migrate, total number of printers to migrate, total seats migrated, total ports migrated, total printers migrated, seats requiring migration, ports requiring migration, printers requiring migration, execution dates when each unit has been migrated, project planning information regarding timetables, milestones, resource estimates, estimates of equipment needed, financial, budget, and other migration project information.  
         [0028]     This information is organized in a hierarchical structure having a plurality of hierarchy levels each having a plurality of entries. Each of these entries is broken down into information separated into a number of entries and a lower hierarchical level. Each of these entries is in turn broken down into a number of entries until one reaches an individual record which contains information about a single unit being migrated.  
         [0029]     One or more of the scheduled agents  111  has been initialized with a set of predetermined execution date rules. The execution date rules identify dates ranges of the project, or projects, which are of interest for display or reporting.  
         [0030]     Scheduled agent  111  is also initialized with an activation schedule in which scheduled agent  111  will periodically be activated. Scheduled agent  111  has also been initialized with project definition rules identifying aspects of project DB  101  on which to report. When scheduled, scheduled agent accesses the proper portions of the database according to the execution date rules and project definition rules. It then calculates project completion summaries for entries of the database as per the project definition rules. It may also compare the actual project completion information in a form such as earned value (EV) measurement, and stores these in a report for later use.  
         [0031]     A user  115  interacts with one or more of the on demand agents  113  to indicate aspects of one or more projects on subproject DBs  101   a ,  101   b ,  101   c  . . .  101   n  to identify execution date rules and project definition rules. The project definition rules identify what aspects of the project should be displayed or reported. These may include data relating to specific sites, buildings, locations, types of units migrated. These are displayed with their associated project completion information, such as EV. This is described in more detail in connection with the description of the other figures.  
         [0032]     The system further comprises an overall rollup database  117  which is capable of storing the project completion information from all subproject DBs in array  101 . This database may be at the same location as one or more of subproject DBs  101 , or at a different, remote location. If remote, it may be connected via an appropriate network.  
         [0033]     A rollup agent  119  may be run on the same processor as the scheduled agent  111  and/or on demand agent  113 , or run on a different processor. This processor may be located in the same location of the rollup agent, or be connected via a network to rollup database  117 . The rollup agent is a scheduled agent that has been initialized with the predetermined execution date rules. When activated, rollup agent  119 , functions to update rollup database  117  with information from all subproject DBs  101   a ,  101   b ,  101   c  . . .  101   n  to produce one complete set of project information. Even though each of subproject DBs  101   a ,  101   b ,  101   c  . . .  101   n  is constantly being updated, rollup database  117  is current as of its last execution date.  
         [0034]     Rollup agent  119  uses the information acquired to create a database view in a very similar manner to that of the on demand agents  113  of  FIG. 1 . Since the rollup database has one additional hierarchy level, corresponding to the subproject entries, this database view will display one additional hierarchy level than the database view of on demand agents  113 .  
         [0035]     Rollup agent  119  may also create project-wide reports and store them in rollup database  117 .  
         [0036]      FIG. 2  shows a schematic block diagram of a general-purpose computer for practicing the present invention.  
         [0037]     Generally, the functions of all of the agents, the databases, or active elements of  FIG. 1 , including novel methods performed by the present invention described herein, may be practiced on one or more general-purpose computers  200 ,  200   a . Wherein the methods may be coded as a set of machine-readable instructions and stored on removable or hard disk media for use by the general-purpose computer.  FIG. 2  is a schematic block diagram of a general-purpose computer for practicing the present invention. In  FIG. 2 , a computer system  200  has at least one microprocessor or central processing unit (CPU)  205 . CPU  205  is interconnected via a system bus  210  to a random access memory (RAM)  215 , a read-only memory (ROM)  220 , an input/output (I/O) adapter  225  for communicating with a removable data and/or program storage device  230  and a mass data and/or program storage devices  235 ,  237 . These mass storage devices will store the information from subproject DBs  101  and rollup database  117 , respectively ( FIG. 1 ). It is also connected to a user interface adapter  240  for connecting a keyboard  245  and a mouse  250 , a port adapter  255  for connecting a data port  260  such as a network interface adapter (NIC) and a display adapter  265  for connecting a display device  270 . The NIC may be used to connect to remote databases and computers.  
         [0038]     ROM  220  contains basic operating system instructions for computer system  200 . The operating system may alternatively reside in RAM  215  or elsewhere as is known in the art. Examples of removable data and/or program storage device  230  include magnetic media such as floppy drives and tape drives and optical media such as CD ROM drives. Examples of mass data and/or program storage devices  235 ,  237  include one or more hard disk drives and nonvolatile memory such as flash memory. These may be local or remote, directly connected, or connected through a network. In addition to keyboard  245  and mouse  250 , other user input devices such as trackballs, writing tablets, pressure pads, microphones, light pens and position-sensing screen displays may be connected to user interface  240 . Examples of display devices include cathode-ray tubes (CRT), plasma displays and liquid crystal displays (LCD).  
         [0039]     A computer program may be created by one of ordinary skill in the art and stored on the system or a data and/or program storage device  230 , or fed into the computer through a data port  260  and executed to practice the present invention.  
         [0040]     It is also possible to have one or more other computers  200   a  linked to share, and or all of the resources of computer  200 .  
         [0041]     While  FIG. 2  shows the computer system  200  as a particular configuration of hardware and software, any configuration of hardware and software, as would be known to a person of ordinary skill in the art, may be utilized for the purposes stated above in conjunction with the use of computer system  200  of  FIG. 2 .  
         [0042]     In  FIGS. 3 and 4  together show a simplified flow chart of the functioning of on demand agents  113  ( FIG. 1 ), and rollup agent  119 . At a local site a user  115  interacts with on demand agent  113  to define portions of the subproject DB in which they are interested in viewing in steps  301  and  303 . In step  301 , execution date rules are interactively defined indicating the dates of interest in the subproject DBs. These may include dates of migration of various units at different sites or buildings. In Step  303  user  115  identifies aspects of the project which user  115  would like to have displayed or on which user  115  would like report to be generated.  
         [0043]     The database view is displayed in  FIG. 3 , step  305 . Once this has been displayed to user  115  ( FIG. 1 ), the system determines if user  115  has selected a preview pop-up button in step  307 . If the preview pop-up button is selected, the answer is “yes” and processing continues at step  311 . If the answer is “no”, processing continues at step  309 .  
         [0044]     In step  311 , on demand agent  113  ( FIG. 1 ) extracts project completion information from subproject DBs  101  fitting the project definition and execution date rules identified by the user  115 .  
         [0045]     The extracted project completion information is then used to set up a temporary datapoint document in step  313 .  
         [0046]     In step  315  this temporary datapoint document is displayed as a pop-up dialog box.  
         [0047]     In step  317 , these pop-up summaries of reports may be calculated for a plurality of projects or subprojects identified in the project definition rules.  
         [0048]     If the preview pop-up button is not selected in step  307 , then in step  309  it is determined if a report button has been selected. If the preview pop-up button has not been selected, (“no”), then processing continues at step  301 , if “yes”, it has been selected, processing continues at step  401  of  FIG. 4 .  
         [0049]     In step  401  of  FIG. 4 , on demand agent  113  ( FIG. 1 ) then acquires project completion information from the subproject DBs  101 .  
         [0050]     In step  403 , a report is generated from the acquired data to identify the project completion status. These, preferably, are created in a typical spreadsheet format. In step  405 , it is determined if the report already exists. If an old report does exist, the answer is “yes”, and processing continues at step  407 . If the answer if “no”, then step  409  is executed without executing step  407 . In step  407 , the old report is deleted. In step  409 , the newly created report is saved in one of subproject DBs  101  ( FIG. 1 ).  
         [0051]     The on demand agents  113  ( FIG. 1 ) and scheduled agents  111  only report on the subproject information and do not have the capability for project-wide reporting. Rollup agent  119  has that capability. Once rollup agent  119  has gathered the data from all of the subproject DBs  101 , rollup agent  119  can now put together a view very similar to the on demand agents  113 , but for the entire project. Therefore, rollup agent  119  performs the same steps specified above in  FIGS. 3-4 , but performs them on the rollup database  117 .  
         [0052]     This results in a database view having an additional hierarchy level over that of the individual subproject DBs, as shown in  FIG. 5 .  
         [0053]      FIG. 5  is an illustration of the display of the present invention, or a “screen shot” showing a database view of the project completion information accumulated from subproject DBs  101   a ,  101   b ,  101   c  . . .  101   n  ( FIG. 1 ) and stored in rollup DB  117 .  
         [0054]     On the left of this database view is a first pane  501 , with a second pane  503  shown on the right. The information in the right pane shows the next lower level of the hierarchical data of the item highlighted in the left pane, “15.01 P T D. All Physical Inventory”. A project administrator  121  ( FIG. 1 ) at a computer highlights an item by navigating a cursor on the display device  270  ( FIG. 2 ) to the item and then clicking mouse  250 . As soon as administrator  121  ( FIG. 1 ) selects an item, the entries of the next lower hierarchical level are displayed in another pane.  
         [0055]     In the left pane  501  of  FIG. 5 , there is an input object, such as an ‘expand’ button  505  associated with each of the items. When administrator  121  clicks on an expand button  505 , the entries of the next lower level appear below it in an indented form, as shown here. Since this is a toggle button, clicking on the expand button again causes items of the next lower level to disappear from the display. Expand buttons  505  may appear in any of the panes for items having a lower hierarchical level beneath them.  
         [0056]     Even though this database view is being described with reference to two panes, any number of panes may be used.  
         [0057]     In pane  503  (and other subsequent panes), items are listed vertically below each other with column headings  511  running from left to right indicating information common to the items shown. In this embodiment, three projects are shown indicating the number of computers in the project, the number that have been migrated, and the number that have been migrated with other migration information.  
         [0058]     A user may select items on the database view to define aspects of the database to view. These will be used as the project definition rules. Rollup agent  119  ( FIG. 1 ) employs the project definition rules and execution date rules which will be used to select data from rollup DB  117  for rollup agent  119 . (A similar method will be used for on demand agents  113  to select data from subproject DBs  101 .)  
         [0059]     A pop-up button is shown as “Preview Earned Value Measurements” button  509 . When activated it produces a pop-up dialog box as shown as overlay window  601  in  FIG. 6 . This was described in connection with steps  311  through  317  ( FIG. 3 ).  
         [0060]     A report button  511  of  FIG. 5  is shown in this embodiment entitled “Generate Earned Value Report”. Activating this button causes a report to be generated as described in the steps of  FIG. 4 .  
         [0061]      FIG. 7  shows a sample spreadsheet format report generated according to  FIG. 4 .  
         [0062]      FIG. 8  is an illustration of a database view of rollup database  117  ( FIG. 1 ), wherein another input button  801  is displayed entitled “Earned Value Execution Dates”. A user selects this button to interactively determine the execution date rules. Any of a number of known methods may be used to set these rules.  
         [0063]      FIG. 9  is a flowchart illustrating the functioning of one of the schedule agents  113  ( FIG. 1 ). Scheduled agent  113  ( FIG. 1 ) has been previously initialized with execution date rules in step  901 , project definition rules in step  903  and an activation schedule in step  905 .  
         [0064]     In step  907 , scheduled agent  113  ( FIG. 1 ) reads its date execution rules and compares them with the current date and time to determine if it is time to run a report. When the time and date match one of the scheduled times and dates stored in the activation schedule, the answer is “yes” and the scheduled agent is activated and begins to perform steps  909  through  919 . If the answer is “no”, then step  907  is repeated.  
         [0065]     In step  909 , scheduled agent  113  acquires data from subproject DBs  101  ( FIG. 1 ).  
         [0066]     In step  911 , scheduled agent  113  generates a report based upon the acquired data.  
         [0067]     In step  913 , scheduled agent  113  ( FIG. 1 ) determines if there is an old report for the same execution dates and project definition. If so the answer is “yes” and the report is deleted in step  915 . If the answer is “no”, processing continues at step  917 . In step  917 , scheduled agent  113  saves the new report.  
         [0068]      FIG. 10  is a flowchart illustrating the functioning of rollup agent  119  ( FIG. 1 ) in its scheduled mode. Rollup agent  119  may also operate in a scheduled mode, similar to scheduled agents  111 , and perform many steps similar to that of scheduled agents  113 , but performs them on the project-wide rollup database  117 .  
         [0069]     Rollup agent  119  ( FIG. 1 ) has been previously initialized with execution date rules in step  1001 , project definition rules in step  1003  and an activation schedule in step  1005 .  
         [0070]     In step  1007 , rollup agent  113  ( FIG. 1 ) reads its date execution rules and compares them with the current date and time to determine if it is time to run a report. When the time and date match one of the scheduled times and dates stored in the activation schedule, the answer is “yes” and the rollup agent is activated and begins to perform steps  1009  through  1019 . If the answer is “no”, then step  1007  is repeated.  
         [0071]     In step  1009 , rollup agent  119  ( FIG. 1 ) acquires data from rollup database  117 .  
         [0072]     In step  1011 , rollup agent  119  ( FIG. 1 ) generates a report based upon the acquired data.  
         [0073]     In step  1013 , rollup agent  119  ( FIG. 1 ) determines if there is an old report for the same execution dates and project definition. If “yes”, it deletes the old report in step  915  and saves the new report in step  917 . If “no”, processing continues at step  917  without performing step  915 .  
         [0074]     While embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art.  
         [0075]     Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.