Worth
Suppose your client asks you to track how many man hours were spent by each contributor between a given date range. Aside from keeping track of this info manually, every day, for every little thing that you do, how might one accomplish this feat of mental agility?
How about a command line tool for analyzing your git logs?
Running
gem install worth
cap-hours 2014-10 2014-11
will print a csv report for each author out into the console.
There will be a row for each commit for each author within the range, along with that commit's message, and calculated weight
| author | message | weight |
|---|---|---|
| rwassey | Added some less complex feature | 0.4 |
| rwassey | Added some super complex feature | 3.8 |
How is the weight of each commit calculated?
Here are the values which are considered as part of the calculation
| value | description |
|---|---|
| all_changes | sum of all changes by all authors |
| changes for commit | changes within one commit as a percentage of all_changes |
| hours in range | we assume that each contributor is spending a total of 20 days working in a month, with 8 hours development each day |
weight is then a function of
hours_in_range * changes_for_commit
NB This tool should ony be used as a guide for effort estimations. Don't go asking your client for renumeration based on these reports!
TODO
- See the issues page for a list of known issues
Installation
Add this line to your application's Gemfile:
gem 'worth'
And then execute:
$ bundle
Or install it yourself as:
$ gem install worth
Usage
cap-hours <start-year-month> <end-month-year>
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request