For instance, if we use the pointer to denote fractions between 0 and
1, then if you have this hierarchy: Project:Task: Subtask: Sub-sub
task, then if sub sub task contributes half the value of subtask and
subtask contributes one-quarter the value of task, then sub sub task
would end up with a value of 1/2 X 1/4 = 1/8. The value of 1/8 would be
used to prioritize sub-sub task within Project.
BUT sub sub task must have a value absolutely, because its
prioritization is being compared to tasks that do NOT belong to
Project. Since the machinery is present to assign a value to Project, I
assume you can give Project an absolute value. It can't be relative to
anything else, because it has no parent.
If I'm right about how it works, all that matters in rating the various
end goals is their relative importance. If you have three end goals,
each *equal* in absolute importance, then it doesn't matter if you give
each a value of 1/2 or 1/4, just so long as you apply the same scale to
each ultimate Project.
Do I have it right?
Stephen R. Diamond
This isn't logical. It is a BLUNDER plain and simple for an individual
to assign a higher priority to a task with very low importance for a
project a higher priority than a task of critical importance to another
project, merely because the first project has a slightly higher
priority.
I think if you did it multiplicatively as I suggested in my first
comment, the you would have a simply brilliant application that uses
the outline hierarchy fully to assign priorities that might not be
immediately apparent from inspection.
Stephen R. Diamond
Thanks again for your comments and ideas. I've answered on some of your
questions in a private communication.
Now I've prepared more detailed explanation of how tasks are ordered in
MyLife ToDo list:
http://www.mylifeorganized.net/products/my-life-organized/how-it-works-todo.htm
Frankly I'm not sure if I understand your idea of "multiplicative"
priority completely. Could you please explain it in some kind of
example? I can assume that the current model in MyLife is not ideal and
would love to improve it.
Thanks,
Andrey Tkachuk
www.myLifeOrganized.net
Thank you for your interest. Here's an example. Assume I have three
root level "Projects": Work, Duties, and Fun.
Under work I have a "Task": Draft demurrer. Under that Task I have the
Sub-Task: Legal research.
Under Duties I have the Task "Pay Bills" and the Subtask: "Deposit
money in checking account."
Under Fun I have the Task "Play tennis match" and the Subtask "Reserve
tennis court"
I assign an importance to each of the Projects. The importance of work
is .5; the importance of Fun is .3; the importance of Duties is .2.
This is a purely subjective appraisal--importance to me.
Then I estimate the relative importance of each task for its Project.
Draft demurrer has a .1 importance for Work, meaning that I estimate
that the demurrer should be weighted .1 in estimating my success at the
Project, Work. Then I estimate the importance of legal research for the
demurrer. It gets a relative importance of .6.
Let's jump to Duties. Paying the bills get a .3 relative to the sum
total of my Duties. Putting money in the bank gets .6 relative to
paying bills.
Let's look at what determines the order in the to do list of the
subtasks Legal Research and Put Money in Bank. Which is more important
to do; if there were hypothetically a time squeeze to do one or the
other, which should I sacrifice.
Legal research = Work x Demurrer x Legal Research (the first an
absolute importance and the second and third relative to their parents)
= .5 x .1 x .6 = .030
Put money in the bank = .2 x .3 x .6 = .036
Putting money in the bank is more important than drafting the demurrer,
with these assignments. The present method would make drafting the
demurrer higher priority, simply because the Project Work has more
importance.
Is there any question which approach is the logical one: the approach
that uses all the information available, or the approach that using
most of the information only to break ties.
I'm not concerned about tie breakers. With careful estimation of
importance, ties will be very rare.
Stephen R. Diamond
An interesting complication is where the task serves two Projects.
This, I would think, could be left for future development.
Thanks for your detailed explanation. I've placed your suggestion in
the "planned features" to analyze and make a decision later:
http://www.mylifeorganized.net/products/my-life-organized/features-plan.htm
"#F017 "Multiplicative" priority for the tasks"
In the meantime could you please comment on this situation which is
based on your example.
We have the following outline:
1. Complete very important project (0.8)
1.1 Send project report (0.6)
2. Organize party with friends (0.4)
2.2 Call friends (0.5)
Basing on your idea here is the importance of the tasks:
"Send project report" 0.8*0.6 = 0.48
"Call friends" 0.4*0.5 = 0.20
"Send project report" is more important - everything is OK so far.
Now I need to add details for "Send project report" (expand the outline
by adding more subtasks to this task)
1.1 Send project report (0.6)
1.1.1. Get the info from the team (0.5)
1.1.1.1 Organize meeting with the team (0.6)
1.1.2. Analyze information and prepare report (0.8)
1.1.3. Get approval on the report from my manager (0.9)
Now to complete "very important project" I need more subtasks.
Here is the importance of the first step for this project:
"Organize meeting with the team": 0.8*0.6*0.5*0.6 = 0.144
"Call friends" is still 0.20.
It means that "Call friends" is now more important then first step to
"Complete very important project". I've just added more subtasks for a
projects and the importance of these subtasks is now lower then subtask
of the project with initially lower importance ("Organize party with
friends"). This happens just because "Complete very important project"
has more subtasks. Even if these subtasks have high importance
themselves, each of them would decrease the "Multiplicative"
importance.
In "My Life Organized" however implemented a method of calculation the
priority of the tasks which does NOT depend on the number of subtasks.
In "My Life Organized" any subtask under project "Complete very
important project" will be more important then any subtask under
"Organize party with friends" because "Complete very important project"
is more important.
Could you explain me how we could solve this problem using your method
of calculation priorities?
Thanks,
Andrey Tkachuk
www.myLifeOrganized.net
In the example, it isn't clear which kind of importance is involved.
Let's assume you mean the second. Then if you failed to call the team
meeting, there would have to be a different way to get the information,
such as informal conversation.
If you mean the first, the amount of effort, it might indeed be more
important to put effort into calling friends, because, being the boss,
you can count on people coming to the meeting, and you don't have to
build the meeting like you might want to build a party.
I'd suggest that the last is the correct use of importance. Things that
simply have to get done some way or another and the amount of effort
doesn't matter except to do the bare minimum should be flagged in some
other way. With the second concept of importance, it must follow that
subdividividing a task decreases the importance of each part.
I've got a fairly long track record working with multiplicative
importance in such a tool.
Multiplicative importance has long been the foundation of another
program in this space called Life Balance. The multiplicative approach
works well as evidenced by the success of that program. The key when
going with a multiplicative approach is that you much Set the priority
of each Task RELATIVE to ONLY the parent , and not in context of
anything else.
The above example for your post represent the pit fall with such a
powerful but flexible approach, it assumes the user "gets it".
When looking at your test case a couple of things jump out. First your
sample seems to imply an ordered set of tasks. Are 1.1.1, 1.1.2, and
1.1.3 in-order tasks or parallel tasks?
If they are parrallel tasks then most everything is entered correctly.
But what you missed; is that 1.1.1.1 would have an importance of (1.0)
to task 1.1.1 because it's the only subtask; and therefore in a
multiplicative approach it MUST by definition be the most important
thing related to 1.1.1. and by that logic it would be (.21) =
0.8*0.6*0.5*1.0 This is a basic tenant of the multiplicative
approach. I've long believed that life balance is slightly flawed
because it doesn't force "single branches" to be importance (1.0).
Now if it's an ordered set of tasks the problem gets a bit different.
1.1.1, 1.1.2, and 1.1.3 would all by definition have a priority of
(1.0) since they must be done in order and when each one is up to bat
it will be the most important item to the project 1.1. Therefore in
ordered occurance you would have, at any time in the process, the
current up to bat task sitting at priority (0.6) as detailed in the
outline below.
1.1 Send project report (0.6)
1.1.1. Get the info from the team (1.0)
1.1.1.1 Organize meeting with the team (1.0)
1.1.2. Analyze information and prepare report (1.0)
1.1.3. Get approval on the report from my manager (1.0)
Ok now in the general sense, this example was a bad example of a
Parrallel set of tasks but you get the idea I hope.
Multiplicative is by far the best approach I've seen in 9 years to
solving prioritizing based on importance. However, you must either
build the tool to enforce certain logical adjustments -OR- assume smart
users who can grasp how to set it up. In my experience Life Balance
often times loses new users because the tool lets you setup up
non-sensical importances that result is strangely ordered to do list;
just as you did in your example case. Remember that this about modeling
the real world and not all possible combinations are going to occur in
nature just as the priorities in you sample wouldn't really occur; but
could very easily be miss entered into the tool.
All that said there is more to consider. Importance is just one piece
of the puzzle, you must also factor in due dates; and how long the task
will take to complete. When calculating priority based on importance
and urgency. In general:
myPriority = calcPriority(importance, duedate, durationtocomplete,
effort)
where calcPriority needs to be crafted to produce predictable results.
Ok enough said. If you decide to tackle the multiplicative approach
you'll have a winner of a tool and I'd be more than willing to engage
in discussions on how to make it work. This "software" space could use
some fresh tools working on these principles.
I've also used LifeBalance for awhile now and while I "get it", I still
find the order of some tasks frustrating in LB. You'll often hear LB
users talking about tweaking the importance until they get, what they
feel, is a reasonable order of tasks. I actually like myLifeOrganized
(MLO?) approach of being able to set certain tasks as Weekly, Monthly
or Yearly goals in order to bring them to the top. Even if you go with
a multiplicative approach, which I agree is very powerful, you still
need some way of overriding that to bring the focus around to
particular tasks.
My 2 cents
So let's define the names of the algorithms we are talking about:
1) "LB algorithm" - the way Life Balance calculates priority of the
tasks (sort them in the to-so) right now
2) "MLO algorithm" the way MyLife Organized does this. I think it is
mostly based on (1) with the only deference: "Weekly Goal" always
brings the task on the top. It is described there with more details:
http://www.mylifeorganized.net/products/my-life-organized/how-it-works-todo.htm
3) "Multiplicative algorithm" the way Stephen R. Diamond (and ratz?)
propose it.
4) "Combined approach" some kind of combination of the approaches.
If I understand everybody correctly the approach (3) is different from
approach (1) Right? But these words of ratz confused me. What approach
you mentioned here (1) or (3)? :
[ratz wrote]
>The key when going with a multiplicative
>approach is that you much Set the priority
>of each Task RELATIVE to ONLY the parent ,
>and not in context of anything else.
Because according to Stephen it is not a "Multiplicative" algorithm
right?:
[Stephen wrote:]
>I think if you did it multiplicatively as
>I suggested in my first
>comment, the you would have a
>simply brilliant application
Anyway I have a proposition for Stephen, ratz and Bob Pankratz. Can
you describe the algorithm you propose short and logical
(mathematically?) so that I understand the way you want me to implement
it. Once we agree on this algorithm I will implement it as an
alternative for the current MLO algorithm (you will have to select what
algorithm you will use in the options of the application). This way we
could play with this together and improve it if necessary.
What do you think?
Thanks,
Andrey Tkachuk
Ukraine
www.myLifeOrganized.net
>What would help me is a definition of the object values
>you currently have defined for a task item
>I can factor in everything you have
>available.
If I understand you correctly this is what I have right now:
1) Weekly goal (yes/no)
2) Importance (0-99) or you can use 0..1)
3) Time (how close the deadline is to the day specified)
4) Project completion per cent (how many subtasks of the current
project are still uncompleted)
More details of how I use it here:
http://www.mylifeorganized.net/products/my-life-organized/how-it-works-todo.htm
Let me know if this is the answer you wanted to have.
Andrey.
In experimenting with the LifeBalance algorithm, its clear to me it
invokes a multiplicative rule, which is modifiable by other
considerations. Presently MyLifeOrganized does not invoke a
multiplicative rule, despite collecting the information needed to use
one. Instead it uses the rule that the importance of the highest factor
always predominates, with the lower levels serving a tie-breaker
function.
Deriving the importance of a subtasks from the importance of the
Project it subserves can only be done one way. Anything else can only
be called error. The way you combine other factors that moderate the
impact of importance in determining overall priority--I propose these
terms to capture the distinction, importance for the result of the
computation based on the hierarchy and priority for the ultimate factor
determining placement in a list--is artful rather than necessary and
may reflect not only imperfect guesses as to how to model
mathematically the function the individual would like to use but also
value judgments about what function the individual should use. I'm not
sure the mathematically true function should be clouded with the ad hoc
pragmatic corrections. Why compute something that is imaginary? Perhaps
the best approach might be to output an initial priority based solely
on importance, and also capture the additional relevant information.
How to combine the information may best be left to the user's ad hoc
judgment. The user needs to know what the rational importance of a task
is AND needs also to _consider_ whether some other reason over-rides
importance in a given situation.
Personally, I didn't come to the multiplicative approch via Life
Balance. I "invented" it myself, and then looked to find programs that
proved that my invention was NOT actually novel. I found Life Balance
from Andrei's recommendation. The root of my belief that multiplication
is the way to go comes from using the outline processing software
BrainStorm (http://www.brainstormsw.com), which maintains the users
focus by only displaying two levels of an outline at a time, so that
the user only needs to consider the relevance of an item to its parent
and its consistency with its sibling topics. I figured this same
hierarchical concept would be useful in determining priority in a todo
list.
I love the ideas you are throwing around. I have been contemplating
some of these features for quite a while. There are 2 additional
factors I would like to have considered.
The first, and to me the most important of the two, is a concept of
time needed. For example, if I give each task an estimated completion
time, I would like to have a hotkey (CTRL-T maybe) which asks me how
much time I have to work. I would then fill in this value and MLO would
show me only the things I have time to work on, in the context I am in.
So, if I have 20 minutes until a meeting, I would hit CTRL-T, fill in
20, and MLO would filter and show only the tasks that are 20 minutes or
under, still sorted by the MLO algorithm. Taking this one step further,
when I finish a task, I could fill in the actual time spent on this
task. Then, MLO could keep an average time, I call Slack time, showing
for example that I am underestimating my time by 20%. If I wanted MLO
to help me make a more accurate statement of what I can accomplish, I
could select an option in Preferences that would artifically boost my
estimated time by the SLACK percentage. So, if I have 20 minutes until
my next meeting, I may only see items that can take 10 minutes or less
because my slack percentage is 100, for example.
Finally, I would like something I have named a half-life decay. This
one, just artifically boosts tasks that are old. Some thoughts on this
one: the average age of my tasks is 18 days (meaning, the date the task
was entered). The tasks that have ages greater than 18 days would start
boosting their importance values. So if something has been sitting out
there for 6 months, it will be moving up the ladder.
What happens to me often is that older tasks get lost. Usually, this is
because I am letting newer items have an artifically higher importance
just because they are on my mind. I would never let a decay item go
higher than a high priority (gotta be done today) item.
Just some thoughts. Decay isn't something that has been completely
thought through yet, however, I have noticed this same problem no
matter what system I use (however, A&B and LB showed this problem
better than most).
However, I think the "what can I do with this amount of time at this
place" is an essential part of task management.
--David
Any idea as to when changes in the algorithm might appear in MLO?
Stephen Diamond