Saturday, May 31, 2008

Single-Tasking vs. Multi-Tasking

Single-Tasking vs. Multi-Tasking



This concept reminds me of a great book called "The Mythical Man-Month". That book was a book about software engineering and computer science. It is a must read for any software engineer. It is a very old book, but is still true. The Mythical Man-Month states that bringing more people on a project, will not always speed it up. If there is a 1000 hour project, 1000 engineers each working on it for 1 hour is not the same as 2 engineers working on it for 500 hours each. The math works, but it does not map to the world of software engineering. This brings me to the point of this post. Working on 10 - 10 hour projects simultaneously is not the same as working on 2 50 hour projects one after the other. Context switching has to be taken into consideration. Switching from one project to the next every couple of hours will take up a lot more time. Working on 10 - 10 hour project with 2 hour time-frames and then switching to the next could indeed turn into 150 hours of project work. If working on each one after the other, it may be equivalent to 120 hours of project work. Working on 2 - 50 hour projects, would probably be more like 100 hours because the time for switching between projects (context switch) takes up a lot of time. The reason I use the term "context switch" is because in computer science, operating systems make a context switch when switching from one process to the next. It takes more time for the processor to make a context switch. The reason to make a context switch is if two processes must be continuously processed or one process is waiting for an event. It is the same in the real world.

No comments: