This is probably a topic I'll come back to, but for now if you're interested in seeing the first examples produced, they are available with the source code download at Source Forge. The initial area where Concordion is being used is the specification of constraints and dependencies. This is a complex area and we felt just adding unit tests for the xProcess scheduler would be insufficient to capture the nuances of the effect of adding a constraint; for example a task ending after the start of another one. This constraint alters not only the end date of the task, but also the order in which certain aspects of scheduling take place, which could affect the forecast dates of other tasks. Comments in the test code are simply not good enough to capture this behaviour, but Concordion provides ideal flexibility and clarity to document and test such behaviour. So far the experience has been very positive.
Below is an example of the generated output from Concordion following the test run.
Note - the links in the generated output below are to local files and therefore not accessible!
Constraints and DependenciesConstraints may be defined on a task to limit when the task may either start or end. For example a task may be constrained to start after a specific calendar date, or a date which is manually defined on another task such as its target start date. Constraints may also reference the forecast date of another task, in which case it may be referred to as a dependency.
Dependencies defined on a task from another project use the forecast dates from the last time that project was scheduled - see Dependencies on another project - (note: such dates will be "NEVER" if the depended-on project has not yet been scheduled). Dependencies on tasks in the same project however require that the depended-on task is scheduled before the depending task. The depended-on task may be promoted in schedule order (start-after-end-of constraints) or the depending-on task may be demoted in schedule order (other forms of dependency such as start-after-start-of constraints). More details can be found on this and following pages.
Example 1. - With no ConstraintsAssume that today is Wednesday 2012/4/12. (2012/4/12 )
- a small project starting today
- with one fully available participant available 8 hours per day for the duration of the project
- having 2 date-based tasks (overheads of 20% each on all participants, one for the duration of the project and the other for the first week)
- 10 effort-based tasks with 16 hour estimates, named a-j,
|Task Name||Task Type||Hours / %||Earliest Start||Earliest End||No. of Participants|
|a For Horses||effort-based||16||1|
|b For Mutton||effort-based||16||1|
|c Forth Highlanders||effort-based||16||1|
|d For Rential||effort-based||16||1|
|e For Braun||effort-based||16||1|
|f For Vessence||effort-based||16||1|
|g For Police||effort-based||16||1|
|h For One And One For All||effort-based||16||1|
|i For Novello||effort-based||16||1|
|j For Oranges||effort-based||16||1|
When the project is scheduled the project forecast start will be: 2012/4/12
Then the start and end dates of the workpackages will be as follows:
|Workpackage||Forecast Start||Forecast End (50%)|
|a For Horses||2012/4/12||2012/4/17|
|b For Mutton||2012/4/17||2012/4/20|
|c Forth Highlanders||2012/4/20||2012/4/24|
|d For Rential||2012/4/25||2012/4/27|
|e For Braun||2012/4/27||2012/5/1|
|f For Vessence||2012/5/2||2012/5/4|
|g For Police||2012/5/4||2012/5/8|
|h For One And One For All||2012/5/9||2012/5/11|
|i For Novello||2012/5/11||2012/5/15|
|j For Oranges||2012/5/16||2012/5/18|
A dependency of one of these tasks on a task that is lower in priority will change the order of scheduling and result in different forecast dates for the project.