P C - P r o j e c t 3.0 User Manual 05/24/90 by Zack Urlocker Copyright 1988-90 The Whitewater Group 1800 Ridge Ave Evanston, IL 60201 USA 708-328-3800 All rights reserved PC-Project User Manual 2 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 3 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. - Full use of color in charts. - Automatically recalculates the critical path of a project using CPM or PERT algorithms. - Easy printing of PERT chart, Gantt chart and text report. - Can allocate costs to tasks using either fixed costs or by assigning resources with a fixed and/or variable cost component. - Full source code included. PC-Project User Manual 4 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 5 1.5 Installed files During the installation process the following files will be created on your hard disk. PMANUAL.TXT -This file 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 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=40 By default, the project manager uses 40K of Dynamic memory; if you need more (or less) just set it as shown above. 1.7 Starting PC-Project PC-Project 3.0 requires Microsoft Windows 3.0. If you need to run PC-Project on Windows 2.x, you will need PC-Project 2.0. 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 PC-Project User Manual 6 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 1800 Ridge Avenue Evanston, IL 60201 USA (708)328-3800 PC-Project User Manual 7 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 8 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/90. 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 late finish (LF) dates. Type "House" as the name of the project and enter the early start date "04/01/90". For most projects you PC-Project User Manual 9 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 Edit New Milestone and Edit New Task menu choices. These are hierarchical menus, so you must select Edit, then New and then Milestone or Task. Since the "Start" milestone is already created, you can begin by creating the "Buy" task. Select Edit 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. As a shortcut, you can click the mouse in a task or milestone and drag the cursor to a new location to create a task. This is often faster than using menus to create new tasks. 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 Edit 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 PC-Project User Manual 10 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 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 02/03/90, 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 06/15/90, 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/90, 1/1/90, 9/01/1990. 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 of a 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 drawn as bars with PC-Project User Manual 11 the critical time in red 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 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 [F6] again. 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 12 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 Edit Delete Resource command. PC-Project will warn you if the resource is still in use. 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. The Options menu also allows you to select a "Zoom view" of the chart. Using this choice (or pressing Ctrl-Z) will show the chart in a compressed format. This is useful when working in CGA resolution or when viewing a large project. The Zoom view choice acts as a toggle. Selecting it again will return the project to the normal size. The Color menu choice is also a toggle that allows you to switch from the default use of color (red for critical tasks, blue for non-critical) to black and white only. This is useful when you are working on a monochrome screen on which both red and blue look the same. If you use PC-Project on an LCD projector, this is very handy. PC-Project User Manual 13 The last choice, ShowRoom, displays the amount of Windows memory available. If this number is less than about 10K, Windows will run very slowly. 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 14 2.10 Command reference All menu commands can be executed 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. Press [Esc] to cancel a command. Some menu items also have accelerator keys. For example, [Ctrl-N] (shown as ^N) executes the File New 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 Chart ^P --Print the project chart Print Report --Print project summary report Run --Run another Windows program Quit ^X --Exit PC-Project About Actor --Information about Actor Edit 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 Clip Chart ^Ins --Copy project chart to clipboard 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 Gantt chart F6 --See a Gantt timeline chart Options Zoom view ^Z --Toggle the zoomed view Display settings F7 --Select start, finish, cost, etc Color --Toggle the use of color 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 15 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 refer to the articles at the end of this file. 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. 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. 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. PC-Project User Manual 16 3.3 If you have Actor PC-Project 3.0 has been tested with Actor 3.0 under Windows 3.0. To run the application from Actor, you will need to copy the resources into ACTOR.EXE. To do so cut and paste the resources from PROJECT.RC into a copy of ACTOR.RC. Then run the resource compiler on ACTOR. 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. If you want to examine the code from within Actor, load a "clean" copy of Actor, then type load("proj.lod"); load(); This takes a while, but will load 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 register(ProjWindow);register(GanttWindow); PW := defaultNew(ProjWindow, "PC-Project"); show(PW,1); To "seal off" the application select the Seal-Off menu choice and enter "ProjApp" as the application class and "project.ima" as the image file name. 3.4 Learning more If you're interested in the design of PC-Project, please refer to the articles listed below. Each article covers a different aspect of PC-Project. 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. Zack Urlocker, "Actor, an Object-Oriented Language", Micorcornucopia, Nov./Dec. 1988. This article contains the most complete description of the classes and objects in PC-Project. Zack Urlocker, "A Methodology for the Real World", Computer Language, January 1989. This article describes some of the benefits of an evolutionary programming style. Zack Urlocker, "Whitewater's Actor: An Introduction to Object- Oriented Programming Concepts", Microsoft Systems Journal, March 1989. This article is mostly about Windows programming. * * *