Skip to content

Fix Project and Task #760

Closed
Closed
@rjyounes

Description

@rjyounes

In gist 11.1.0 we have the following:

  • TaskExecution, subclass of Event, defined as "An event characterized by a defined piece of work that is either scheduled, accomplished, or both." This is identical to gist 11.0.0 Task.
  • ProjectExecution, subclass of TaskExecution, defined as "A project execution is a task execution (usually a longer duration task) made up of other task executions."
  • ScheduledTaskExecution, subclass of TaskExecution, defined as "The execution of a task that was planned to occur at a given time. When it was scheduled, it would have been in the future, but now might be in the past."

We also have TaskTemplate, subclass of Template, defined as "An outline of a task of a particular type, which is the basis for executing such tasks." This is roughly like a process specification - a recipe or set of instructions.

My interpretation of TaskTemplate is that it's not meant to be a one-off - like it's superclass Template, it should be able to serve as the basis for a number of outputs. E.g., a recipe for chocolate cake can be the basis for a number of chocolate-cake making events that results in different chocolate cakes.

@mkumba asks: "If we define a Project[Execution], say the Juniper project, is that not a Project[Execution] either until it gets scheduled?"

I think we need a third type of object here, DefinedTask and DefinedProject. Task and Project are probably the preferred terms if starting from scratch, but that's not currently possible because they have been deprecated and replaced by TaskExecution and ProjectExecution.

TaskExecution would be related to a Task - use isBasedOn? Similarly for ProjectExecution.

In a similar vein, @mkumba writes:

"Something got lost along the way.

A task template is a cookie cutter. It is something you create tasks from. In Pipedrive or Jira or a project management system, or a patient scheduling system, or a calendar, when you say “new” or “create” you create a task, and the nature and that task is determined by the template. But the template isn’t a task or anything you can do, its a template.

Used to be in gist we had three stages a task went through. It went from being defined, to being scheduled to being completed. So a defined task is like a Jira ticket in the backlog, we know what it is and what its about we just haven’t scheduled it yet. We can then schedule it. In some domains there is another step to resource it, and then finally we do it. In most domains the task accretes more dates, resources and activity, but in some domains it makes sense to create a separate instance for the actual task (execution in 11.1 parlance) and refer to the schedule, but a lot of domains the task just evolves.

Where I think this thing drifted was maybe:
Somewhere along the way we dropped the concept “definedTask” and just said that’s just a task that hasn’t yet been scheduled or accomplished.
We tightened the definition of event, to where now it has to have and start and end date (we were kind of loose historically with some values, yeah this task (say a Jira ticket) may not have a start date yet, but it will eventually. Weirdly the current definition should create an inconsistency, (it says an event has exactly 1 endDate, but one of its children, contemporaneousEvent is max 0) I think its not throwing an exception because exactly 1 rarely does any inference.

My suggestion is we relax event to include things that happened, are scheduled to happened, or we expect to schedule or something like that."

Metadata

Metadata

Assignees

Labels

impact: minorNew, backward-compatible functionality (does not change inferences; e.g., adding a term)priority: must haveRequired feature or bug fix; highest prioritystatus: implementation specifiedImplementation has been specified. A developer should be assigned.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions