Making my work stats public
Table of Contents
This time I'll break a little my defaults.
With some Python scripting and a better understanding of Org Mode, I managed to generate a report of how much time I spend in each task type (review, feature, bug, etc).
The insights met my initial expectations, and then, suddenly I wanted to share that.
How
I won't explain that much. My last devlog provided an quick overview, so feel free to see it.
The full code and a working example now exists in the repo: thisago/archiveReporter: Report insights about your Org Mode archive! - Codeberg
The process
I encourage you to review the real repo, but I'll overview here a little:
- I have an global archive file which holds all my done/cancelled tasks.
- An python script provides functions to handle the tables, which Org Babel converts to a 2d string vector
- A report file (ie.,
reports.org) is the entrypoint. It uses the global archive file.- It collects the total count of tasks and clocked time with a general clocktable, scoping only the job scope.
- Then I create a couple of reports, one for each major task type, matching the Org tag.
- A Org Babel block imports the Python script as lib and runs the report.
- A bash code block dumps the results to a file, for easy comparison.
- And now, a bash script anonymizes the data (removes the hours and salary info), which I commit in a separated repo.
The repo with the anonymized reports: thisago/anonimizedArchiveReports - Codeberg
Last month report
Here's an example, the last report:
#+title: 202602 * Hour Price Expecting 160 worked monthly hours by a XXk/mo salary: - Worked a total of *XX* hours across *58* work items. - This means a salary of *XX/h*. * Comparing the Workload Of a total of *XX* hours worked this month across *58* work items. - =review= :: *XXX hours (22.8%)* across *19* work items (32.8%) - =feature= :: *XXX hours (6.4%)* across *3* work items (5.2%) - =bug= :: *XXX hours (28.0%)* across *8* work items (13.8%) - =task= :: *XXX hours (30.7%)* across *19* work items (32.8%) - =social= :: *XXX hours (3.1%)* across *2* work items (3.4%) - =plan= :: *XXX hours (1.7%)* across *2* work items (3.4%) - =investigate= :: *XXX hours (4.0%)* across *2* work items (3.4%) - =polish= :: *XXX hours (1.0%)* across *1* work items (1.7%) Cumulated total percentage *97.7%* (100% means all that tasks was considered)
Keep yourself on track. Bye.