Hello and sorry for a long silence on my part.
I'm back with a simple question: where are the Gantt view and project management facilities documented? And why are they so hard to find?
There's a linked issue: when I search the manual using the term gantt view (or similar), I am informed that there are several pages of entries. However, I can only access the first page of such entries. Clicking on next or page 2, etc. returns the first page again.
Mark
Comments
NB: This documentation is based on Mantis entries:
Gantt chart enhancements (hours view, better date header display)
Gantt: Switching between tasks and milestones
Gantt: Add option to set non working days
Add overload capabilities to the Gantt
Gantt charts - Show overview and histogram checkbox
Gantt chart: No need to set the End Date and Duration fields
Grid: Item color: add option to select which columns are shown in that color
Gantt chart: add option to set bar colors
It also incorporates material from the Wikipedia articles on project management and on work breakdown structure.
InfoQube is often used in the planning and monitoring of activities made up of constituent individual actions. Sometimes these activities, made up of interdependent actions, are sufficiently complicated to merit being treated as a project.
The management of any project should be planned in two stages. These are:
1. Identify the Work Breakdown Structure – in essence, what are the outputs required from the project.
2. Plan the Project Schedule – how and when the various actions required to create the outputs will be carried out.
The first stage in the planning of a project should be the identification of its work breakdown structure (WBS). The Work Breakdown Structure is a tree structure, which shows a subdivision of effort required to achieve an objective; for example a program, project, and contract. The WBS tells us WHAT elements ("deliverables") are necessary to plan, execute, control and close a project, while the (subsequent) project schedule will tell us HOW we plan on creating each of those deliverables. In this context, the WBS should always represent exactly 100% of the approved scope (deliverables) of any project.
It is important to understand that the WBS shows only WHAT the deliverables are. It does not (or should not) show the structure of the deliverables, that is HOW they are individually constructed. It makes perfect sense to do that too using IQ, but the WBS should not be confused with that product structure. Nor should the initial creation of the WBS be confused with the subsequent stage of project scheduling, which identifies the schedule of tasks and their interdependencies – the WHEN. It is considered poor practice to construct a project schedule before designing a proper WBS. So the WBS is neither a project plan, a schedule, nor a chronological listing.
In a project or contract, the WBS is developed by starting with the end objective and successively subdividing it into manageable components in terms of size, duration, and responsibility (e.g., systems, subsystems, components, tasks, subtasks, and work packages). Thus it includes all deliverables necessary to achieve the objective. This may take the form of a tree structure.
The most obvious way in which to model a tree structure in InfoQube is of course as a hierarchical outline. However, this is not actually necessary in order to plan a project nor – subsequently - to represent it as a Gantt chart.
The Work Breakdown Structure provides a common framework for the natural development of the overall planning and control of a project or contract and is the basis for dividing work into definable increments from which the statement of work can be developed and technical, schedule, cost, and labour hour reporting can be established.
A work breakdown structure permits summing of subordinate costs for tasks, materials, etc., into their successively higher level “parent” tasks, materials, etc.
For each element of the work breakdown structure, a description of the task to be performed is generated. This technique is used to define and organize the total scope of a project.
The WBS should initially be organised around the primary products of the project (or planned outcomes) instead of the work needed to produce the products (planned actions). Since the planned outcomes are the desired ends of the project, they form a relatively stable set of categories in which the costs of the planned actions needed to achieve them can be collected.
An outcome determines a so-called terminal element of the project, that is, an activity which delivers that outcome. A well-designed WBS makes it easier to assign each project activity to one and only one terminal element of the WBS, which is desirable in phased projects which deliver multiple outcomes and for which – for example – separate costings / billing items are required or desirable as part of the process of accounting for project costs.
A Gantt chart is a type of bar chart that illustrates a project schedule. InfoQube has a Gantt view, which includes a Gantt chart.
Gantt charts illustrate the start and finish dates of the terminal elements and summary (intermediate) elements of a project. Terminal elements and summary elements derive from the work breakdown structure of the project. Gantt charts can also show the dependency (i.e. precedence network) relationships between activities. Gantt charts can be used to show current schedule status using percent-complete shadings. Gantt charts have become a common technique for representing the phases and activities of a project which carries out a work breakdown structure (WBS), so they can be understood by an audience which is wider than the person who is planning the work.
InfoQube cannot pretend to the advanced project management capabilities present in dedicated project management software such as Microsoft Project. This documentation assumes that InfoQube is being used to manage the activities associated with one person carrying out a complete project. The size of an action is measured in person-days of effort. Normally, its duration is determined by its start date and its end date; however, it is no longer required to set the Gantt chart End Date and Duration field. When only the Start Date field is set, this can be used to get a timeline-type view. An action which takes zero time is a milestone; it is represented not a line in Gantt view, but as a lozenge.
In a project schedule, dependencies between actions are identified.
The implementation of projects in IQ usually involves a combination of specific IQ features. These are:
1. Gantt View. This can be enabled for any grid, although typically it is used with a Projects grid. To toggle Gantt view on or off for a given grid, used Grid / View Gantt. To set the Gantt-related properties for a grid, use Grid / Properties and open the Gantt Chart properties for that grid.
2. A set of system fields intended to represent Projects. These fields include:
In a future release you'll be able to enter the Effort and duration for each of your task and the Gantt will show you when you're in the red (i.e. when you'll need to do overtime). In the current implementation, it is possible to schedule two activities in parallel, stretching them over a longer elapsed time so as to keep time utilisation manageable.
Part of the flexibility of IQ is that it is not necessary to stick to a strictly hierarchical breakdown of work. Thus a sub-project of one project may equally be used as an element of a second project. Similarly, a task which is a sub-task of one task can be a sub-task of another task.
Thus one thing which is essential to effective project planning in IQ is grouping together tasks which together constitute a project. It might therefore be sensible to represent the project as a tree structure of hierarchically-linked tasks and their sub- and sub-sub- tasks. However, this is not in fact the way in which IQ shows how tasks are related. Instead, IQ permits task dependencies to be represented and stored explicitly. One task can depend on more than one other task, and one task can precede more than one subsequent, dependent, tasks. Thus, it is only by convention that tasks and sub-tasks are represented as a hierarchy, and IQ ignores the tree structure when considering dependencies. Instead, it relies upon the use of two system fields to show how one task relates to others.
Traditionally, project tasks are labelled using letters. However, IQ uses the numerical system field TaskID to identify individual tasks and the system field NextTaskID to store dependencies. In fact, the NextTaskID field can be used to identify several “next” (dependent) tasks since it takes the form of a comma separated list.
The standard sample database contains a project called Somiro. The screenshots which follow are taken from such a sample database.
In the screenshot we can see the following elements:
1. A TLI (top level item) ‘Project Samiro’ and its constituent tasks, here labelled 1.1 to 1.11; this grid shows the principal fields needed to implement a Gantt chart in IQ; these fields are discussed below.
2. Above the grid is shown the project overview – this extends over the whole length of the project, which is here all of May and most of June 2008; it is shown if the Gantt Chart property Show Overview is set; the scale of the display can be set to one of Min, Hr, Day, Wk, Mo (minutes, hours, days, weeks, months).
3. To the right of the main grid is shown the magnified detail Gantt view of the tasks which are active in a particular seventeen day period; the part of the project which is currently displayed is indicated by orange shading in the project overview described in the previous element.
4. Below the detail Gantt view is the resource utilisation histogram; it is shown if the Gantt Chart property Show Histogram is set.
Gantt charts are good for project management, but they can also be used for other things, since:
1. The amount of scaling is under user control.
2. The current time is shown as a green vertical bar in the minute, hour and day scales.
3. If you double-click on the header, the chart is centred to the current date/time.
4. If you double-click on the chart on an item line, the chart is centred on that item bar.
5. Using the mouse-wheel when over the Gantt scrolls the chart left-right; using the page scroll buttons makes larger left and right centred movements.
6. As the user moves the mouse (just below the date headers), a Date Ticker is shown.
Grid: Item colour: an option has been added to select which columns are shown in that colour.
Currently, the item back color is set to all columns. This is sometimes not desired (in particular with the new Gantt chart bar color). The new option permits setting the list of fields which show the color; it should be left blank to color the whole item:
Additionally, in a Gantt chart: an option has been added to set bar colors. The steps necessary are these:
1. Grid>>Properties>>Gantt Chart>>Bar color field : set it to field containing the color (by default, the ItemColor field is used)
2. Set the values for the bar colors (using ItemColor field is easy because IQ has context menus to set this field)
These are set using Grid / Properties, then opening the Gantt Chart properties, which are:
Effort (in days) Field
TaskEffort exists as a system field, but is not yet used
Show Oveview zoom buttons
Used to select days of the week which are not worked (e.g. Saturday and Sunday)
Used to select hours of the day which are not worked (e.g. 12AM to 08AM, implying that the working day starts at 09:00)
If you set your grid source to your Gantt Start date field (normally TaskActStart), the DateFilter toolbar can then be used to limit the items displayed. This is useful to view just what you want, to reduce crowding in the overview area and it also helps when printing.
If TaskDuration = 0 then TaskDuration = 1
If Dureequot > 0 Then
ValTaskEffort=dureequot/10 * TaskDuration
Else ValTaskEffort = 0
End If
End Function
Function calcDureeQuot(DureeQuot,dureetot,taskduration,NbrJrSem,Pdone, TaskActEnd, taskActStart,task, projet, etape)
' Déclaration des variables
Dim today, dureeRestante, NbreJrRestant, RealtimeLeft
If (task=False And projet=False And etape = False) Then Exit Function
'Initialisation des variables
today = CDate(Now)
todayINT=Int(Now)
taskactendINT=Int(taskactend)
dureeRestante = dureetot-(dureetot * Pdone/100) ' Ajuste le nombre d'heure par jour en fontion du travail effectué et du temps restant
' Gestion des erreurs
If (dureeTot=0 Or IsNull(DureeTot)) Then Exit Function ' Pas besoin calculer DureeQuot si DureeTot est nulle
If IsNull(Pdone) Then Pdone = 0 ' Pour éviter erreurs
If taskduration < 1 Then TaskDuration = 1.0 ' pour éviter erreur de calcul (division par 0)
' Calcul du nombre de jours restants pour calcul du temps réel pour effectuer la tâche
If todayINT < TaskActStart Then ' tâche pas commencée, donc reste le max de jours.
NbreJrRestant = TaskDuration
Else
NbreJrRestant = taskactendINT-todayINT ' Réajuste le nombre de jours en fonction de la date d'aujourd'hui et du temps qui reste pour compléter tâche
End If
If NbreJrRestant = 0 Then NbreJrRestant = 1 ' Pour éviter division par 0.
'Calcul du temps réel restant pour effectuer la tâche (RealtimeLeft)
If IsNull(NbrJrSem) Or NbrJrSem = 0 Then NbrJrSem = 7 ' Lorsqu'un nombre de jour par semaine pas établi, donne valeur par défaut de 7 jours/semaine (i.e. : On y travaille tous les jours))
If (NbreJrRestant <= 7 And NbreJrRestant >= NbrJrSem) Then
RealtimeLeft = NbrJrSem
ElseIf NbrJrSem > NbreJrRestant Then
RealtimeLeft = NbreJrRestant
Else
RealTimeLeft = ((NbreJrRestant/7)*NbrJrSem)
End If
' Calcul de la duree quotidienne de la tâche
If TaskActEnd <= today Then
calcDureeQuot = dureeRestante 'Duree restante établie dès le début en fonction du % complété.
Else
calcDureeQuot = (CDbl(dureeRestante)/ RealtimeLeft)
End If
End Function
I do like the approach, which is far more realistic about how individuals use and manage their own time than crude assumptions about person-days. Here's an alternative approach, based on a consideration of my working year (an academic year because I’m a teacher).
What I'm currently planning is the remaining stages of a Ph.D. that I'm (I hope!) about half-way through. I'm doing the Ph.D. part-time. My "day job" is teaching in a grande école. My teaching workload varies wildly through the year; thus from June to August I do no teaching (but take some holidays); in September to December teaching and related activities fully occupy a 50+ hour working week (don't tell the authorities! we're supposed by law to work a 35-hour week here...); in January to May my teaching workload reduces considerably and I have more time for research.
So the approach I'm adopting initially is as follows:
1. I'm setting Saturday and Sunday as non working days, and I'm setting the working day as 08:00 to 12:00 and 14:00 to 20:00 (for simplicity - in fact I tend to work 05:00 to 12:00, 14:00 to 18:00, but get distracted by Google News, so let's say I work ten hours a day for five days a week).
2. I'm scheduling large tasks labelled "Non-Research", corresponding to June to August, September to December, and January to May. The number of days I allocate to Non-Research will be 3 days (I take some holidays in this period!), then 4 days (I can still squeeze a day for non-teaching activities), then 1 days:
Non-Research
Research
June to August (13 weeks)
3 days per week = 13 * 3 = 39 days
2 days per week = 13 * 2 = 26 days
September to December (17 weeks)
4 days per week = 17 * 4 = 68 days
1 days per week = 17 * 1 = 17 days
January to May (23 weeks)
1 day per week = 23 * 1 = 23 days
4 days per week = 23 * 4 = 92 days
TOTALS
130 days
135 days