ConductAS / TimeFlux

The open and easy way of time management and billing
MIT License
5 stars 3 forks source link

As a manager, I want improved functionality that can reduce the amount of hours which is registered on wrong projects, so that we do not loose money or make the customer angry #6

Open mrjetset opened 13 years ago

mrjetset commented 13 years ago

Since the activity is defualted to the last one used, people register hours on wrong projects. This can lead to loss of money if the hours are registered on onternal projects, or angry customers if the hours are registered on the wrong project.

I need some suggestions on how this could be solved. Maybe color coding of internal/external could help for most of the problems? Or some logic that could tell you that most of the other billable hours are registered on another project (Are you sure XXXX is the correct project?). This often happens when someone work with one customer on a daily basis, but use some hours one day to help another customer. Often the following hours are registered incorrectly on the customer one helped for a few hours.

I'm not sure what is the best solution for this problem.

gam commented 13 years ago

A simple suggestion for addressing this issue (replaces the use-last functionality):

  1. Have users specify a default activity which is preselected in the activity selector. The user default activity will always be pre-selected (sticky) when creating new entries.

    Scenarios:

    i. Given that the user has no default activity set And no system default activity has been set When a user starts registering a new time-activity entry Then he/she must select a default activity And this activity will be set for the new entry ii. Given that the user has a default activity set When a user starts registering a new time-activity entry Then the user's default activtity will be pre-selected

    Possible extension points:

    a) Given that the user has a default activity set When a user selects a non-default activity Then he is prompted to reassign his/her default activity to the chosen one b) Given that the user has no default activity set And a system default activity has been set Then the system default activity will be pre-selected

Extension (b) obviously has prerequisites. Cases when authorization is removed from default activities could be handled by removing the default.

peterskeide commented 13 years ago

Another, even simpler solution: remove preselection entirely. As long as there is any kind of preselected activity, there is a possibility of the user forgetting to change it.

A more complex possibility is preselecting the activity that the user has used most in the current week or month.

A configurable default activity was considered before I think. It's definitely a possibility, but preferably if it's optional. Prompting the user for default activity changes can become a bit annoying, esp for expension point a.

gam commented 13 years ago

Another simple solution to this issue might be to implement https://github.com/ConductAS/TimeFlux/issues#issue/16

If it were possible to register hours in week view, this entire issue might be moot.

peterskeide commented 13 years ago

We could also offer two separate buttons for adding time entries to a day: One for billable entries, where the activity list will only show billable acitvities, and one for unbillable entries, where only unbillable activities can be selected.

This will make the list of selectable activities shorter and simpler to use. If we also remove "default" selections, the user should be able to select the correct activity with a minimum of mental effort.

That said, users will make mistakes. The question is how far we are willing to go to protect users from themselves. If we go too far, we end up with something that is a pain to use (remember the Windows Vista popup hell).