Task planning is subject to many influences that are often not fully known at the time of planning. As a result, plans are constantly being adjusted. For future planning, it can be interesting to see how planning assumptions for a task have changed.
Therefore Plannings can be associated to Tasks in order to track changes in Task.start and Task.end until Task.closed was not set to true.
@startuml
!pragma layout smetana
skinparam linetype ortho
interface Task { }
interface Planning
{
Task task()
LocalDate timestamp()
Optional<LocalDate> start()
Optional<LocalDate> end()
}
Planning "many" *-l> "1" Task : " task "
@enduml
@startuml
!pragma layout smetana
skinparam linetype ortho
interface Task { }
interface Expenditure
{
Task task()
LocalDate timestamp()
Long amount()
}
interface Estimate
{
Expenditure expenditure()
LocalDate timestamp()
Long amount()
}
Expenditure "many" *-l> " 1" Task : " task "
Estimate "many" *-l> " 1" Expenditure : " expenditure "
@enduml
Task planning is subject to many influences that are often not fully known at the time of planning. As a result, plans are constantly being adjusted. For future planning, it can be interesting to see how planning assumptions for a task have changed.
Therefore Plannings can be associated to Estimates (indirectly linked via Expenditure) in order to track changes in Expenditure.amount until Task.closed was not set to true.