1. The document discusses whether two tasks of selecting a drink and starter for a party should be done in parallel or linearly.
2. Doing the tasks in parallel could result in issues like the items not complementing each other well, or missing opportunities to better match items.
3. Doing the tasks linearly allows the second person to consider the item already chosen, increasing the chance of better complementarity and optimization of the selections.
1 of 3
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.