man opensched (Commandes) - automatically schedule resources for a project
NAME
opensched - automatically schedule resources for a project
SYNOPSIS
opensched [-d] [-v] [-h] [file...]
DESCRIPTION
The opensched program accepts a project description filec , assigns tasks to resources, schedules tasks to time periods, and prints various reports.
The user creates a project description file, which describes what has to be done, who can do it, etc.
The user runs the opensched program (perhaps using a Makefile). The program will schedule any tasks that have not been assigned to people and time periods by the user. It then prints various reports, as text files, LaTeX documents and EPS diagrams.
The user presumably will incorporate the LaTeX and EPS files into a large LaTeX document, run the works through LaTeX, and print a nicely formatted report.
OPTIONS
- -d
- Enable debug mode.
- -v
- Show version informations and terminate.
- -h
- Show help (usage) and terminate.
PROJECT FILE FORMAT
The project file contains a list of command lines. Each line may be one of:
- - blank
- - a comment, which begins with a # mark
- - a command
- Commands are written as a keyword followed by zero or more arguments. Arguments are either words or quoted strings.
The first command processed by opensched, e.g., the first in the root document must be a startdate command. This specifies the project start date. The second command must be a dateformat command. This specifies the date format used in the input files, and the date format to be used in the output files.
General commands
- include filename
- Load more commands from the indicated file before proceeding
- startdate CCYY MM DD
- Define the first day of the project, as CCYY MM DD. All dates are calculated relative to this start date.
- textreport filename
- Print an ASCII report about scheduled tasks to the file.
- texreport filename
- Print a LaTeX report about scheduled tasks to the file.
- htmlreport filename
- Print a HTML report about scheduled tasks to the file.
- xmlreport filename
- Print a XML report about scheduled tasks to the file.
- show_resource_notes
- Print notes about resources in the report.
- show_task_notes
- Print notes about tasks in the report.
- show_task_ids
- Print task ids as well as task names in the output.
- show_milestone_ids
- Print milestone ids as well as milestone names in the output.
- show_dependencies
- Print task dependency information in the report.
- show_vacations
- Print vacation information in the report.
- weekly_tex filename
- Print a LaTeX report about who has to do what work on what week to the file.
- monthly_tex filename
- Print a LaTeX report about who has to do what work on what month to the file.
- slippage_tex filename
- Print a LaTeX report about slippage in the schedule.
- weekly_txt filename
- Print a text report about who has to do what work on what week to the file.
- monthly_txt filename
- Print a text report about who has to do what work on what month to the file.
- slippage_txt filename
- Print a text report about slippage in the schedule.
- weekly_html filename
- Print a HTML report about who has to do what work on what week to the file.
- monthly_html filename
- Print a HTML report about who has to do what work on what month to the file.
- slippage_html filename
- Print a HTML report about slippage in the schedule.
- cost_html filename
- Print a HTML report about the cost of the project.
- printtaskdays
- Modifies the reports to print exactly what days a task is worked on. This is useful if a task is split over time, to straddle other tasks. If that happens, its start and finish dates are far apart, but work is not ongoing throughout its duration.
- utilgraph filename
- Print an EPS file which shows when each resource is busy. This file is ugly but can be useful to determine the efficiency with which the resources have been scheduled.
- hardschedule filename
- Print start and finish statements to a new scheduler input file, that fix the schedule of this project.
- taskgraph startdate finishdate filename
- Print an EPS GANTT chart for the given date range in the file.
- network startcolumn finishcolumn filename
- Print an EPS network diagram containing the given column range in the file. In the network diagram, the tasks are arranged in columns numbered from the left starting at 0. The column range restricts those in the chart to a subset of them.
- dateformat calendar
- Dates will be entered and printed as CCYY.Mon.DD. Examples: 1999.Jan.05 or 2000.Jun.30
- dateformat iso
- Dates will be entered and printed in ISO-8601 CCYY-MM-DD format. Examples: 1999-01-05 or 2000-06-30
- dateformat count
- Dates will be entered and printed as a 3-digit (zero-padded) integer number counting number of days since the project began. Weekends are counted.
- dateformat raw
- Dates will be entered and printed as a 3-digit (zero-padded) integer number counting number of working days since the project began. This differs from "dateformat count" above since it ignores weekends.
Commands to define and relate resources and tasks
- resource id name
- Define a resource (i.e., a person who can do some work)
- resource_note resourceid text
- Add a note to a variable length list of such notes attached to the named resource.
- efficiency resourceid N
- Set the relative efficiency with which the identified resource does work. Efficiency is a number greater than 0. If a resource has an efficiency of 0.5, then it takes twice as long to do work as someone with an efficiency of 1.0, and if a resource has an efficiency of 2.0, then it takes half the time to do the work as someone with an efficiency of 1.0 (perhaps because the resource actually represents 3 programmers). By default, efficiency is 1.0.
- task id name N
- Define a task that must be completed. It will take some resource N days to complete.
- task_note taskid text
- Add a note to a variable length list of such notes attached to the named task.
- block taskid
- Indicate that a given task must be completed in a single time block, and may not be split around other tasks. This is not true by default.
- describe taskid description
- Add a more verbose description to the task.
- group id resourceid1 resourceid2 ...
- Define a virtual resource, which represents every listed resource working together in a group.
- candidate taskid resourceid1 resourceid2 ..
- Indicate that the resources indicated are candidates to work on the indicated task.
- depends taskid0 taskid1 taskid2 ...
- Indicate that taskid0 cannot be started until all of taskid1, taskid2, ... are completed.
- complete taskid
- Indicate that the task is finished.
- complete taskid N
- Indicate what fraction of the work for the indicated is done, as a percentage from 0 to 100.
- done taskid N
- Indicate the number of days spent so far on the task.
- start taskid date
- Indicate that the task should start on the given date. Use with care... it is possible, by using it, to put constraints on a schedule such that there is no solution.
- finish taskid date
- Indicate that the task should be finished on the given date. Use with care... it is possible, by using it, to put constraints on a schedule such that there is no solution.
- bstart taskid date
- Indicate that the task Baseline starts on the given date.
- bfinish taskid date
- Indicate that the task Baseline finished on the given date.
- astart taskid date
- Indicate that the task Actual start is on the given date.
- afinish taskid date
- Indicate that the task Actual finish is on the given date.
- future taskid resourceid startdate finishdate
- Indicate that the indicated resource will definitely work on the given task on the given dates. This will automatically assign the task to this resource. It will will also fix the start date, and may fix the finish date (if enough days are included).
- past taskid resourceid startdate finishdate
- Indicate that the indicated resource has already worked on the given task on the given dates. This will automatically assign the task to this resource. It will will also fix the start date, and may fix the finish date (if enough days are included).
- vacation resid startdate finishdate
- Indicate that the given resource has a vacation, and may not work on scheduled tasks, on the given date range. Note that resid may include ? and * wildcard characters, which is convenient for defining group or statutory holidays for everyone.
- vacation resid date
- Define a one day holiday. Otherwise the same as above.
Commands that modify the display of GANTT charts
- tg_tasklabel N
- In GANTT charts, sets the offset (in points) of task labels from the left edge of the chart.
- tg_left N
- In GANTT charts, sets the offset (in points) of the left edge of GANTT charts from the left edge of the page.
- tg_top N
- In GANTT charts, sets the offset (in points) of the top edge of GANTT charts from the top edge of the page.
- tg_width N
- In GANTT charts, sets the width (in points) of a single day.
- tg_height N
- In GANTT charts, sets the height (in points) of a single task.
- tg_space N
- In GANTT charts, sets the vertical space (in points) between consecutive tasks on the chart.
- tg_gray N
- In GANTT charts, sets the PostScript gray level (0-1) of scheduled tasks.
- tg_lightgray N
- In GANTT charts, sets the PostScript gray level (0-1) of weekends embedded in the middle of scheduled tasks.
- tg_white N
- In GANTT charts, sets the PostScript gray level (0-1) of marks that show work already done on a task.
- tg_fontname1 name
- In GANTT charts, sets the PostScript name of the medium font.
- tg_fontsize1 N
- In GANTT charts, sets the size (in points) of the medium font.
- tg_fontname2 name
- In GANTT charts, sets the PostScript name of the smallest font.
- tg_fontsize2 N
- In GANTT charts, sets the size (in points) of the smallest font.
- tg_fontname3 name
- In GANTT charts, sets the PostScript name of the largest font.
- tg_fontsize3 N
- In GANTT charts, sets the size (in points) of the largest font.
- tg_textup N
- In GANTT charts, sets the vertical offset from the base of a task line to the base of the text that describes it, in points.
- tg_mlgray N
- In GANTT charts, sets the gray level (0-1) used to draw vertical month lines.
- tg_xborder N
- In GANTT charts, the border on the left and right edge of the chart.
- tg_yborder N
- In GANTT charts, the border on the top and bottom edge of the chart.
- tg_nodays
- In GANTT charts, don't print days and months along bottom.
- tg_daysofmonth
- In GANTT charts, print day of month below day of the week.
- tg_sortbyresource
- In GANNT charts, group tasks by resource instead of by order of execution.
- tg_showpast
- In GANNT charts, show past days with a progression bar.
- tg_pastgray N
- In GANNT charts, sets the gray level (0-1) used to draw progression bar on past days (used only with tg_showpast )
- tg_showvacation
- In GANNT charts, show vacation days.
- tg_vacationgray N
- In GANNT charts, sets the gray level (0-1) used to draw vacation days (used only with tg_showvacation )
Commands that modify the display of network diagrams
- netx taskid N
- Fixes the box for the specified task to be in column N. Columns are numbered left to right starting at 0.
- nety taskid N
- Fixes the box for the specified task to be in row N. Rows are numbered top to bottom starting at 0.
- start_nety N
- Fixes the box for the start milestone to be in row N. Rows are numbered left to right starting at 0.
- finish_nety N
- Fixes the box for the finish milestone to be in row N. Rows are numbered left to right starting at 0.
- pc_width N
- In network diagrams, sets the width (in points) of the boxes. The default is 190.
- pc_height N
- In network diagrams, sets the height (in points) of the boxes. The default is 72.
- pc_space N
- In network diagrams, sets the horizontal and vertical spacing (in points) between boxes. The default is 72.
- pc_textin N
- In network diagrams, sets the distance (in points) from the left edge of the box to the start of text. The default is 6.
- pc_textup N
- In network diagrams, sets the distance (in points) from the bottom of the box to the baseline of text. The default is 6.
- pc_fontname1 name
- In network diagrams, sets the name of the font. The default is Helvetica.
- pc_fontsize1 N
- In network diagrams, sets the size of the font. The default is 10 (point).
Commands related to milestones
- milestone id name
- Define a milestone. A milestone marks a special event in the life of a project. A milestone is reached when all of the tasks it depends on are completed.
- after id taskid2 taskid2 ...
- The milestone id is reached after all of the dependent tasks have finished.
Commands related to project costing
- rate resid amount
- Define the daily charge out rate for the specified resource.
- item taskid amount text
- Associate an item costing the given amount with the given task. Text is a variable length field describing the item.
- prate amount
- Define a default daily charge out rate for resources to be used for Resources which have not had an individual charge out rate set.
- pitem amount text
- Define an item costing the given amount for the project (i.e., not associated with any particular task). Text is a variable length field describing the item.
Dates and date ranges
Dates are internally represented as an integer number of days, with zero being the first working day. There are five days per working week, but the internal representation does not count weekends. Accordingly, a project that starts on a Monday has:
lB lB lB --- l l r. Day number DoW Week 0 Monday 1 1 Tuesday 1 2 Wednesday 1 3 Thursday 1 4 Friday 1 5 Monday 2 6 Tuesday 2 7 Wednesday 2
This is useful for programs, but a pain for humans. Accordingly, the program uses an aliasing system for dates. You select an aliasing system (probably calendar), and enter all dates using this system. The program also prints all of its dates in the same system.
To do this, you should start your project file with the statements:
startdate 1998 10 28 dateformat calendarYou can then refer to dates as 1998.Nov.02
NOTE
You will soon discover that there are no aliases for weekend dates. This is the most common bug -- don't enter any dates for weekends, as the system will just reject them!!
In several places in the project file, and in various output formats, the program prints date ranges. You should be aware that these ranges are inclusive.
SEE ALSO
AUTHOR
This program was originally developed by Idan Shoham at M-Tech Mercury
Information Technology, Inc. It is currently maintained by
Alan Mcivor. See
opensched.sourceforge.net
for the latest version.
Any correspondence relating to
this program should be directed to:
Alan McIvor <alan@mcivor.gen.nz>
COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.