Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking for suggestions on effective methods that I can use to document, remember and prioritize tasks at work. Many of the these tasks belong to a primary project, but they also exist for independent initiatives. The tasks themselves cover everything from development to documentation to discussions, with varying priorities, and deadlines ranging from right away to a few months from now.

Historically I have used a notepad to keep track of these tasks, with a star next to an item indicating it needs to be done and a check mark when it's completed. However, as I gain more responsibilities and more things to manage:

  • it becomes harder to make sure I've done everything (because some things get lost 5 pages back)
  • it becomes harder to remember what's most important to do next
  • it becomes harder to keep track of dependencies between tasks

Has anyone found methods that have made their tasks easier to manage? I've considered adding some meta-data to keep track of what's most important and dependencies, or possibly switching to an app that could automate this (if such a thing exists). Something that's accessible anywhere would definitely be a plus.

share|improve this question

closed as not constructive by gnat, MichaelT, Martijn Pieters, Bart van Ingen Schenau, Kilian Foth Jun 17 '13 at 8:13

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

10 Answers

up vote 3 down vote accepted

For the paper solution

I usually get an unlined sketch book with perforated pages like the type you can find at Barnes & Noble with an attached ribbon to mark the page.

Note: I'd share a link but I couldn't find them on their online store. What I'm talking about are the 8 1/2" X 11" hardcover books

I prefer paper for daily work because I tend to draw a lot of diagrams to describe my ideas (which is hard to do with normal software TODO lists) and it's sometimes useful to be able to tape stuff into the book.

For each cycle (a day/week or some other preferred time increment) I allocate a few pages for one-liner todos. Subsequent pages are for detailed info. As I finish work I cross out the todos on the index and tear out pages that are no longer relevant (that's why the perforated pages are necessary). The ribbon is used to mark the todo page so you can quickly open the book to where you left off (I also usually clip a pen to the page I'm currently adding notes to if I close the book).

As I finish items on the todo I cross them out and tear out the related pages.

Note: It takes a little practice to get used to isolate tasks by page boundaries but mentally it gets you into the habit of separating tasks on a finite boundary. It's important to develop this ability because, if you aren't able to focus on one thing at a time, your brain will waste a lot of time unnecessarily switching contexts between different tasks.

When the next cycle starts I create a fresh todo. I'll do a quick once-over of the previous todos re-assess whether the unfinished items are still relevant. If they are, I copy them to the new todo. If not, I locate the related pages and tear them out (to either trash or save in a different book for later).

The idea here is, remove everything that you don't need to know now (in the current cycle). Keep the todo short and simple (one liners) but don't sacrifice the ability to keep more detailed notes.

The interesting thing is, if you wait a week or two to take a look at the items you pulled out of the book for later; you'll often find that they're no longer relevant (and ready for the trash).

If you're not diligent about trimming the stack regularly it just builds up over time until it becomes overwhelming. If you don't you may start to suffer from what I like to call "Shlemiel the Painter" syndrome where you spend so much time shuffling through residual tasks that you never really get to the important/urgent stuff.

As for managing different projects concurrently... Use one book for each project.

Think of your brain like a computer. If switching tasks were like doing a context switch (not very expensive but distracting to work) then switching projects would be like doing a full cache swap (expensive because you have to unload all the info your currently using and load all the info related to the other project.

share|improve this answer
add comment

I enjoy using Google Calender... but if you have sensitive information I wouldn't post it there. As long as you're in the habit of regularly looking at it, it can be quite helpful. Along with the calendar portion you can list tasks that you need to accomplish and I imagine you could do some fairly decent prioritizing there though I haven't used that part for more than a few tasks at a time...

share|improve this answer
    
that's what i use but what sucks is only the calendar syncs to my mytouch, not the todo list. –  Chuck Stephanski Mar 26 '11 at 1:10
add comment

Most developers are at their desk/computer/laptop most of the time so any app that makes it easy to get the notes actually entered with a reminder system (popup, text message) should work. If you were a mobile sales person or needed to check non programming tasks (Pick up milk), something for a smart phone may be better. Links to documents and file folders help if you have peripheral project documentation.

You have to use it and rely on it. At work, I use Outlook. If someone catches me in the coffee room and has a concern/request, I ask them to either email me or send me a task (depends where they rank in the firm.).

I struggle with meetings because you never have a computer available in a conference room. Then it's bring a pad of paper and enter all the notes and make reminders when I get back to the computer. Fortunately, I can go weeks without a meeting.

share|improve this answer
add comment

I use Toodledo to manage my lists. You can also sync it to your phone. It's online so you can access it anywhere you have a smart phone or the internet.

For the process I recommend reading the book "Getting Things Done" by David Allen. It will help you learn to effectively and efficiently manage your tasks.

share|improve this answer
    
Interesting, I'll have to check that site out, thanks. And I actually discussed "Getting Things Done" with a co-worker today, for $8 it sounds like a good read. –  Kaleb Brasee Mar 25 '11 at 4:09
1  
+1 for GTD - great book that doesn't just get you organized, it makes you think differently about organization. –  Scott Whitlock Mar 25 '11 at 13:18
add comment

I switch between a pad of paper on which I jot things down, and tasque when using Ubuntu. I like the fact that you can assign priority, add as many notes to the task as you like, and hide the completed tasks.

A long time ago I read about dividing tasks into 4 categories along two axes: so you have important/not important; urgent/not urgent.

  1. Important, urgent.
  2. Important, not urgent.
  3. Not important, urgent.
  4. Not important, not urgent.

Spend most of your time doing 1 and 2 activities and the rest will take care of itself.

share|improve this answer
add comment

Have a look at ToDoList on Codeproject. It has a lot of nice features, its free and it is still being actively developed.

share|improve this answer
add comment

For the electronic solution

I like to use the Freemind mindmapping tool (free open source)

It's easy and intuitive to use, meaning I can go months without using it and still remember the keyboard shortcuts:

  • insert - add cell
  • delete - remove cell
  • space - toggle collapse/expand cell
  • ctrl+B - bold
  • ctrl+X - cut cell
  • ctrl+V - paste cell
  • ctrl+C - copy cell
  • ctrl+K - add link
  • f1-f8, shift+f1-f8, ctrl+f1-f8 - change color of cell text (I have a few favorites memorized).

For the first layer of cells I make them color coded clouds (ctrl-shift-b then change the cloud color with right-click+format+"cloud color") for easy identification. Each cloud is a major category. Ex, I'll have one for personal, one for each major project, one for school, etc...

Within each cloud the first level of cells is the priority:

  • Now (critical tasks)
  • Tomorrow (critical task that don't need to be solved immediately)
  • Future (non-critical tasks)
  • Concept (good ideas that I may occasionally stew on during breaks)
  • Deferred (tasks that are indefinitely deferred unless I have nothing else to work on)

Note: As you may suspect, the deferred tasks often become irrelevant over the long term and may be trimmed altogether.

I prefer a mind map for three reasons, I can move around the hierarchy very fast with just the keyboard, I can collapse everything that I don't need to see right now, and it's really easy to move stuff around from one category to another (simple copy/paste).


Whatever you do don't use a program that uses popup notifications. Otherwise you'll start to suffer from what I call "twitterbrain" where, you become so adapted to being constantly interrupted all the time that you subconsciously start to anticipate it (keeping you from really being able to get into your regular 'flow'. If you do use notifications set an interval you expect that doesn't interrupt your work (like every day at lunch).

I see so many bloggers and (so called) journalists that complain that the 'The Internet is to blame for their Attention Deficit!'; because they're no longer capable of sitting down to read a book for more than 10 minutes. What they fail to consider is, they carry around electronic devices that have an unheralded ability to interrupt them 24/7/365 with arbitrary announcements.

Windows also does with windows that steal focus (like virus update notifications). I had no idea how much this used to bother me until I started using Linux Mint as my primary OS (which follows strict user interface guidelines that don't allow this). Stealing focus is cruel, it's like having an office worker that taps on your shoulder every 15 minutes to tell you the latest Chuck Norris joke.

/rant

Note: I still use Windows for development but only a minimal install with no virus scanners/firewall (I block bad stuff at the router and avoid suspicious pages) to cut down on the number of programs that like to steal focus.

Update:

I just took a look at tasque because I've never used it before and the prioritization classes are surprisingly similar to the ones I use (Note: I've never used a todo list app with prioritization before either). Turns out I'm not very smart/original after all :). I never really found the arbitrary High/Medium/Low priority classes to work well because they aren't attached to a real-world value. Mentally, the 'High' priority class can drift from 'today' to 'this week' pretty easily. My priorities tend to drift when I start procrastinating. Using real world valued etches the timeline in stone. Relativity be damned.

share|improve this answer
add comment

I have used various methods, sometimes multiple (duplicated) methods: specialized electronic calendars and task lists, notepads, whiteboards, stickynotes, and probably more. They each had certain benefits and pitfalls. I recently rediscovered personal kanban, and it seems like it has good potential by melding some of the best aspects of several methods.

Essentially, personal kanban utilizes:

  • a whiteboard as a surface that you treat as the organizer. The organization of the surface is similar to the backlog/sprint project method, but at a personal level with personal tasks interleaved.
  • painters tape or marker lines dividing the surface into three columns (a pile of todos on the left; the active task list in the middle, which respects what you reasonably expect to attempt and possibly complete in the day; and the done list to the right).
  • sticky notes, preferably of various colors to indicate the kind of task. Use one color for personal tasks, another for technical project tasks, one for non-project work activities like divisional meetings or reviews, possibly one color for customer meetings; however, 'tagging' each sticky note of the same paper color with a colored marker stripe or border or whatever scheme you like, might be as effective as different colored paper.

There are numerous blog posts and videos/webcasts that do a lot better job at explaining the general motivation and mechanics across the interwebs, if you want something more in depth. I like it because it offers something physical, it is simple to operate, anyone who walks into your area can get a sense of how busy you are or what your focus is for the day, and you can capture and evolve each task as much or as little as needed.

share|improve this answer
add comment

I swear by Emacs' org-mode. It's been a total lifesaver for managing all of my work tasks and information. Of course, you have to have bought into Emacs already.

share|improve this answer
    
+1 for Emacs, org-mode is simply the best :) –  jondro Oct 6 '11 at 21:59
add comment

I have a JIRA instance set up on my own VPN(basic linode.com account), Atlassian sells it for 10$ for start-ups(or you can use whatever bugtracker you like). This is not a mindmapping tool, so I use tags to keep dependencies between tasks . Also it allows to create custom task types beyond basic ones(bug/feature). It allows to set priorities, due dates and add some metadata(like photos of documents to correct).

So I wonder why not to use a bugtracker?

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.