Time management software / Mine
From WhyNotWiki
[edit] Introduction
Time management basically involves having a list of things you want to accomplish and then some kind of constraints (priorities, deadlines, and time limits) that are applied to these to-do items. Of course, the software will help you out as much as possible, for instance by reminding you of what you should be doing right now according to the rules and constraints that you've supplied.
Said another way: this software includes two main pieces:
- A to-do list
- A plan/strategy for getting the items on your list done
Store all my to-do items in one database. But typically I'd only want to view them by topic. So on each project page, I'd include the current to-do items for that project, which would do a query on the database.
[edit] Start with what you want to do / get done and then go from there
I think it might be better and more accurate to call it, rather than a to-do list, a want-to-do list.
I think it would be good to list (to get in the habit of listing) pretty much everything you want to do -- no matter how remote the chances are that you'll ever get to do it.
Why?
- Because even if you know you won't get to it, you can at least have that good feeling, that satisfaction (as small as it may be), of putting it on the list. Then you can be freed from having to worry about it any more (worried that you might forget it, bothered by how you want to do it but can't right now, ...), because you know it is safely on the list. You can stop thinking about it now if you want and use your brain-power for other more useful things.
- Keep you from foolishly starting it anyway. By forcing yourself to put into words that which you want to or plan to do you may only then realize how silly it is. Or even if it is still valid, you may decide, when you compare it to the other things on the list, that it's really not as important or as urgent as you once thought.
That's the idea, anyway: That by having everything listed out you will be able to make more intelligent and rational decisions about how you spend your time. That you'll be more informed and more in control of how you spend your time. That you'll be able to weigh the tasks on your list objectively and to correctly identify which ones are a higher priority than the others.
[edit] Time management as a stack (LIFO)
I think it would be interesting to see to what extent people's time management systems act like a stack: In general, isn't it true that the most recent thing we find out about is the one we do first? It certainly is the case for distractions: each distraction takes our attention presently (away from whatever task had our attention before), and then we can even become distracted by something else. One hopes that at some point, one stops getting new distractions, so that you can start unwinding the stack: working on older distractions, then still older distractions, until you get back to your original task-at-hand.
I know I sometimes feel like I ever get around to unwinding the stack: instead, new things simply keep on being added to the top of the stack. Until I have a stack overflow and I simply have to stop accepting any new things at all until I've cleared out the top part of the stack at least a little bit.
[edit] Development
Running at: http://tylerrick.com/tracker/public_tasks
Developed at: ~/tylerrick.com/personal_tracker
[edit] To do
security: prevent updates if not tyler- potential problem: searches are not protected; can search for private keywords and will reveal if they occur and in which records
- acts_as_list: drag and drop to change position
- can we have both the drag and drop view and the activescaffold both on the same page??
- acts_as_tree: so that we can place tasks as children of a project (which itself is just a kind of task!)
- totals for node and descendants: "this project has __ days worth of pending tasks"
- priority should be displayed as and input using stars, not numbers (hover and click)
- elapsed_time column
- clock in/out buttons/links for each task?
- "complete, and publish to blog" action
[edit] Feature: Agenda / Goals to accomplish today for today
(Still in the "not sure if this is a good idea" stage.)
Sometime after you get up, perhaps it will show you an agenda for today. This would, of course, include all the fixed time commitments (appointments, work obligations, etc.), but it would also let you commit to some goals for the day.
It would show you a list of available goals, sorted according to some super-intelligent sorting algorithm. Some would be pre-checked, indicating that that's a goal you want to accomplish / succeed at every day. But then you would be asked to choose some electives.
Depending on which goals you committed to, and the nature of them, there may be reminders throughout the day, etc. to keep you on track and make sure you haven't forgotten about these commitments.
[edit] Feature: Drag-and-drop day planner/scheduler/plan of attack
Title ideas: "One day at a time"; "Let tomorrow worry about itself"; [find appropriate Proverb on time]
User interface:
There will be a rectangle representing the time remaining in the day, subdivided into smaller rectangles representing goals, the size of each being proportionate to the quota/scheduled time permitted for each...
You can drag and drop the divider lines (the edges separating adjacent rectangles) to re-apportion the time allotted to that task.
When the real-time timer reaches a divider line, it sets off a notification alert telling you it's time to switch to the next task.
It's rather approximate, but it's very easy to use, low overhead, even fun to use.
You don't have to manage a table, specifying actual guesstimated begin times (11:37 a.m., etc.) -- instead of being all precise and text-input-based, it will be very visual. Which will be great as far as ease of use, but will make it slightly less precise (not enough to be a problem though).
If you run over schedule for one item, it will automatically start shrinking the remaining planned goals for the day.
Each task on the schedule can have the following things done to it:
- Press the X by an item to cancel it (it will still be on your to-do list, so you can manually always add it back onto a future schedule).
- Press "move to tomorrow" if you want to reschedule it for tomorrow. (For instance, you realize that you're just not going to get everything on your schedule done that she had hoped to get done, so rather than canceling the item entirely, you simply reschedule it.)
- Reorder it in the list (move above or below other items on the schedule)
- Change the time estimate, to schedule it for more or less of your time, by dragging its upper or lower border
Some items may be scheduled as recurring tasks, most commonly daily tasks (read the Bible, f.e.).
Also can use this system to help achieve progress on long-term goals. For example, if you're goal is to learn German, then it might remind you to take 15 minutes/day towards achieving that goal. If your goal is to read the Bible every day, you can use it to schedule that in every day. If your goal is to exercise 30 minutes/day 4 times/week or to go jogging 2 times/week, then it can automatically schedule that and for you during the week.
If you try to reschedule for tomorrow a task that you have specified should be done at a minimum of say three times per week, then it will give you a warning if by rescheduling it it would make it impossible to achieve your weekly quota/goal.
Preferred environment: hand-held PDA. Other planned environments: web based, so you can access it from work, while traveling, etc..
[edit] Feature: Integration with journal
[edit] Option 1: Be able to generate a template / starting draft of a journal entry for the day.
This option kind of assumes that the time log itself is pretty dumb -- just the name of a time-taker, and a start and end time -- and contains no interesting details.
This option would entail going through each time-taker in the day (ignoring trivial ones like brushing teeth, but probably including marginally interesting ones like eating) and generating a stub paragraph, such as "At 11:45, I ate lunch."
It would take a bunch of structured log entries and flatten them into a "flat" description of the day. So for that reason I'm not sure I really like this option: it results in a loss of information / duplicates the time information in the time log database.
[edit] Option 2: Let the time log be the journal
Instead of adding additional details after exporting/flattening the data, just add the details to the time log records themselves.
[need some examples]
The resulting "journal" might lack "transitions" from one event to the next, but personally, that's fine with me. Or maybe we can add a way to store transitions as well.
If the time event was "ate lunch with some friends", then the transition might be about the transportation from the previous event to that event...
[edit] Feature: To-do list: Views
[edit] "Threaded"
grouped by goal/project with tasks/items beneath
[edit] Tables / schema
[edit] Master to-do list ("Flat")
Pull top tier of tasks (all tasks marked as highest priority) from each active project to form your master to-do list
Bite-sized items only, sorted by priority.
Even though it's "flat" (not threaded by project), there will still be a column that shows which goal/project it belongs to, so it has some context.
Project / Goal | --------------------------------- Yardwork | Plant the flowers Yardwork | Put up the fence Find a wife | Sign up for online dating sites Find a wife | Get out there and meet new people
[edit] Feature: Report
Be able to generate a report with totals for all time-takers for a given date range
[edit] Component: Reviewing time spent / history (Journal?)
[edit] Long-term timespans
Major segments of your life should be prominently indicated on the diagram, showing the start and stop date for each one.
Examples:
- Jobs worked
- Trips
- Medications
- ...
Only the most prominent (as indicated by the event's "importance" attribute) would show up by default.
[edit] Visibility
My actual log, with start and stop times for every time-taker, would not be publically visible. I may want to publish totals though.
[edit] Component: Time tracking / logging
[edit] PDA version
I imagine most if not all of my actual tracking I will want to do with my PDA that I take with me everywhere...
Main view: I'm imagining a screen full of "buttons", each button representing a time-taker. Just click on a button to tell it that you are switching what you are doing to that thing.
Have an "Other" button if your time-taker is not on the list. That will log the time immediately. Then you can write in what the time-taker is any time during that time (before you switch to something else). Or just don't write anything in and have it show up as "unknown" / "unaccounted-for time".
The default mode would be single-task mode, in which clicking on a task clocks you out of the previous task and into the new one. If you want to multi-task, however, that should be allowed as well. While doing Thing A, click "multi-task"/"add task"/"simultaneous task" and then "Thing B". You are now in multi-task mode. In this mode, we probably don't want it to clock you out of all current tasks when you click on a new task. Instead, you have to explicitly tell it to remove or add a task (click out or clock in). All current tasks will be listed at the time with a "stop" button next to them. To add a task, you have to use the button that you used before to enter the multi-task mode; the "multi-task"/"add task" button. If you stop enough tasks that you only have one current task, then it will put you back into single-task mode, where simply clicking on a new task will switch to it immediately.
[edit] Tracking interruptions
You may want to gather statistics about your interruptions: how much you are interrupted, by what/whom, when you are doing what, and when I am where, and during what part of day (what time of day can you expect the most interruptions?), ...
So instead of simply switching from main task that you're trying to get done "A" to task that interrupts you "B" and then back to "A", you could "stay clocked in" for A and simply register B as an interruption to A. That would simply require you to click "interruption"/"interrupted by" before clicking B.
[edit] How detailed do you want to track?
You would have to decide to what level of detail you want to track things. Do you really want to track how much time you spend on the toilet? Brushing your teeth? Some things like that you may just want to throw in the "other" / "miscellaneous" bucket. But it's very important that you do at the very least switch to Other for these time-takers: otherwise, they will be counted as time spent on whatever the preceding time-taker was!
On the other hand, you may want to track how much time you spend on little, recurring things, such as checking your e-mail. Little things like that can add up really quickly. Rather than assigning all that time to "other"/"unknown", you might want to track it for a while just to see how big of a deal it is. This would be the "sand" or "water" in the rocks-pebbles-sand-water metaphor.
[edit] Categories
Just some ideas for how I might want to break things down to get category totals. Each task could belong to one or more categories.
- "Unproductive" time: routine tasks / not counting towards any goals
- Examples: brushing teeth, eating, ...
- "Productive" time: time that counts towards a goal
- Examples: working on project A, reading a book about subject B, doing 100 sit-ups, ...
- Health
- Exercise
- Dental health
- Sleep
[edit] Name ideas
-
- Sand and water
- Rocks, gravel, sand, and water
-
- Redeem the time
- Time redeemer
