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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request