際際滷

際際滷Share a Scribd company logo
Linear Vs Parallel

Suppose we have to select two complementary food items for a party and there are two different
people who are going to do it.

We have given them instructions that the first person must select a drink and the second person a
starter.

Should we let both the people do their tasks parallely or should they do it one after another.



Let's look at the problems which can be caused if the activities are done parallely




Parallel Activities


Issues of each item

Each of the individual items itself could have some issues associated with it.

So if the first person selected Wine, he might have selected Wine which is Corked, Oxidized,
Maderized or Refermented.

Hence there could be an inherent bug in each of the food products itself which might not get
spotted till the party started and then we see all the guests politely refusing when we open the wine
bottles. Same could be for the other item we selected.

Issues of complementing

The different food items selected might not complement each other. So one person might have
selected white wine and the other might have selected poppadums. I for one would not want to eat
them together.

Since either of them does not know what the other person is selecting there is a low probability that
the items will complement

Issues of missed opportunity of complementing

Let us assume that they magically are able to select complementary food items, say wine and
cheese, we run into the third level of issues.

They might complement each other no doubt but we could have done better.
Wikipedia tells me that Gouda is more of a fit with Riesling, Beaujolais, Merlot and Zinfandel while
Brie goes better with Chardonnay, Pinot Noir, Sparkling wine and Ice Wine.

So while I have been able to pair Wine and Cheese and my guests will be happy, some of the more
discerning ones would have loved that the wine and cheese have a deeper relationship. So rather
than an issue the third level is more an opportunity which we missed out to please our guests



Now let's look at the same two tasks if they are done linearly


Linear Activities


Issues of each item

As above the first person could have selected a wine which is Corked, Oxidized, Maderized or
Refermented.

However when we start the selection for the starter, since the wine will be taken into consideration,
it is possible that the issue might get spotted.

The Wine is available right through the process of selecting the starter so there is some probability
that somebody might spot that the Wine is bad. So the second activity acts as a QA for the first
activity. Visualise this in a project where coding is done after all the screens have been already
designed. If there is an error in the screen say a spelling mistake, the coder might notice it even
though he has nothing to do with it.



Issues of complementing

Since the Wine is available to the second person there is a greater possibility that he will select a
more complementing starter like cheese.

Again there is no guarantee, but the probability of the items fitting is significantly enhanced

So if the screens for a Module are already designed chances are higher that the coder will better fit
the code to the screens.



Issues of missed opportunity of complementing

The linear approach gives us the chance to create a better fit. So now that we already know the wine
which has been selected, we can read up Wikipedia and select the cheese which goes best with it.

So if the screens are ready, the coder might realise that there is a better way of coding the screens
than he was planning to because the screens are available to him. For example he might see that
every screen displays the current User's Name which might encourage him to store it in the session,
rather than pass it through the query string because the frequency is too high. Similarly if it is only
visible on the home page he might not store it at all.

So based on the GUI the code could be optimised accordingly.



Increase in Calendar Time

The classic problem pointed out with linear models is that it takes more time. So if we were selecting
both the items together we would have taken say two hours. Now we will end up taking four hours.
Note that the effort has not increased. We will still take four hours, two hours of each person. Its the
calendar time which has increased from two to four hours.

While this looks like a problem, in a project this is really not an issue because there are always other
activities available to be done. So if these same two people had to choose food for twenty different
parties then this would not be a problem since while one person is complementing food for one
party the other could be choosing food for another party.



This is the major reason why I have seen Project managers schedule things parallely. The percieved
increase in them leads them to believe that they are better off doing things parallely. However they
end up introducing the three different problems which are mentioned above which actually ends up
increasing the calendar effort also as all the bugs in the system have to be solved. Add to that the
people related issues with one team blaming the other for the issues and you have your hands full.



So until you have a very small project where you do not have more than one module it is always
better to work linearly than parallely.

More Related Content

Linear Vs Parallel

  • 1. Linear Vs Parallel Suppose we have to select two complementary food items for a party and there are two different people who are going to do it. We have given them instructions that the first person must select a drink and the second person a starter. Should we let both the people do their tasks parallely or should they do it one after another. Let's look at the problems which can be caused if the activities are done parallely Parallel Activities Issues of each item Each of the individual items itself could have some issues associated with it. So if the first person selected Wine, he might have selected Wine which is Corked, Oxidized, Maderized or Refermented. Hence there could be an inherent bug in each of the food products itself which might not get spotted till the party started and then we see all the guests politely refusing when we open the wine bottles. Same could be for the other item we selected. Issues of complementing The different food items selected might not complement each other. So one person might have selected white wine and the other might have selected poppadums. I for one would not want to eat them together. Since either of them does not know what the other person is selecting there is a low probability that the items will complement Issues of missed opportunity of complementing Let us assume that they magically are able to select complementary food items, say wine and cheese, we run into the third level of issues. They might complement each other no doubt but we could have done better.
  • 2. Wikipedia tells me that Gouda is more of a fit with Riesling, Beaujolais, Merlot and Zinfandel while Brie goes better with Chardonnay, Pinot Noir, Sparkling wine and Ice Wine. So while I have been able to pair Wine and Cheese and my guests will be happy, some of the more discerning ones would have loved that the wine and cheese have a deeper relationship. So rather than an issue the third level is more an opportunity which we missed out to please our guests Now let's look at the same two tasks if they are done linearly Linear Activities Issues of each item As above the first person could have selected a wine which is Corked, Oxidized, Maderized or Refermented. However when we start the selection for the starter, since the wine will be taken into consideration, it is possible that the issue might get spotted. The Wine is available right through the process of selecting the starter so there is some probability that somebody might spot that the Wine is bad. So the second activity acts as a QA for the first activity. Visualise this in a project where coding is done after all the screens have been already designed. If there is an error in the screen say a spelling mistake, the coder might notice it even though he has nothing to do with it. Issues of complementing Since the Wine is available to the second person there is a greater possibility that he will select a more complementing starter like cheese. Again there is no guarantee, but the probability of the items fitting is significantly enhanced So if the screens for a Module are already designed chances are higher that the coder will better fit the code to the screens. Issues of missed opportunity of complementing The linear approach gives us the chance to create a better fit. So now that we already know the wine which has been selected, we can read up Wikipedia and select the cheese which goes best with it. So if the screens are ready, the coder might realise that there is a better way of coding the screens than he was planning to because the screens are available to him. For example he might see that
  • 3. every screen displays the current User's Name which might encourage him to store it in the session, rather than pass it through the query string because the frequency is too high. Similarly if it is only visible on the home page he might not store it at all. So based on the GUI the code could be optimised accordingly. Increase in Calendar Time The classic problem pointed out with linear models is that it takes more time. So if we were selecting both the items together we would have taken say two hours. Now we will end up taking four hours. Note that the effort has not increased. We will still take four hours, two hours of each person. Its the calendar time which has increased from two to four hours. While this looks like a problem, in a project this is really not an issue because there are always other activities available to be done. So if these same two people had to choose food for twenty different parties then this would not be a problem since while one person is complementing food for one party the other could be choosing food for another party. This is the major reason why I have seen Project managers schedule things parallely. The percieved increase in them leads them to believe that they are better off doing things parallely. However they end up introducing the three different problems which are mentioned above which actually ends up increasing the calendar effort also as all the bugs in the system have to be solved. Add to that the people related issues with one team blaming the other for the issues and you have your hands full. So until you have a very small project where you do not have more than one module it is always better to work linearly than parallely.