•  
     
    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
Empty
Done
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#12537
Manuel Vacelet (vaceletm)
2019-08-27 14:34
2018-11-20 15:52
4142

References

Follow-ups

User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
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
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • So that
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes