Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-07 - decus/20-0161/pantt.spc
There are no other files named pantt.spc in the archive.
.PS 58,70
.LITERAL
		PANTT - The PERT and Gantt Program
		
		Peter M. Hurley	     June 1, 1978

	Help file for version 4.3(252) May 9, 1981
.END LITERAL


PANTT is a program written for project managers to aid them in both 
scheduling and daily tracking of their projects.  PANTT is an 
interactive data base management program that allows the project 
manager to enter and update project information and status as each 
project progresses.  Whenever needed, PANTT can output an updated
PERT chart of the project, an overall Gantt chart of the project,
and a Gantt chart for each of the developers 
on the project.

Unlike most other computerized PERT systems, PANTT is designed to 
produce the optimum schedule for more than one interdependent 
projects being staffed by a common set of developers.  As work 
assignments are made, the project manager can direct PANTT to 
associate each developer with his or her assigned projects.  The 
remainder of the projects are scheduled to be completed in the 
shortest time by optimally allocating available developers and by 
reassigning developers as projects are completed.

PANTT also makes it possible for the project manager to set up 
dependencies of some projects on other projects.  The scheduling 
routine determines the critical path and allocates developers to the 
projects on the critical path in a manner that minimizes the length 
of the critical path.  While doing this, the scheduling routine 
acknowledges the dependencies specified by the project manager and 
does not schedule any project until all projects that are blocking 
this project have been completed.

PANTT understands about the common problems of weekends, vacations, 
new employees, outside dependencies, background activities, and 
differing levels of developer productivity that plague all PERT 
systems.  There are facilities integrated into the PANTT system to 
handle each of these problem areas.
Each project being entered into the PANTT data base must be broken 
up into a set of tasks. For example, the XYZ project might have the 
following tasks: functional specification, design specification, 
coding, debugging, and integration.  In this example none of the 
tasks can be started until the previous task has been completed.  
The project manager would set this project up with each task being 
dependent on the task immediately preceding it.  If more detail is 
desired, these tasks could be divided into smaller units.  For 
example, the coding task might be broken up into monitor code, utility
code, and application code.  Both the utility code and the application 
code are dependent on the monitor code being finished and could be 
specified as being dependent on the monitor code task.  But since 
the utility code and the application code tasks are not dependent on 
each other, these tasks can be done in parallel.  The PANTT 
scheduler routine would allocate developers to these tasks in the 
optimum fashion to minimize the overall length of the project.
			PANTT Commands

1.	Top level commands


ADD DEVELOPER user_name (RATE) x (HANDICAP) y

	Add a developer to the overall developer list.  This new 
	developer can spend up to x (0 to 1.0) amount of his or her 
	time working on projects.  The handicap rating, y,
	is the indication of the performance of this developer 
	relative to the other members on the project (1.0 is the 
	norm).

ADD PROJECT (PROJECT NAME) project_name

	Add a project to the data base.  

ADD TASK (TASK NAME) task_name (TO PROJECT) project_name

	Add a task to the specified project.


DELETE DEVELOPER user_name

	Delete the specified user name from the overall developer 
	list.

DELETE PROJECT (PROJECT NAME) project_name

	Delete the specified project and all of its tasks from the 
	data base.

DELETE TASK (FROM PROJECT) project-name (TASK NAME) task_name

	Delete the specified task from the specified project.


EXIT

	Exit from PANTT.


LIST (PROJECT) project_name (TASK) task_name

	Type out all information about a given task. If task_name
	is omitted then all tasks in the project will be listed.
OUTPUT CHANGES-IN-ESTIMATED-DATES (TO FILE) file_specification

	Outputs a list of all estimated dates which changed since the
	last REMEMBER command. 

OUTPUT CONTROL-FILE (TO FILE) file_specification

	Writes a control file for a batch job to rebuild the PANTT
	data-base. This lets one rename projects and make other
	systematic changes with a text editor.

	This process also flushes all dates stored by the last
	REMEMBER command.

OUTPUT DEVELOPER-LIST (TO FILE) file_specification

	Output the overall list of developers, their rates, and 
	their handicaps.


OUTPUT PATH-CHARACTER-LIST (TO FILE) file_specification

	Outputs an alphabetical listing of each task with a given 
	path-character.

OUTPUT PERT-CHART (TO FILE) file_specification

	Output a PERT chart of all tasks in the data base to the 
	specified file specification.

OUTPUT SCHEDULE (TO FILE) file_specification

	Outputs a listing of all tasks sorted by earliest start date, with
	the following information.

	Estimated start and completion dates
.br
	Name of project and task
.br
	Project description
.br
	Task description

OUTPUT SELECTED-PERT-BOXES (TO FILE) file_spec

	Same idea as OUTPUT PERT-CHART except one can select which projects
	get included. See SELECT mode.


OUTPUT TASK-LIST (SORTED BY) EARLIEST-START-DATE (TO FILE) file_spec

	Output a list of the tasks in the data base sorted by the
	earliest start date.  This list contains the task 
	length, the start date, the finish date, the developers 
	available to work on the task, the tasks blocking this task, 
	and the tasks being blocked by this task.

OUTPUT TASK-LIST (SORTED BY) PROJECT (TO FILE) file_spec

	Output a description of each task of each project in the 
	data base.  This report lists all available data about each 
	task.  The list is arranged alphabetically by project and by 
	tasks within each project.
OUTPUT GANTT-CHART (OF) DEVELOPERS (TO FILE) file_spec

	Output a Gantt chart for each developer scheduled to work on 
	some part of this set of projects and tasks.  The Gantt 
	chart includes the dates that the developer is working on a 
	task and the amount of that developers time is being spent 
	on that task.  The Gantt chart pictorially shows the start 
	and end dates for each task that this developer is working 
	on.  The chart also indicates which tasks have been 
	completed and which tasks are in progress.

OUTPUT GANTT-CHART (OF) MILESTONES (TO FILE) file_spec

	Output a chart show the dates of all milestones.

OUTPUT GANTT-CHART (OF) ONLY-DEVELOPER developer (TO FILE) file-spec

	Output a gantt-chart for only one developer. This mode figures
	out a good starting date for the chart.

OUTPUT GANTT-CHART (OF) TASKS (TO FILE) file_spec

	Output a chart showing the start and finish of all tasks.  
	This chart also shows those tasks that have been completed, 
	those tasks that are in progress, and the number of people 
	allocated to each task at any point in time.
.TEST PAGE 36
.LITERAL
PLOT GANTT-CHART (OF) DEVELOPERS (TO FILE) file_spec
PLOT GANTT-CHART (OF) MILESTONES (TO FILE) file_spec
PLOT GANTT-CHART (OF) ONLY-DEVELOPER developer (TO FILE) file_spec
PLOT GANTT-CHART (OF) TASKS (TO FILE) file_spec
PLOT PERT-CHART (TO FILE) file_spec
PLOT SELECTED-PERT-BOXES (TO FILE) file_spec
.END LITERAL

	These commands are identical to the corresponding OUTPUT
	commands except data is written in TXT2P format so that 
	it may be plotted on the VERSATEC plotter. Here is a brief
	example of generating a PERT plot:
.literal
	PANTT>PLOT PERT-CHART (TO FILE) PERT.T2P
	PANTT>EXIT
	@TXT2P
	*PERT.DPL=PERT.T2P
	NO ERRORS DETECTED
	*^C
	@R P
	MODE(S)? 1
	INPUT FILENAME(.DPL): PERT.DPL
	@DO SYS:NETPLO PERT.PLO
	now go over the LA36 next to the PDP-11 and type:
	RUN MAPVP
	INPUT FILENAME: PERT.PLO/E
.end literal
	The above procedure worked on system 1031 on 26 June 80. Things
	may have changed since that date.

	NOTE: The VERSATEC system is now located in CIRCUIT DESIGN DRAFTING
	on MR1-2. 
REMEMBER (ESTIMATED DATES FOR FUTURE COMPARISON)

	Remembers the estimated dates for each task. These may be 
	compared with the latest estimates with the OUTPUT CHANGES
	command.

SCHEDULE

	Perform a scheduling pass over all tasks in the data base.  
	This command requests the "Scheduler Look Ahead Value".  
	This is the searching depth to which the scheduler will go 
	when trying to resolve scheduling conflicts.  A conflict 
	arises when there are more than one tasks that are not being 
	blocked by any other tasks and the set of developers 
	available to work on these tasks overlap.  These conflicts 
	are resolved by an exhaustive check of all combinations and
	permutations of developers and tasks.  The scheduler choses 
	the order that minimizes the end date of the critical path.

	Since the length of time to perform a scheduling pass 
	increases exponentially as the number of conflicts goes up, 
	PANTT allows the project manager to specify the depth of the 
	search.  If 
	the scheduler look ahead value is set to 0, PANTT will do a 
	complete scheduling pass in the shortest possible time.  
	[[Values other than zero have not been well tested]]

SET HOLIDAY (DATE) date

	Prevents work from being scheduled on specified date.

SET PERT-PLACEMENT-ALGORITHM (TO THE) DEFAULT (PLACEMENT ALGORITHM)

	Places the PERT boxes using minimum cpu time.

SET PERT-PLACEMENT-ALGORITHM (TO THE) HIGH-DENSITY (PLACEMENT ALGORITHM)

	Reduces the amount of white-space on the pert chart. If your
	pert chart is larger than the plotter or line-printer page,
	this command may help it fit.

	This mode may also produce better looking pert charts. [Depends
	on your definition of "good looking"]

SET SCHEDULE-DATE (TO) date

	Pretend today is "date". Useful if a project will not start for
	a while.
UPDATE (PROJECT) project_name

	Enter update mode for the specified project.  This command
	allows the project manager to go change project related 
	data.  See the section on project commands for more detailed 
	information.

UPDATE (PROJECT) project_name (TASK) task_name

	Enter update mode for the specified task.  This command 
	allows the project manager to update task data for the 
	specified task.  See the section on task commands for 
	further details.
2.	Project Commands

DELETE DEVELOPER user_name

	Delete a developer from the list of developers assigned to 
	this specific project.


DEVELOPER user_name (RATE) x (HANDICAP) y

	Add the specified user to the list of developers available 
	to work on this project.  The maximum amount of time that 
	this developer can spend on this project is x (0 to 1.0).  
	The relationship of this developer to the other developers 
	on the project is y (1.0 is the norm).


FINISHED (UPDATING PROJECT DATA)

	This command returns to the top command level.


LIST

	This command lists all the available data about this 
	project.  


PREFERENCE-VALUE (FOR FREE CHOICE) x

	This command sets the free choice preference value for this 
	project.  Whenever the scheduling routine makes a free 
	choice of the next task to be scheduled, this preference 
	value will bias its choice.  The higher the value, the 
	sooner the scheduler will chose tasks of this project to be 
	done.


PROJECT-DESCRIPTION

	This command lets the project administrator rewrite the 
	description of this project.  This description can be more 
	than one line in length, and it is terminated with an 
	ALTMODE or a CTRL/Z.
3.	Task Commands

ALL-DEVELOPERS-REQUIRED

	This sets a bit which forces all listed developers to work on this task
	for an equal amount of time. This is useful for design reviews, group 
	meetings and other tasks where all developers are required.

	This command will be replaced (or augmented) in a future version by
		NUMBER-OF-DEVELOPERS-REQUIRED (IS EXACTLY) n
	which will schedule n of the available developers to work together on
	this task.

ATTRIBUTE (NAME IS) name (VALUE) value

	This allows the user to add additional description to a given
	task. Attributes are remembered in the database and printed 
	when the task is listed. For example, the command:
.nf
		ATTRIBUTE (NAME IS) BUDGET (VALUE) 35K
	will generate a line containing:
	        BUDGET: 35K
	whenever the task is listed.
.f

COMPLETION-DATE date

	This command specifies the actual completion date of the 
	task.  If a task has a completion date specified, then the 
	scheduler assumes that this project must be scheduled 
	according to this date.  The completion date can be 
	specified as a date in the future.  An example of this is 
	when a project manager adds a task to indicate that a 
	developer is going to be on vacation on a particular date.


DELETE COMPLETION-DATE

	This command deletes the actual finishing date for this
	task.


DELETE DEPENDENCY (ON PROJECT) project_name (TASK NAME) task_name

	This command removes the dependency of the task being 
	updated on the task specified in this command.

DELETE DEVELOPER user_name

	This command deletes the specified user from the list of 
	developers that are available to work on this task.
DELETE ESTIMATED-PROJECT-LENGTH

	This command deletes the specified task length.


DELETE EXPECTED COMPLETION-DATE

	This command deletes the expected completion date of the
	task.


DELETE EXPECTED STARTING-DATE

	This command deletes the expected start date of the
	task.

DELETE MINIMUM-STARTING-DATE

	This command deletes the minimum starting date specification
	for this task.

DELETE PATH-CHARACTER

	Remove the critical path character from this task

DELETE PREFERENCE-VALUE

	This command deletes the preference value for this 
	task.

DELETE STARTING-DATE

	This command deletes the starting date of the task.


DEPENDENCY (ON PROJECT) project_name (TASK NAME) task_name

	This command indicates that this task cannot be started 
	until the specified task has been completed.


DEVELOPER user_name (RATE) x (HANDICAP) y

	Add the specified user to the list of developers that can be 
	assigned to work on this task.  The rate and handicap values 
	for this developer are x and y.
ESTIMATED-PROJECT-LENGTH (IN DAYS) n

	This command specifies the estimated length of the project.  
	The task length is specified in work days (5 work days per 
	week).  This is an integer value; fractional days are not 
	accepted.


EXPECTED COMPLETION-DATE (IS) date

	This command is used to set the expected completion date of 
	a project.  This differs from the actual completion date 
	only in the fact that this date is not guaranteed.  However, 
	the scheduling routine treats this date as if it is a firm 
	date for scheduling purposes.

EXPECTED STARTING-DATE (IS) date

	Set the expected starting date.  The scheduling routine will 
	cause this task to be scheduled on the specified date.


FINISHED (UPDATING TASK DATA)

	This command returns to the top command level.


LIST

	This command lists all available data about the task.

LONG-ATTRIBUTE name

	This is the same as ATTRIBUTE except it takes a long string
	terminated with an escape. Example:
.nf
		LONG-ATTRIBUTE (NAME IS) COMPLETION-CRITERIA
		VALUE OF ATTRIBUTE (<ESC> WHEN DONE)
                	ALL DEMO INFORMATION IS IN FILE.
		$
	will produce:
	        COMPLETION-CRITERIA:
	                ALL DEMO INFORMATION IS IN FILE.
	whenever, the task is listed.
.f

MILESTONE

	This command marks this task as being a milestone. 
MINIMUM-STARTING-DATE date

	This command specifies the earliest date that the this task 
	can be scheduled.  The scheduling routines will 
	schedule this task at the optimal time after this date.


PATH-CHARACTER (IS) x

	This command assigns a "critical-path character" to a task. 
	All tasks on the critical path blocking this task are flagged
	with this path character. This allows several critical paths
	to be monitored.

PREFERENCE-VALUE (FOR FREE CHOICE) x

	This command sets the free choice preference value for this 
	task.  Whenever the scheduler has a free choice between two 
	tasks belonging to the same project, it will chose the task 
	with the higher preference value.  If both tasks have the 
	same preference value, then it will chose the task that will 
	finish in the longest time.


STARTING-DATE date

	This command sets the actual starting date of the task.  The 
	scheduling routines chose tasks that have starting dates 
	specified before any other tasks are chosen.  In this way, 
	these tasks will be completed without interruption.


TASK-DESCRIPTION

	This command allows the project manager to enter a new 
	description of the task.


TIME-TO-DATE (IN DAYS) n (AT DATE) date

	This command specifies that n work days had been spent on this 
	project at the specified date.  This command is used to give 
	updated information about the progress of a task after the 
	start date but before the completion date.
4.	SELECT MODE


There is a new option in the OUTPUT and PERT commands called
SELECTED-PERT-BOXES. The format of the command is exactly the same as
the normal PERT option except it leaves you in SELECT: mode when you
are done. SELECT: mode currently has 2 possible commands, FINISHED and
INCLUDE. 

INCLUDE PROJECT project-name (NAME) task

	If TASK is omitted the entire project is pert'ed. If TASK is given,
	only that box is pert'ed. There may be any number of INCLUDE commands.

FINISHED
	gets you out of select mode and writes out the pert.

	example:
.LITERAL
	PANTT> PLOT SELECTED-PERT-BOXES (TO FILE) KL10.T2P
	SELECT: INCLUDE PROJECT CPU
	SELECT: INCLUDE PROJECT EBOX
	SELECT: INCLUDE PROJECT MBOX
	SELECT: INCLUDE PROJECT DEBUG CPU-POWERON
	SELECT: FINISHED
.END LITERAL

	This will produce a PERT chart of the CPU design up to CPU poweron. 

	The selection happens prior to placing the boxes on the plot
	and the plot looks as good as any full PANTT chart.
	Selection only changes what gets plotted. All tasks are scheduled,
	slacks set, and critical paths determined based on the full network.

	If the PERT is plotted (as opposed to printed on the line printer)
	dependencies on boxes not plotted are indicated by arrows. An arrow
	pointing up indicates that this task depends on one or more tasks
	which are not in this PERT. An arrow pointing down indicates that one
	or more tasks which are not in this plot depend on this task.