P C - P r o j e c t User Manual by Zack Urlocker Copyright 1988 The Whitewater Group 906 University Place Evanston, IL 60201 USA (312)491-2370 All rights reserved Table of Contents Chapter 1 - Getting Started...............................2 1.0 How to use this manual................................2 1.1 Introduction to PC-Project............................2 1.2 PC-Project features...................................2 1.3 Files on disk.........................................3 1.4 PC-Project installation...............................3 1.5 Installed files.......................................4 1.6 Windows installation..................................4 1.7 Starting PC-Project...................................4 1.8 Suggestions...........................................5 1.9 About Actor...........................................5 Chapter 2 - Using PC-Project..............................6 2.1 An overview of project management.....................6 2.2 Creating a project with PC-Project....................7 2.3 Overriding the calculated early start and late finish.9 2.4 Saving and loading projects...........................9 2.5 Other views of the project............................9 2.6 Assigning costs.......................................10 2.7 Estimating task time with PERT........................11 2.8 The Options menu......................................11 2.9 Tips for managing a project...........................11 2.10 Command reference....................................12 Chapter 3 - Examining the Source Code.....................13 3.1 Introduction..........................................13 3.2 If you don't have Actor...............................13 3.3 If you have Actor.....................................14 3.4 Learning more.........................................15 PC-Project User Manual 1 Chapter 1 - Getting Started 1.0 How to use this manual This manual is divided into three chapters: Getting Started, Using PC-Project and Exploring the Source Code. All users should read chapter 1 for an overview of PC-Project and installation instructions. For details on managing projects with PC-Project read chapter two. If you are interested in exploring how PC-Project works you should read chapter three. 1.1 Introduction to PC-Project PC-Project is a complete critical path project management application that runs under Microsoft Windows. PC-Project is written entirely in Actor, an object-oriented programming language for Microsoft Windows. Complete source code is included. PC-Project is freely distributed for non-commercial use as an example Windows program. If any files are missing from the version you have or if you'd like to get the latest version, you can order it directly from me at The Whitewater Group at the address given below. There is a nominal charge of $5.00 to the U.S. and $10 elsewhere. 1.2 PC-Project features PC-Project is a full-featured project management system. It can be used to plan and monitor almost any type of project. Features include the following: --Easy to use pulldown menus and graphical user interface. --Full mouse and keyboard interface. --Can optionally use Lotus 1-2-3 style commands. --Can view a project as a PERT (network) diagram, a Gantt chart, a list of activities or a list of resources. --Automatically recalculates the critical path of a project using CPM or PERT algorithms. --Can allocate costs to tasks using either fixed costs or by assigning resources with a fixed and/or variable cost component. --PC-Project can use LIM 3.2 expanded memory if available. --Full source code included. PC-Project User Manual 2 1.3 Files on disk The files on this disk are: READPROJ.TXT -A "readme" file of quick instructions INSTALL.BAT -Installation program ZOO.EXE -Zoo compression utility program. PROJECT.ZOO -A compressed file that contains PC-Project (The ZOO file also contains the READPROJ.TXT and INSTALL.BAT file for easy electronic distribution.) 1.4 PC-Project installation If you received this disk directly from the Whitewater Group, there is an INSTALL.BAT program on the disk. To install type: A: INSTALL A: C: C:\ACTOR If you downloaded this program from a bulletin board system, then follow these instructions. You will need the ZOO.EXE utility which should be available on the BBS also. If you don't have Actor make 4 subdirectories as shown below: MD ACTOR CD ACTOR MD CLASSES MD ACT MD RES Then install the application and the source code by typing CD ACTOR ZOO x/ PROJECT.ZOO Zoo works like ARC but is public domain. Use the command ZOO h for help. PC-Project User Manual 3 1.5 Installed files During the installation process the following files will be created on your hard disk. PMANUAL.TXT -This file PDESIGN.TXT -A text file describing the design of PC-Project PROJECT.EXE -Executable PC-Project program file PROJECT.IMA -Sealed off image file required to run above *.PRJ -Various test files If you installed the source code, the following files will also be found: PROJ.LOD -A "load file" used if you have Actor PROJSEAL.LOD -A "load file" to seal off the application PROJ.H -Header file of constant definitions CLASSES\*.CLS -Source code to the classes of PC-Project ACT\*.ACT -Miscelaneous Actor source code methods RES\*.* -Resource script files and project icon file FIX_LE.ACT -Fixes to Language Extensions I upto V.1.2 1.6 Windows installation If you need to create large projects and ever get the error message "Out of dynamic memory" or "Not enough memory to run" add a new section to the WIN.INI file: [PC-Project] Dynamic=25 By default, the project manager uses 25K of Dynamic memory; if you need more (or less) just set it as shown above. If you have expanded memory, (LIM 3.2 or later) you should include the flag EMS3.2=1 in the [PC-Project] section so that the object table will be stored in EMS saving 64K of memory. Note, if you modify the resources in PROJECT.EXE, be sure to use the -L flag when you resource compile. 1.7 Starting PC-Project PC-Project requires Microsoft Windows 2.x. To start PC-Project start Windows and then double click on the PROJECT.EXE file. DON'T click on the PROJECT.IMA file since this will try to run Actor and you may not have the resources installed in your ACTOR.EXE file. You can run PC-Project directly from the DOS C> prompt by typing WIN PROJECT.EXE On some 80386 machines with older versions of Windows/386 it may be necessary to use the /N option, e.g. WIN386 /N PROJECT.EXE PC-Project User Manual 4 1.8 Suggestions Please let me know if there are any bugs or suggestions by sending mail to The Whitewater Group at the address below. Because PC-Project is distributed free of charge, I cannot provide technical support beyond answering questions by mail. 1.9 About Actor Actor is an object-oriented programming language for Microsoft Windows. Actor is a complete development system capable of creating standalone MS-Windows applications. No licensing fees are required to distribute applications written in Actor. For more information about Actor contact: The Whitewater Group 906 University Place Evanston, IL 60201 USA 312-491-2370 PC-Project User Manual 5 Chapter 2 - Using PC-Project 2.1 An overview of project management Project management techniques can be used to plan any "project" that has a start, a finish and some known steps or activities in between. Examples of projects include: developing software; writing a book; hosting a dinner party and so on. In order to manage a project you must know all of the activities involved in getting from the start to the end. The objective of project management is to create a schedule for the project that indicates when each activity needs to start (and finish) in order for the project to be completed in the shortest time possible. The total project time is the total time of all activities on the "critical path". If an activity is on the critical path, it means that any delay in its time will cause a delay in the entire project. Thus an important part of project management is to determine which activities are critical, and then focus our attention on making sure that these activities are completed in the allotted time. Activities which are not critical have "slack" time. An example project might be moving into a house. We can list some of the tasks and the times required. --Buy the house (7 days) --Move in (4 days) --Paint it (2 days) --Carpet it (5 days) --Furnish it (14 days). Some of these tasks must be done before others. For example, we must buy a house before we can move in. Also, we should paint before we carpet. Other tasks have no such dependency and can be done in parallel. For example, painting and carpeting are independant of furnishing. Our first step in managing the project would be to create a PERT (Project Evaluation and Review Techniques) chart. A PERT chart is a network diagram of the activities in the project and indicates the sequence of activities. A PERT chart for moving into a house might look like the following. 7 4 2 5 Start -> Buy -> Move -> Ready-> Paint-> Carpet-> End | | | 14 | -----> Furnish ------- PC-Project User Manual 6 Note that an additional activity was included called "Ready". The activities "Ready", "Start" and "End" are known as milestones. Milestones are activities that, unlike tasks, take no time or resources. Milestones are used to mark the start or end of significant tasks. We use the "Ready" milestone to indicate that we are ready to settle into our house and begin painting and furnishing. Although tasks can have only a single input and output, milestones can have several. Thus, you may have to introduce "dummy" milestones in a project to have different paths in a project. Note that "Furnish" is on the critical path since it's length (14 days) is greater than the total time for "Paint" and "Carpet" (7 days). The total time of the project is thus the time of all Tasks on the critical path which is 25 days (7+4+14). The "Paint" and "Carpet" tasks would have slack time of 7 days. Thus painting (or carpeting) could fall behind schedule by as much as 7 days before it would become critical and impact on the total project time. You can also determine the early start, early finish, late start and late finish times of any activity or of the project. Normally these are calculated to determine the critical path. For activities that are crtical the early times are the same as the late times. Sometimes you may wish to specify an overriding early start or late finish time. For example, you might set the early start day for "Start" to be 09/01/88, meaning that the project begins on that date. Conversely, you could set the late finish date for "End" to be 10/01/88 and then calculate all other dates based on this end date. You could also override the early start or late finish for any activity. This is useful if you know, for example, that painting is scheduled to begin work on a particular day. By using PC-Project the critical path, early start and late finish dates are automatically calculated. 2.2 Creating a project with PC-Project When PC-Project starts you will have an "empty" project with just "Start" and "End" milestones. The initial starting date of the project is 1/1/88. To begin a new project with a different date, select the menu item File New. You can select menu commands by clicking the mouse on File then on New, or if you prefer, by typing [Alt-F] and then N. (You can also use Lotus 1-2-3 style commands, e.g. / F N.) A dialog box will come up asking you the name of the project, a brief description of the project and the early start (ES) and PC-Project User Manual 7 late finish (LF) dates. Type "House" as the name of the project and enter the early start date "09/01/88". For most projects you will specify only the early start and let PC- Project calculate the late finish. You can move between the fields in the dialog box by clicking the mouse or by pressing [Tab] and [Shift-Tab]. When you are finished, click on the Ok button to accept the dates (or press [Enter]) or click on the Cancel button (or press [Esc]) to cancel. Next, you need to create and connect the activities of the project by using the New Milestone and New Task menu choices. Since the "Start" milestone is already created, you can begin by creating the "Buy" task. Select New Task from the menu. A dialog box will come up. For now, just type in the name of the task, "Buy", a description, the time, "7", and lastly, type in the input "Start". This means that "Buy" is connected to the "Start" activity. We'll let PC-Project calculate the early start and late finish for us and ignore costs and resources for now. So just click on the Ok button to accept this activity. If you followed the instructions the PERT diagram will now show the "Buy" task connected to the "Start" milestone. In PC-Project tasks are drawn as rectangles and milestones are drawn as rounded rectangles. By default, the early start date is displayed above each activity. You can then enter and connect the remaining activities. New Name Time Input Output --------------------------------------- Task Move 4 Buy Mstone Ready Move Task Paint 2 Ready Task Carpet 5 Paint End Task Furnish 14 Ready End PC-Project is "case sensitive" so that "Buy" is not the same as "buy" or "BUY". Type the names exactly as they appear above. Note that you must type in the Input field in order to connect an activity. If you make a mistake, you can click on the activity with the left mouse button or move the cursor and press [F2] or [Enter] to edit it. If you want to delete an activity, select the menu item Delete Activity. PC-Project will warn you if the activity is still connected. For tasks "Carpet" and "Furnish" you should also enter "End" as the output to hookup the last milestone. Whenever you set the Input of an activity it also sets the Output of the connected activity. For example, if you click on the "Start" milestone, you will see that it has as Output "Buy". When you finish connecting the activities the critical path should appear in bold. You can then experiment and try PC-Project User Manual 8 different "what if" scenarios. For example, click on the "Paint" task (or move the cursor and press [F2] or [Enter]) and change the time from 2 to 12. Then click on the Ok button. Notice that the critical path has been recalculated and is now different. Also, the early start time for "Carpet" is ten days later. In fact, the whole project has been delayed by a change in the time it takes to paint. Remember that tasks take time and resources but milestones do not. Also, tasks can only have a single input or output. Use milestones when you need to create different paths in the project. 2.3 Overriding the calculated early start and late finish You can specify an early start (ES) or late finish (LF) date for any activity. If you do, this will override what is calculated by PC-Project. For example, if you want the project to begin on day 12/31/87, set Start's ES to that date. If you want to see when things need to be done by if the project finishes on day 9/15/88, set End's LF to that date. All dates are entered in MM/DD/YY or MM/DD/YYYY format. Examples of valid dates include 09/15/88, 1/1/88, 9/01/1987. Examples of invalid dates are 31/09/88, 01/01, and so on. Setting early start and late finish is not recommended for activities in the project since it may introduce excess slack time and prevent the critical path from being found. To cancel an override date, you can delete the date in the ES or LF field of the dialog box. 2.4 Saving and loading projects You can save the current project to disk by using the File Save command or by pressing [Ctrl-S]. By default the extension .PRJ is used. PC-Project comes with several sample projects on disk. You can load these with the command File Open or by pressing [Ctrl-O]. PC-Project will warn you if you try to exit or load a new project without saving your old work. 2.5 Other views of the project The PERT diagram is useful for creating a project and seeing the relationships between activities. The View menu has choices that convey other information. Select the View Gantt menu item or press [F6] to see a Gantt chart. A new window will appear showing a timeline of the project. Tasks are dranw as bars with the critical time in black and slack time in gray. Milestones are drawn as diamonds since they don't take any time. The critical activities also have a "*" next to their names. You can edit activities from within the Gantt chart by PC-Project User Manual 9 clicking on them also. You can also press [F1] for a help screen. To close the Gantt chart double click on the "system box" in the upper left corner or press [Alt-F4]. The View Activities command ( or press [F4]) will give a list of all activities in the project with their name, time, slack, early start and late finish times. The View Project summary command (or press [F5]) will give a summary of the project showing the name, early and late start and finish dates, the total time, slack and costs. This command uses the same dialog box as the New File command and can be used to change the early start or late finish dates of the project. 2.6 Assigning costs You can assign costs to a project in two ways. The easiest way is to assign a fixed cost (in dollars) to each task. You can do this by filling in the Fixed Cost field when editing a task. The View Project summary command always shows the total cost of the project. A more sophisticated way of assigning costs is to use resources. Resources are people or objects that can have a fixed and/or variable cost associated with their use. Most resources have a variable cost. You can assign resources to a task by filling in the Resources field when editing a task. You don't need to create resources before using them. PC- Project will display a dialog box the first time a resource is used to allow you to set the costs. For example, click on the "Paint" activity. In the Resources field type "Fred Bob Paint". The resources should be separated by one or more spaces. When you click on the Ok button, a dialog box will come up for each of the new resources "Fred", "Bob" and "Paint". You can enter a fixed cost (FC), variable cost (VC), and maximum for each. For example, we would assign a variable cost for Fred of 50, meaning we pay him $50 per day. Since Bob is a friend of ours, we don't have to pay him anything, so just press [Enter] leaving the fields blank. Paint will cost us, say $500, regardless of how many days it takes to paint, so we would have a fixed cost and no variable cost. The maximum field can be used to indicate that a particular resource is only available for so many days. If the resource is overallocated, a "*" will appear next to it's name when you View All Resources (or press [F3]). The View All Resources command also shows where resources are used and how many days they are used for. PC-Project User Manual 10 If we assign Bob and Fred to another task, such as "Move", their fixed and variable costs will automatically be used to calculate the cost of the task and the total project cost. You can change the fixed or variable cost of a resource by using the View Resource command. This will change the rates and update all tasks that use the resource as well as the total project cost. You can also delete a resource with the Delete Resource command. PC-Project will warn you if the resource is still in use. PC-Project User Manual 11 2.7 Estimating task time with PERT Sometimes you may not know the exact time required to complete a task. You can create a PERTTask which estimates time based on the likely, best and worst case scenarios. When you need to create a task with an estimated time, select New PERTTask rather than New Task. Once you fill in the fields for likely, best and worst times, you can use a PERTTask just like a regular task. You can also freely mix PERTTasks with regular Tasks with known times. The file PERT.PRJ shows an example of a project with estimated times. 2.8 The Options menu The Options menu has several miscelaneous choices. For example, you can turn off automatic recalculation of the critical path. For large projects, this can speed up data entry so that you can make several changes and then recalculate the critical path by selecting Options Recalc or by pressing [F9]. You can also choose Options Display settings to view the late finish, slack, time, or cost for each activity. You can select to view something above and/or below each activity in the PERT diagram. By default the early start time is shown above each activity. However, you could change this to suit your own tastes, displaying perhaps the time on top and the cost below. 2.9 Tips for managing a project --List all of the tasks and milestones on paper first. --Remember, tasks can only have a single input and output. --Use milestones whenever splitting or joining is required. --Split lengthy tasks into smaller ones for flexibility. --If costing will be done, identify all resources. --Create a PERT diagram of the project from left to right. --Use a Gantt chart to see slack times. --Focus attention on tasks on the critical path. PC-Project User Manual 12 2.10 Command reference All menu commands can be executed by clicking with the mouse. Alternatively you can use the Alt key and the underlined letters to execute a command. For example, [Alt-F] selects the File menu. You can also use Lotus 1-2-3 style commands, e.g. / F S for File Save. Some menu items also have accelerator keys that directly execute the command. For example, [Ctrl-N] (shown as ^N) executes the File New command. Similarly [F9] recalculates the critical path. Press [Esc] to cancel a command. When a menu is not selected, the cursor keys will move the arrow cursor in the project window. This is handy if you don't have a mouse. Clicking the left mouse button on an activity or pressing [F2] or [Return] will edit the activity. Menu choice Key Description ---------------------------------------------------------- Help! F1 --Display help screen File New... ^N --Create a new project Open... ^O --Open an existing project Save ^S --Save the current project Save As... --Save with a new name Print ^P --Print the project About Actor --Information about Actor New Milestone --Create and connect a new Milestone Task --Create and connect a new Task PERTTask --Create a new Task with estimated time Delete Activity --Delete an existing Milestone or Task Resource --Delete an existing resource View A Resource --Edit a resources costs All Resources F3 --See where all resources are used Activities F4 --See all activities, costs, dates Project summary F5 --See project start, finish, cost, slack Gantt chart F6 --Open or close a Gantt chart timeline Options Display settings F7 --Select start, finish, cost, etc Auto recalc F8 --Automatically recalculate the project Recalc! F9 --Recalculate the critical path ShowRoom! F10 --Show how much memory Windows has PC-Project User Manual 13 Chapter 3 - Exploring the Source Code 3.1 Introduction This section gives a brief introduction to exploring the source code of PC-Project. This is not necessary in order to use PC- Project, but it can give you some insight into how programs are written in Actor. For more information about PC-Project's design read the file PDESIGN.TXT. 3.2 If you don't have Actor Actor source code is stored in plain ASCII text files and can be viewed in any text editor. Source code is stored in class files (*.CLS) in the CLASS directory and as Actor code files (*.ACT) in the ACT directory. There is also a header file (*.H) used for constant definitions. The resource scripts (*.RC) are in the RES directory. Class files contain all of the code for a particular class. For example, the file CLASSES\NETWORK.CLS defines all of the methods that objects of class Network understand. Each method definition is separated by two exclamation marks (!!) known as a "chunk mark". These are placed automatically in your code when you use the Actor development environment. Each class file also begins with an "inherit" message. An inherit statement such as inherit(Network, #Project, #(cost /* sum of all costs */ resources /* used by tasks */ autoCalc /* boolean is recalc on? */ ), 2, nil)!! means that a new ancestor of the existing class Network, called Project, is being created. Project includes three new instance variables: cost, resources and autoCalc. All of the methods defined for class Network as well as the instance variables, are then inherited by class Project. You will also see "now" messages in the .CLS and .ACT files. These are also automatically generated by the Actor environment and indicate the class for which methods are being defined. Actor code files (*.ACT) are used to hold miscelaneous methods. For example, PROJ.ACT contains method definitions added to system classes. The header file PROJ.H contains "#define" statements similar to what is used in C. The header file is used both by Actor and by the resource compiler. PC-Project User Manual 14 Actor source code should be quite understandable to anyone experienced with C or Pascal. Comments are within /* and */. Actor has if/else statements, loop/endLoop, select/case etc. 3.3 If you have Actor PC-Project has been tested with Actor 1.2 under Windows 2.03 and Windows/286 2.1. It should run correctly under Actor 1.1 also, but requires Windows 2.x. To run the application interactively from Actor, you will need to include the resources used by the application into ACTOR.EXE. To do so copy PROJ.RC to ACTOR.RC or cut and paste the resources into ACTOR.RC and then run the resource compiler by typing the following commands from the ACTOR directory at the DOS C> prompt. CD RES COPY PROJ.RC ACTOR.RC RC ACTOR.RC COPY ACTOR.EXE .. CD .. The source code uses the Language Extensions I object storage facility. If you don't have Language Extensions I you will have to comment out the file names in the LOD files and you will not be able to load & save projects. Make sure you have the latest version of Language Extensions I, since otherwise you may get a "Bad ID Error" when loading projects from disk. If you need fixes to version 1.0 to 1.02 of Language Extensions, use the file FIX_LE.ACT included in this system and add it to the LOD files. If you want to examine the code from within Actor, load a "clean" copy of Actor, then load the load file. In the workspace type load("proj.lod"); load(); This takes a while, but will reload all of the classes. You can then view all of the source code in the Browser. You can create a new project window by typing PW := defaultNew(ProjWindow, "PC-Project"); show(PW,1); To "seal off" the application double click on SMALL.IMA and type load("projseal.lod"); load(); This also takes a few minutes. PC-Project User Manual 15 If you modify the resources to the PROJECT.EXE file you should resource compile with the -L option so that the application will continue to make use of expanded memory. For example, RC -L PROJECT will recompile the resource file PROJECT.RC into PROJECT.EXE and set the LIM3.2 flag. 3.4 Learning more If you're interested in the design of PC-Project, please refer to the text file PDESIGN.TXT. I encourage you to explore the source code and learn more about object-oriented programming and Windows. It's safe to say that if PC-Project had been developed in C instead of Actor it probably would have taken about twice as long to complete and the end result would not have been as good. PC-Project User Manual 16