Gembel Teknologi

Wednesday, November 22, 2006

Interesting, not just for geeks but business in general, about glorious multitasking :

The longer a task switch takes, the worse the multitasking penalty.

That, in and of itself, is not so earth shaking, is it? Pretty soon I'm going to be getting irate email from morons accusing me of being "against" multitasking. "Do you want to go back to the days of DOS when you had to exit WordPerfect to run 1-2-3?" they will ask me.

But that's not my point. I just want you to agree with me that in this kind of example:

a) sequential processing gets you results faster on average, and

b) the longer it takes to task switch, the bigger the penalty you pay for multitasking.

OK, back to the more interesting topic of managing humans, not CPUs. The trick here is that when you manage programmers, specifically, task switches take a really, really, really long time. That's because programming is the kind of task where you have to keep a lot of things in your head at once. The more things you remember at once, the more productive you are at programming. A programmer coding at full throttle is keeping zillions of things in their head at once: everything from names of variables, data structures, important APIs, the names of utility functions that they wrote and call a lot, even the name of the subdirectory where they store their source code. If you send that programmer to Crete for a three week vacation, they will forget it all. The human brain seems to move it out of short-term RAM and swaps it out onto a backup tape where it takes forever to retrieve.

How long? Well, my software company recently dropped what we were doing (developing a software product codenamed CityDesk) to help a client with a bit of an emergency situation for three weeks. When we got back to the office, it seemed to take another three weeks to get back to full speed on CityDesk.

On the individual level -- have you ever noticed that you can assign one job to one person, and they'll do a great job, but if you assign two jobs to that person, they won't really get anything done? They'll either do one job well and neglect the other, or they'll do both jobs so slowly you feel like slugs have more zip. That's because programming tasks take so long to task switch. I feel like when I have two programming projects on my plate at once, the task switch time is something like 6 hours. In an 8-hour day, that means multitasking reduces my productivity to 2 hours per day. Pretty dismal.

As it turns out, if you give somebody two things to work on, you should be grateful if they "starve" one task and only work on one, because they're going to get more stuff done and finish the average task sooner. In fact, the real lesson from all this is that you should never let people work on more than one thing at once. Make sure they know what it is. Good managers see their responsibility as removing obstacles so that people can focus on one thing and really get it done. When emergencies come up, think about whether you can handle it yourself before you delegate it to a programmer who is deeply submersed in a project.

Human Task Switches Considered Harmful
By Joel Spolsky

Of course this article does not address other things such as scarce developer resource, lack of financial resources, etc. which become an obvious ( and easiest ) reason to justify why employer put one too many tasks on employees.
And among that specifics, I saw something that is very distinctively common, that is, lack of sense of responsibility on most Indonesian employees.
We talk too much about motivation, ethos, and so on and so on, only to see that is just a buzzword to make the chanters get a notch higher in credibility scale.
Well, maybe I wasn't a good motivator to my former staffs, but up to this moment, I still see that they lack that true sense of responsibility. I still remember one of them say that I could have give them any task at once, and he will do it without question, but... if any or all af those tasks couldn't be completed in time, then it is all mine to take all responsibility and consequences...
Haha... weird statement huh...
Sounds like it's okay to put blame on somebody especially superordinates when things goes wrong due to one's mediocre works, and get away with it... such a nice life huh...
then I thought where does the true meaning of "responsibility" go ? wasn't it not only to your employer, but the most important thing is to yourself ? and moreover, where was the "interactivity" part go here ? Strange...
Hmm, at that moment, I guessed that maybe it was just a statement based on tipical employee's anger and dissapointment, but when I look back, I also believe that I've tried hard enough to make them working in most comfortable environment possible, but then again , I was wrong...
I strongly believe that multitasking is very much possible, with certain consideration mentioned by Joel above, plus put those mental and psychological factors like self discipline and self responsibility, along with willingness to interact in team work and being open to others...
Cut things short, I still believe and still have faith that Indonesian human resources are good, and also not too difficult to spot high performing resources from anywhere around, the only thing is nobody teaches Indonesian kids about self responsibility and most importantly, durability and resilience in life...

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home