Fog Creek Software
Discussion Board

working efficiently..

This is basic skill question. How do you juggle among multiple tasks? handle distractions? switch contexts quickly?
I have been working for six years and still not happy with my working style.. am a more of seqential, heads-down guy.

Thursday, February 21, 2002

If you are working on a number of complex projects, I find keeping a work log and lots of design/architecture notes a great help. The design notes should relate to a specific part of a project, so that when you need to go back and modify it, you can pick up where you left off very quickly.

TODO (+ other notated) comments in the source code, using your source control software's features to keep track of changes also help.

But there is no getting away from the fact that switching between projects (especially if they are complex and in different languages) is expensive. You should try to minimize the need to switch as much as possible. Plan your work so that you are making batches of changes to a single project, as much as possible.

Hope this has been of some help.

Thursday, February 21, 2002

whenever I work on multiple tasks simultaneously, first & most important point is I never work on a single task for a day or a period more than a day continueously. This is because I have a habit of concentrating on the current task completely ( which most of the buddies have :-)) so You tend to forget the important points from other tasks. Ofcourse , this depends on one's ability to remember the tasks completely, But I think, If you have two tasks its better to work half day for one task & half day for another task.

secondly , as one of the fellow person suggested, I keep TODO list file in the source directory, where I store the important sub tasks to be done ..

Third thing, If you are a manager or a consultant, then make sure, you involve your fellow buddies in those tasks (unless the task is very very confidential from the organizaion point of view), These people will get encouraged for getting involved in those tasks & will help you by asking queries to you & suggesting something , through which you may rememember the tasks list. But this totally depends upon one's thinking. Some persons may not like the third point . We can avoid that..

I hope you will get some help from this. 

Friday, February 22, 2002

I use TODO lists, too, but mine are handwritten (to the great amusement of my fellow colleagues), they are scattered all over my desk. When I leave the office at night, I stick one right on my monitor, stating what tasks I will have to do in the morning. When I switch between completely different tasks, I first write down what I left uncompleted on the last one and then what I will have to do on the new one. I write a lot of TODO comments into my sourcecode, too, but those are more of the "put this string to string table" kind. They are there to remind myself, of course, but also as a kind of excuse in case my boss sees something not completed yet.

Still, I find task switching extremely annoying, not so much because of the confusion it causes in my head, but because it normally leaves me completely demotivated to get started, especially when I am deep in the Zone working on one thread and then have to surface and get started on something completely different. It takes hours of surfing th net, playing Spider Solitäire and boiling tea to get me in the mood for programming again.

Sometimes I just totally refuse to task switch right away. When I know that it makes sense and spares a lot of time and trouble later, I just finish my current line of work, no matter what. Our management is rather sensible there, most of the time.

Have fun,

Jutta Jordans
Friday, February 22, 2002

Oh good. I'm not the only one that leaves a note reminding me of the first thing to do next morning...

I tend to leave it on the keyboard though. It's proved very useful in the past where I go home and (for one reason or another) don't go back to work for a couple of days.

Reminds me of some advice a writer once gave out - when you leave your work for the night, leave a sentence half-written. That way your first job next morning is to complete that sentence - which will get you back into the flow of what you were doing... {It never seemed to work for me - I always ended up deleting the half sentence and starting a new one.}

The rest of the notes I hand-write - I have yet to find a computer based package that will let me produce trees of tasks intermingled with bits of UML, dependency tags, dates... Then I pin them to partitions.

I'm firmly of the opinion that the best software engineering gets done on flipchart pads laid out on the desk - you can get a LOT of stuff written down on them. And task switching means "changing pad".

Katie Lucas
Monday, February 25, 2002

At the end of the day, I write a TODO note describing where things are and the next few steps. Friday night's note is much more detailed. This saves a lot of time on Monday when I can barely remember the previous week.

I'm also fond of writing project outlines on whiteboards. It's like a map; I can see how far I've come.  More usefully, my manager can see the ever-growing number of checkmarks and stops interrupting me to see how things are going.

Monday, February 25, 2002

I can't say that I'm necessarily the most gifted person when it comes to multitasking, though the old noodle works for me...

Still, some thoughts that seem useful:

* have people communicate to you over email by default.  Short messages by an instant messenger or chat, which logs conversations.

* top-down design allows you to understand something reasonably eloquently, before you go on to implementing.  Keep on designing and researching until you feel reasonably certain there aren't any big surprises that will discombobulate you.

* think in the morning, so people don't surprise you too much when they come up to you later in the day, and all the pieces of the project don't fall down in your mind

* helps to be doing something you really like, so you can sort of float in and out of thinking about it naturally

* unplug the ethernet cable from your machine some days.  Really nice sometimes.  If you really itch to get on, put the cable back in and don't torture yourself.

Roger Hobson
Monday, February 25, 2002

*  Recent Topics

*  Fog Creek Home