26/05/05
Should Mantis support time tracking? |
The issue of time tracking support in Mantis has been raised several times before. There have been several patches and discussions about it. However, so far the feature has not made its way into Mantis source code.
David Newcomb has contributed a patch that is updated to integrate with Mantis 1.0.0a2 which is our latest release. I haven't reviewed the implementation of the patch, but I have to admit that I like the way the patch is "campained" and presented
. Thanks David for that.
Based on the demo installation, the patch provides the following functionality:
- Ability to add a note with an associated duration of time.
- Ability to generate a report within the issue view page, which includes the total time spent by each user on the currently open issue.
- Ability to generate a billing report for all issues of the current project, and within each issue the total times for all the users who worked on it. This report all accepts the billing rate and shows the sums in the report.
My comments with regards to this particular implementation are:
- Consider using the term "Time Tracking" rather than "Time Taken".
- It would be useful to make the billing report work on the issues matching the current filter. This will allow generating billing reports based on a certain release, a certain state, or issues belonging to a certain customer. The date range for the time spent on the job will then act as a second level filter.
- It would be nice to add a report which shows the hours spent by a developer on all issues matching the current filtering and the report date range. This is useful to generate a developer weekly report and make sure that he generated the required billable hours.
- I believe it is critical to have the billing report formatted in a way that is printer friendly. Hence, I suggest a print/screen format, similar to other views/reports that we have.
- Should consider a compact format for the case where only one person worked on the issue.
- The time duration entered with the notes accepts negative duration. Is this intentional?
- In the screen version of the billing report, the issue ids should link back to the issue view pages.
- The currency for the billing rate should be customizable. Similar to the sponorship currency.
- I would assume that the billing rate is generally dependent on the developer (or users who spend time on the issue), the customer, and the project. Hence, a general flat rate is typically not good enough. To make things simple, I would recommend implementing a custom function which returns an hourly rate when given a user_id, issue_id. We can then have a flat rate that is used when this method returns -1. In this case, the default implementation for the custom function should return -1.
- At the moment, there is no way for the user to enter back dated notes to reflect work that was done in the past. The system assumes that the users will enter their ours daily.
- Document the database changes on the patch description page
That's all for now, as mentioned before this is based on reviewing a demo of the feature, the code is not reviewed yet. I will have to look at the following before making a final decision regarding including this in Mantis:
- Feedback from core development team.
- Feedback on this post and on the mailing list.
- Previous discussions, patches, and daily report implementation.
- Review the code for this patch.
Comments:
So far things look good, while I think this feature has a good ways to go before it is polished, it works (with small issues) and you can configure it to off so it doesn't impact regular use.
I'd like to see it become part of the main tree, even if it is off by default and marked experimental. That would really aid in development of this feature and get some good feed back from testers.
While I agree with all of Victors comments, I don't think all of those need to be implemented before it's included in the main code tree.
Fair enough!
2 & 3. Current filter
Ok - my next release
4. Print Screen for report
Ok - good idea. I was more thinking of adding them to the export in excel,
export in word formats, etc then the user can format it themselves.
5. Compact format
This is a variation of 2&3
6. -ve duration
Bug! I'll fix for my next release.
7. Issue link
I have wanted to do this but could not find a suitable command to do it
without creating another sql query. Maybe it's different in 1.0.0 - I'll
check.
8. Currency
Fair enough - next release
9. Custom rate
Already started to think about this. It is in my release notes as a future
enhancement.
10. Entering hours
In order to get to the point of entering a bugnote an amount of work would
have been done. If you spent 4 full days on it then 4 * 7 = 28 hours. Enter 28:00 in the time taken field. It is not nessacery to do it daily.
11. Document the db changes
So changes in the Configuration of my release notes at:
http://www.bigsoft.co.uk/projects/mantis/mantis-1.0.0a2-time_taken.html
Would I be expected to do all the changes before it can be accepted, or
can I define a roadmap and introduce them gradually. It's taken quite
a bit of time to get this far, and I don't really want to spend all
my time merging between releases.
Additional comments can be found at: http://bugs.mantisbt.org/view.php?id=4428
There are 2 users to play with:
joebloggs (for the uk people)
johndoe (for the us people)
The passwords are the same as the usernames.
- a total sum of selected bugs could be made (filter, ID enumeration per select box, ...)
Also would be interesting to be able to measure the percentage of issues, that meet the time fixing defined for a specific priority
If this feature isn't "complete" upon release of Mantis 1.0, just note with a warning somewhere that it's "alpha"... another good reason to make it optional.
I think that we should concentrate on gathering the information and reporting it. Export of the details to an external billing system is a necessary part of the system. I would avoid adding too much code relating to individual costs and related detais. A custom function to calculate costs would probably be the best way to do this.
Currently I copy-paste data to Excel and use Excel's Autofilter and Sum features to calculate salary for a developer. Surely, as the feature matures, I expect to see that functionality to be built-in.
One question, is it possible to hide the field from certain profiles (observer, reportes, etc.)?
Thanks in advance.
One of the things i did, was to create a bridge between Mantis and Timesheet, the latter having most of all the functionality needed.
This way, we could have the best of both worlds.
If you are interested, I can make this add-on available. Just drop me a note on my home-site.
I would like to have 3 time fields:
-Budget
-ETC (Estimated Time to Completion)
-Worked hours
Project / posting member MAY be a clue to the rate, and an external lookup is a good idea - BUT even if the lookup included category information, a single job might have two different types of work performed by the same person at different rates or tax statuses.
Consider a task: "Install replacement printer" - here in BC Canada, running a cable that enters the wall would be taxed one way, the configuration of the printer would be taxed another way.
My perfect world was to use a lookup to return a selection list, which would be saved with the task note and could be used for billing - the rate doesn't need to be stored on the note, but COULD be overridden on the note.
Just a crazy thought - it's very clear in my mind if it isn't here - thanks again!
I have been looking on Mantis as an Requirements tracking, for a long time. But always stops because I need to see dynamic of implementation.
For example need report.
In first column filtered issues.
In first row selected time, or milestones, or builds.
And from it I can see a dynamic and on time implementation.
We definitely need this feature (and am implementing it from the patches as we speak) - and also some form of reporting would be great too.
One note: I would not spend too much time implementing billing / rates etc. Most companies have processes in place for converting hours worked -> billing. I would simply make the data visualization and export as easy as possible.
Cheers
BB
Comments are closed for this post.