What is co-operating?
In the recruit ads of companies, you can always see an item about cooperating in qualification lists. But what is cooperating anyway?
From my experience, I find that the key of cooperating is about task-scheduling, about how to divide jobs into independent parts which make jobs going paralelling. This is the same to multi-programming with process or threads.
It is a really bad idea to make two or more people working on a single task which is in-divisible -- or the really signale task. We need to divid the tasks into indivisible unites of task and assign it to different people to finish it. It is just like multiprogramming. We should use time-sharing method to divide tasks. If two people working on a same signle task, it will slow down the schedule rather than speed the process of development. Because people might have different ideas about how to solve the problem and out of sorts reasons it is very hard for one guy to comprehend another guy's idea, as a result, the whole process will be slowed down because of less productive cooperation.
We should divide the tasks according to different properties of tasks and the different context, like the different kinds of tricks of multiprogramming and operating systems. We might usr time-sharing or sequencial or paralell or other strategies. But it is really important to make people work in a real paralell, and not interfer others.
So, from some senses, I think, a project manager or a team leader should be a expert on multiprogramming. He should be good at divide tasks into different ones to different people -- another kind of process/thread. Make them work cooperative, productive and protect some critical areas. As you imagine, it is really hard to achieve that.
In the recruit ads of companies, you can always see an item about cooperating in qualification lists. But what is cooperating anyway?
From my experience, I find that the key of cooperating is about task-scheduling, about how to divide jobs into independent parts which make jobs going paralelling. This is the same to multi-programming with process or threads.
It is a really bad idea to make two or more people working on a single task which is in-divisible -- or the really signale task. We need to divid the tasks into indivisible unites of task and assign it to different people to finish it. It is just like multiprogramming. We should use time-sharing method to divide tasks. If two people working on a same signle task, it will slow down the schedule rather than speed the process of development. Because people might have different ideas about how to solve the problem and out of sorts reasons it is very hard for one guy to comprehend another guy's idea, as a result, the whole process will be slowed down because of less productive cooperation.
We should divide the tasks according to different properties of tasks and the different context, like the different kinds of tricks of multiprogramming and operating systems. We might usr time-sharing or sequencial or paralell or other strategies. But it is really important to make people work in a real paralell, and not interfer others.
So, from some senses, I think, a project manager or a team leader should be a expert on multiprogramming. He should be good at divide tasks into different ones to different people -- another kind of process/thread. Make them work cooperative, productive and protect some critical areas. As you imagine, it is really hard to achieve that.