Page 43 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 43
Unit 2: Software Processes and Models
the team size is fixed throughout the iteration, and that the team has R resources. So, the same Notes
R people perform the different stages – first they perform the tasks of stage 1, then of stage 2,
and so on. With time boxing, there are different teams for different stages. Assuming that even
with dedicated resources for a stage, the same number of resources is required for a stage as
in the linear execution of stages; the team size for each stage will be R. Consequently, the total
project team size when the time box has n stages is n × R. That is, the team size in time boxing
is n times the size of the team in serial execution of iterations. Hence, in a sense, the time boxing
provides an approach for utilizing additional manpower to reduce the delivery time. It is well
known that with standard methods of executing projects, we cannot compress the cycle time
of a project substantially by adding more manpower. This principle holds here also within a
time box – we cannot reduce the size of a time box by more manpower. However, through the
time boxing model, we have been able to use more manpower in a manner such that by parallel
execution of different stages we are able to deliver software quicker.
2.6.4 Unequal Stages and Exceptions
Clearly, the reality will rarely present itself in such a clean manner such that iterations can be
fit in a time box and can be broken into stages of equal duration. There will be scenarios where
these requirements will not hold. What happens when such exceptions present themselves? First
situation which is likely to occur is that the stages are of unequal duration. As the pipelining
concepts from hardware tell us in such a situation the output is determined by the slowest
stage, that is, the stage that takes the longest time. With unequal stages, each stage effectively
becomes equal to the longest stage and therefore the frequency of output is once every time
period of the slowest stage. Note that even with this, a considerable speedup is possible. For
example, let us consider a 3-stage pipeline of the type discussed in which the different stages
are 2 weeks, 4 weeks, and 3 weeks – that is, the duration of the time box is 9 weeks. In a serial
iterative development, software will be delivered every 9 weeks. With time boxing, the slowest
stage will determine the speed of execution, and hence the deliveries will be done every 4 weeks.
This delivery time is less than half the delivery time of serial iterations. However, there is a
cost if the stages are unequal. As the longest stage determines the speed, each stage effectively
becomes equal to the slowest stage. In the example given, it means that the 8first and third
stages will also get 4 weeks each, even though their work requires only 2 and 3 weeks. In other
words, it will result in “slack time” for the teams for the first and third stage, resulting in under
utilization of resources. So, the resource utilization, which is 100% when all the stages are of
equal duration, will reduce resulting in underutilization of resources. Of course, this wastage
can easily be reduced by reducing the size of the teams for the slower stages to a level that
they take the same time as the slowest stage. Note that elongating the cycle time by reducing.
Manpower is generally possible (even though the reverse is not possible.) Another special
situation can easily arise an exceptional condition arises during the execution of a stage of
sometime box, due to which the stage is not able to finish in its allotted time. We do not need
to worry about the nature of the exception except that the net effect of the exception is that it
elongates that stage by ∆T. Clearly, if such an exception occurs, the execution of the later stages
will be delayed resulting in the output being delivered late by ∆T. Similarly, due to this delay,
the output of earlier stages in later time boxes cannot be consumed in time, resulting in the
teams of these stages “waiting” for their output to be consumed. The net result of this is that,
one delivery gets delayed by ∆T, with a corresponding slack time for each team for one time
box. After that, all future deliveries will come after every T/n time units (for an -stage time
box of T duration.)
LOVELY PROFESSIONAL UNIVERSITY 37