•  
     
    story #12537 configure my burndown/up & sprint with a start date & end date
Summary
Empty
configure my burndown/up & sprint with a start date & end date

I don't have to manually compute the duration when my timeslots are fixed

There are several elements that needs a milestone duration to works properly

  • Burn-up chart
  • Burn-down chart
  • Milestone dates display
  • Computation of "is it hot or not"

At the moment, the values are computed with "Start date" + "duration" with some magical to exclude saturday and sunday. It should be possible to define the timeperiod with a combination of "Start date" + "End date" as an alternative (keeping the Sat/Sun magical exclusion).

Timeframe semantic

Introduce a "Timeframe" semantic in tracker configuration (target: milestones trackers). A Timeframe can be defined with either

  • A start date and duration
  • A start date and a end date

In semantic configuration, tracker admins can select which computation mode they prefer and the target fields (like other semantics).

Impacts of this new semantic

  • Fields that are being used by the semantic can no longer be deleted until the semantic is deleted
  • Burndown and Burnup charts depends on this semantic
    • Configuration error messages should be change to refer to Timeframe semantic instead of individual fields
  • Timeframe Semantic cannot be deleted as long as there is
    • A burndown
    • Or a burnup
    • Those dependencies should be clearly stated in Timeframe semantic and in each element.
  • On Velocity semantic
    • There is no dependencies between semantics (technically they can live independently)
    • However, the display of the graph should check correct usage of Timeframe semantic:
      • When no sub-milestones have a Timeframe semantic defined, no graph is displayed but an error message to inform that a Timeframe is mandatory to get the graph.
      • When at least one sub-milsetone doesn't have a Timeframe, the graph is displayed in best-effort and an error message is displayed to inform about missing configuration of Timeframe semantic.
  • There is a "ForgeUpgrade" bucket to import hardcoded configuration to semantic for existing trackers
    • All trackers were there are duration & start_date used fields will get the new semantic

When the configuration of the Timeframe semantic is changed (either computation mode or fields)

  • there is no re-computation of existing graphs.
  • a new entry is added in project history to record the changes (will ease support)

Tracker common work with new semantic:

  • should be inherited a tracker creation.
  • imported/exported by XML
  • added to REST tracker resources

The documentation is updated with new semantic and more details about semantic dependencies (should be done with "Done" semantic as well).

Usage of Timeframe

The new timeframe semantic is used in

  • Burndown boundaries definition
  • Burnup boundaries definition
  • Velocity chart tooltip
  • Display of milestone dates in Planning
  • Display of milestone dates in Cardwall + time progress bar
  • AgileDashboard service page to identify what's hot and what's next

If there is no timeframe semantic defined

  • It's not possible to have burndow or burnup field
  • It's not possible to define the Velocity semantic
  • Dates and time progress bar are not displayed in Planning and Cardwall views
  • There is no longer "What's next" on AgileDashboard, there is only "What's done" and "What's hot".

Usage in artifact view

An helper is added on "duration" or "end_date" field (depending of the config) to display the reverse information automatically computed.

  • When 'duration' is used, the corresponding end date is displayed as an hint (like for computed value)
  • When 'end_date' is used, the corresponding duration is displayed (the same way).

This info is displayed

  • In Artifact view
  • In Artifact "angular" modale (Planning view & co)

To be checked technically

  • There are SQL queries with direct usage of duration that are likely to be false ATM (as duration can be computed). This needs to be checked
  • All direct usage of start_date / duration must be replaced by an abstracted "timeperiod" representation.
Empty
Status
Done
Development
Empty
Empty
Details
#12537
Manuel Vacelet (vaceletm)
2019-08-27 14:34
2018-11-20 15:52
3551

References

List of items referenced by or referencing this item.

Git commit

Follow-ups

  • User avatar
    • Status changed from On going to Done
  • User avatar
    gerrit #15848 integrated into Tuleap 11.4.99.201
  • User avatar
    gerrit #15802 integrated into Tuleap 11.4.99.157
  • User avatar
    gerrit #15749 integrated into Tuleap 11.4.99.154
  • User avatar
    gerrit #15768 integrated into Tuleap 11.4.99.152
  • User avatar
    gerrit #15769 integrated into Tuleap 11.4.99.134
  • User avatar
    gerrit #15764 integrated into Tuleap 11.4.99.128
  • User avatar
    gerrit #15757 integrated into Tuleap 11.4.99.127
  • User avatar
    gerrit #15763 integrated into Tuleap 11.4.99.120
  • User avatar
    gerrit #15747 integrated into Tuleap 11.4.99.119
  • User avatar
    gerrit #15754 integrated into Tuleap 11.4.99.118
  • User avatar
    gerrit #15727 integrated into Tuleap 11.4.99.115
  • User avatar
    gerrit #15726 integrated into Tuleap 11.4.99.96
  • User avatar
    gerrit #15694 integrated into Tuleap 11.4.99.80
  • User avatar
    gerrit #15689 integrated into Tuleap 11.4.99.70
  • User avatar
    gerrit #15573 integrated into Tuleap 11.4.99.23
  • User avatar
    gerrit #15517 integrated into Tuleap 11.3.99.179
  • User avatar
    gerrit #15510 integrated into Tuleap 11.3.99.173
  • User avatar
    gerrit #15481 integrated into Tuleap 11.3.99.170
  • User avatar
    gerrit #15474 integrated into Tuleap 11.3.99.167
  • User avatar
    gerrit #15469 integrated into Tuleap 11.3.99.161
  • User avatar
    gerrit #15500 integrated into Tuleap 11.3.99.159
  • User avatar
    gerrit #15483 intgrated into Tuleap 11.3.99.154
  • User avatar
    gerrit #15484 intgrated into Tuleap 11.3.99.152
  • User avatar
    gerrit #15473 integrated into Tuleap 11.3.99.146
  • User avatar
    gerrit #15438 integrated into Tuleap 11.3.99.144
  • User avatar
    gerrit #15470 integrated into Tuleap 11.3.99.142
  • User avatar
    gerrit #15457 integrated into Tuleap 11.3.99.140
  • User avatar
    gerrit #15456 integrated into Tuleap 10.3.99.139
  • User avatar
    gerrit #15453 integrated into Tuleap 11.3.99.134
  • User avatar
    gerrit #15414 integrated into Tuleap 11.3.99.127
  • User avatar
    gerrit #15396 integrated into Tuleap 11.3.99.86
  • User avatar
    gerrit #15391 integrated into Tuleap 11.3.99.81
  • User avatar
    gerrit #15380 integrated into Tuleap 11.3.99.70
  • User avatar
    gerrit #15368 integrated into Tuleap 11.3.99.62
  • User avatar
    gerrit #15350 integrated into Tuleap 11.3.99.60
  • User avatar
    gerrit #15353 integrated into Tuleap 11.3.99.48
  • User avatar
    gerrit #15298 integrated into Tuleap 11.3.99.47
  • User avatar
    gerrit #15339 integrated into Tuleap 10.3.99.32
  • User avatar
    • Acceptance criteria
  • User avatar
    gerrit #15342 integrated into Tuleap 11.3.99.30.
  • User avatar
    gerrit #15288 integrated into Tuleap 11.2.99.179
  • User avatar
    gerrit #15290 integrated into Tuleap 11.2.99.162
  • User avatar
    gerrit #15284 integrated into Tuleap 11.2.99.161
  • User avatar
    gerrit #15258 integrated into Tuleap 11.2.99.155.
  • User avatar
    gerrit #15248 integrated into Tuleap 11.2.99.149
  • User avatar
    gerrit #15243 integrated into Tuleap 11.2.99.139.
  • User avatar
    gerrit #15240 integrated into Tuleap 11.2.99.133.
  • User avatar
    gerrit #15216 integrated into Tuleap 11.2.99.130.
  • User avatar
    gerrit #15211 integrated into Tuleap 11.2.99.125.

    • Status changed from To be done to On going
  • User avatar
    Following our (@jmasson & myself) technical breakdown of this story, here is a schema that will help us to decide how to start development.

    ```mermaid
    graph LR
    start(Start date & End date)
    start --> choose(I can choose between 2 timeframes def)
    choose --> ui_choose(UI to define)
    choose --> fd_choose(Prevent fields deletion)
    choose --> sd_choose(Prevent semantic deletion)
    choose --> xml_choose(XML import export)
    choose --> project_choose(Project inheritance)
    choose --> rest2_choose(REST tracker resources)
    choose --> semantic(Introduction of timeframe semantic)
    start --> helper(Artifact helper)
    helper --> choose
    helper --> modale(Modale)
    modale --> rest(REST)
    helper --> view(View)
    helper --> timeframe(Optional timeframe representation)
    start --> direct_usage(no moar direct usage of duration)
    direct_usage --> burn(Burnup/down boundaries)
    direct_usage --> velocity(Velocity tooltip)
    direct_usage --> milestone(Milestone dates)
    direct_usage --> next(What's next)
    milestone --> planning(Planning)
    milestone --> cardwall(Cardwall + time progress bar)
    burn --> timeframe
    velocity --> timeframe
    next --> timeframe
    planning --> timeframe
    cardwall --> timeframe
    choose --> timeframe
    semantic --> ui(UI to define)
    semantic --> fu(ForgeUpgrade)
    semantic --> fd(Prevent fields deletion)
    semantic --> sd(Prevent semantic deletion)
    semantic --> xml(XML import export)
    semantic --> project(Project inheritance)
    semantic --> rest2(REST tracker resources)
    ```

  • User avatar

    Couldn't this new Timeframe semantic be also used for *Gantt charts* in milestones or any tracker (e.g. standalone actions) having start & forecast end fields ?

    That's a good point, it would probably ease the confiuration of gantt chart graph.

    By the way, the AgileDashboard doc still states that Saturday/Sunday exclusion can be configured ;)

    Good catch, I just fixed that. thanks for the report.

  • User avatar
    Couldn't this new Timeframe semantic be also used for *Gantt charts* in milestones or any tracker (e.g. standalone actions) having start & forecast end fields ?
    By the way, the AgileDashboard doc still states that Saturday/Sunday exclusion can be configured ;)
  • User avatar
    • Acceptance criteria
  • User avatar
    • So that
    • Acceptance criteria