Page 93 -
P. 93

78     DUBINSKY,  HAZZAN,  TALBY,  AND  KEREN
                    Figure 6.3  Averaged Keyword-Based Complexity in Eight Monthly
                              Checkpoints
                                                       SpecP
                                    75
                                    73


                                    71
                                    69


                                    67

                                    65
                                        Feb  Mar   Apr  May  Jun  Jul  Aug  Sep


                                                       SpecA
                                   25

                                   23

                                   21

                                   19

                                   17

                                   15
                                        Feb  Mar  Apr  May  Jun   Jul  Aug  Sep

                      Several complementing explanations for this outcome follow.

                      •  First, the plan-driven project is three years older than the agile one and is at a much later
                        development stage. Although the plan-driven project is still being developed, a large existing
                        code base sometimes enforces the enhancement of existing modules rather than the creation
                        of new ones.
                      •  Second, in the agile project, continuous refactoring is performed in order to break down
                        large modules and reduce dependencies. When a module gets too complex, it is refactored
                        into (possibly several) simpler modules. The goal is to keep the design simple over a long
                        period of time, rather than assuming the “right” design in advance. In contrast, in traditional
                        software projects, the design of modules is usually set in advance. Further, the high absolute
                        complexity of the plan-driven project, achieved over time (recall that it is in a more mature
                        state than the agile project), makes refactoring at this stage more expensive and risky.
                      •  Third, some of the business analysts who worked in the agile project had previous analysis
                        experience in the plan-driven project. Thus, they corrected past mistakes and produced a
                        more modular design this time.
   88   89   90   91   92   93   94   95   96   97   98