Skip to content
This repository has been archived by the owner on Nov 7, 2021. It is now read-only.

Extensions #41

Open
matt-allan opened this issue Jul 24, 2020 · 0 comments
Open

Extensions #41

matt-allan opened this issue Jul 24, 2020 · 0 comments

Comments

@matt-allan
Copy link
Owner

matt-allan commented Jul 24, 2020

Is your feature request related to a problem? Please describe.

I'd like to be able to use this tool for evidence based scheduling. To do that I need to be able to:

  • Associate estimates with tasks.
  • Calculate velocity for each task (divide estimated time by actual time)

I don't need to do the reporting / estimating part within hours. Instead I can find the velocity of similar tasks and input that into whatever I end up using to run the Monte Carlo simulations. ...But it might be nice to run reports like 'the average velocity for tasks with the tag 'migrations'.

Describe the solution you'd like

This tool should be a general purpose time tracking tool; not an evidence based scheduling tool. So we need to allow extending it with features that aren't built into the core.

This particular feature could probably be supported with a custom field API. So maybe something like:

# add custom meta fields
hours meta:add estimate --interval
hours meta:add velocity --computed 'estimate / elapsed'

# Track time with meta fields
hours start --tag migrations --notes 'adding emails table' --estimate '20 minutes'

# report with an aggregate function on meta fields
hours report --aggregate='AVG(velocity)' --tag=migrations

Describe alternatives you've considered

Alternatively, since it's written in a scripting language it isn't too hard to add extensions. So maybe we add an extension API that lets you run arbitrary PHP code (i.e. installed via Composer). The downside of this is of course you need to know PHP. The upside is there's a lot more flexibilty and we don't have to write an expression language.

Additional context

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant