Tutorial :How do you organize your work?


How do you work? More specifically, how do you keep your programming tasks organized.

When I do Mac development at home I use software called an outliner to organize, keep notes and prioritize the tasks I need to do. I started out using a program called Deep Notes which is a nice simple free tool. But now I use The Hit List.

I’ve been looking for an equivalently good program on the Windows platform but so far have not found one. So far I’ve tried FusionDesk and am not satisfied with it. I’m starting to get the urge to write my own software but thought I would ask around first and see if anyone knows of a good product that I have not been able to find on this vast internet.


If you've never used an outliner to organize ideas, here is a brief overview. http://en.wikipedia.org/wiki/Outliner A good outliner is more complicated than a simple flat hierarchical TODO list but simple enough to be a one trick pony. One of the most important features of an outliner is being able to create a nested hierarchy of tasks. For example:

  • Implement Feature A
  • --- Add support at the data level
  • --- Create quick interface for Feature A
  • --- Create business logic that connects interface to data layer
  • --- Refine the interface

You can also collapse the nested tasks like a folder structure. If I'm not working on Feature A then I should be able to collapse the tree so it's sub tasks are not viewable.


If you're at all used to Emacs, you might LOVE org-mode. I was not an emacs user, so it was a pretty steep learning curve for me, but it was so worth it. I now have a super fast plain-text based system with

  • hierarchical folding
  • search
  • tagging
  • scheduling / clocking
  • RSS fetching
  • email capabilities
  • NEW iPhone addon

all with a simple(?) Emacs addon. Frickin' perfect for me (and I'm a confessing productivity porn addict).

Secret tip for free: Combine this with the auto-file-syncing Dropbox (2.25 GB cloud space for free) and you'll never want anything else ever again. Well maybe that's a little bit of an overstatement...

Also, check out this article which really helped me get off the ground with a system that works well. He combines GTD and orgmode.


Recently I've found that Mylyn rocks for task organization. It's Eclipse plugin. Especially if you're already using some external task trasking system like Jira, Trac or other.

If you're programmer then all your tasks are linked to some source files. That is what Mylyn do. It remembers which files (and other stuff) you've used to work of specific task. Then you can always return to it later. You can copy your task context if you're doing similar task again. You can share it with other team members.

Tasks can be stored in external system. Or directly in source code with marked by TODO comments.

In Mylyn you can:

  • argregate tasks from various sources (Jira, Trac, TODO comments in source, and others)
  • make your personal schedule
  • search tasks
  • edit tasks
  • resolve/close them
  • add comments/attachments
  • track work time
  • and it's open source

I recommend you to look at Mylyn concept screencast which is 50 minutes long. But it's very good introduction to Mylyn.

Tasks in Mylyn


I use David Allen's ultra famous Getting Things Done approach to organize myself and GTDInbox for the implementation (imagine Gmail on steroids).

GTDInbox transforms Gmail into a unique task manager to effectively manage your inbox, reduce email overload and maintain inbox zero.

GTD is not specific to software development but can be used for any personal projects like writing a book, developing software, creating a company, etc...


Did you considered open-source like bugnet ?

Bugnet Site

It is a bug tracking system, but you can also use it to manage programming tasks.

Trac is a good one also, runs on linux, (maybe also on win, never tried) and it integrates nicely with source control systems like svn.


ForceDo is a free online to do list. You can add as many tasks as you want and start a timer which will force you to get things done. ForceDo will help you beat your procrastination.

A mix a to-do list and pomodoro.


A good IDE and a good project manager will solve this, also the use of a notebook(like me) is very good, check Google Notes and remember that the TODO comments are a very nice development best practice.


I am using Toodledo (http://www.toodledo.com/). This is an online todo-list. You can define goals for hierarchical TODOs. It has many import/export functions.


I use a combination of tools.

  1. A plain graph-ruled notebook. Preferably a smaller one. 8.5 x 11 is too large. The vast majority of my stuff goes here. And it's not mine; it belongs to the company. When I leave, it stays there. Each day I start a new entry and the notes for the project go in there.

  2. Pencils. Never write in your book in ink. You'll want to change stuff too frequently.

  3. Whiteboards. You can never have too many whiteboards.

  4. If I have to aggregate information online, I prefer Microsoft Onenote. I can pull Word Documents, HTML pages, Excel Spreadsheets, and just about anything else I want into categorized notebooks.

That's it. I find that the cheapest, simplest tools are usually the best. Anytime I have tried to rely on a software solution, I've found myself spending more time playing with the tools than I have getting the work done. Naturally, YMMV.


From what the two linked applications look like maybe Office OneNote might suit your needs.

As for me, I'm using issue trackers, // TODO comments in source code, loose sheets of paper on my desk, NextAction, my Nokia 9500 and the Windows 7 Sticky Notes. Whichever happens to be at hand. Yes, it sometimes makes ordering items throughout all these options a little painful.


Evernote is cross-platform last I checked, and can handle both simple notes/todo-lists and more complicated stuff.


I use PivotalTracker - it's a webapp so I can access it anywhere with all my data there.

  • Tracks things by
    • Current
    • backlog
    • Icebox
      • things that are nice to have features or added for later release, but may not make it into the next release)
  • further subdivided by
    • Chore
    • Bug
    • Release
    • Feature
      • Measured by relative difficulty
      • Stages
        • not started
        • In progress
        • finished
        • delivered
        • Accepted (or rejected)

Projects are sorted by accounts (these are not separate logins) where I have a work 'account', a home 'account', and an account for each company/individual that requests side-work. All of it is free and there's a great API

There's a nice Getting started FAQ complete with an intro video if you click that section

There's email notifications, activity feeds, all kinds of things for collaborating on a project.

I've heard good things about FogBugz which also gives you a bug tracking email address and automatic customer reply.


Leo is a cross platform (pure python) outline editor. It will also automatically generate source files from the contents of an outline if set up properly meaning that your todo list slowly becomes your program.

It's kind of designed for literate programming on steroids, but as a tool actually makes the whole concept feasable. It takes some getting used to, but I love it.

It also allows you to keep the outline in a leo file but use either vim or emacs for the actual text editing of the 'nodes'.


Bug.NET for long-term planning (Software Projects only) & Rememberthemilk.com for short-term and recurring tasks eg. implement feature X (with Bug.NET reference), check backups, lunch with Andy ...


I use a variety of things:

  • For initial conceptualization, I use a pen and paper.
  • For brainstorming I use FreeMind.
  • For random bits of information I use Microsoft OneNote.
  • For stream of consciousness logging I use either OneNote or sometimes Word.
  • Sometimes I leaves breadcrumbs in my source, although I try to clean those out when something is "done", so I'm not forced to search the code for pending features/fixes.
  • For tracking atomic bugs and features I use a little application that I built for the purpose. It lets me focus on whether I'm working on consideration, data design, coding, testing, documentation, etc.

alt textClick here for full-size image.


I've used Phitodo in the past and found it quite simplistic.

Off late I'm using Doit.Im, with its server sync support and all that jazz, it's quite useful.

Both are Adobe Air apps and hence cross platform.


I will make mine a CW and plug my own free product, TheKBase (.Net on Windows only, although I've got a top-secret version in Mono that I'm running since September: I'll give it to anybody who wants it, of course). Once you figure it out, it will organize your work and any other knowledge you may have. It's a multiple-hierarchical notepad, and saves to XML (and will convert to whatever you want with XSLT). Several users organize entire academic disciplines with it. I try to get away from it, myself, but I can find nothing better (I was in love with Evernote for a while, but that turned sour).

There's a lot of stuff it doesn't do, of course....


Outlook can be quite useful in this space. Its task management isn't the most obvious of candidates for simple prioritisation, but if you create yourself some simple categories, such as "1 - Do now", "2 - Do this week", "3 - Do soon", "4 - Do sometime", or whatever approach you take, you're then all set to track tasks.

When you create a task, you can assign it an initial category (I create a keyboard shortcut for this - ctrl-F2, ctrl-F3, etc).

When you have your tasks in the system with an initial category, set your to-do bar to be sorted by category. You'll then find the things you're doing right now at the top of your list. The beauty is that you can drag and drop a task from one category to another, and outlook reassigns the new category.

Outlook also maintains the order of the tasks within a category, so you can actually prioritise even within categories, just by dragging a task above or below its neighbours.

A nice simple system.

You can also easily convert e-mails to tasks by dragging them in from your inbox. And you can also take task lists from sharepoint sites, and categorise them in the same way.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »