Software Processes
The Rational Unified Process
http://www.therationaledge.com/content/jan_01/f_rup_pk.html
 Activity Workload as a function of time 
 
 Inferred from the figure
 -  Waterfall-like succession of Requirements, Design, Implementation, Testing.
 
-  Not pure waterfall:
  
   -  Iteration
   
-  Overlap (concurrency) between activities
  
 
-  Testing:
  
   -  Regression (test not only newly developed, but also previously developed code)
   
-  Testing starts before design and coding (Extreme Programming)
  
 
Team Size Influences Productivity
Fixed Team Size N
Forrester System Dynamics model
 
development rate = 
 nominal_productivity*(1-C_overhead*N2)*N
Team size (N) = 5 simulation results
 
 Team size (N): 3 .. 9 simulation results 
Optimal between 7 and 8
 
The effect of adding new personnel
Forrester System Dynamics model
 
development rate = 
 nominal_productivity*(1.2*num_exp_working 
                       + 0.8*num_new)*(1-C_overhead*N2)
5 new programmers at day 100 simulation results
 
 
2 new programmers at day 100 simulation results
 
 
new programmers at day 100: 0 .. 6 simulation results
 
Conclusions
 -  There is an optimal team size. A larger team does not necessarily mean higher productivity.
      This is due to interaction overhead.
 
-  Adding new developers to a project-in-progress when it is late will delay it even more.
      This is known as Brooks' Law (described in his seminal book 
       
      The Mythical Man-Month). It is due to the reduced productivity when training new developers.
      After the training period, the productivity does increase (if not too many developers were added, see 1.).
Extreme Programming
http://www.extremeprogramming.org/
 
 
  
 
 
  
 
 
 
  
 
 
 
  
 
 
 