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/