through System Dynamics
by Pat Craig
from the Fall 2001 issue
of the Complexity Management Chronicles
In many organizations, a "software crisis" involving cost overruns, late deliveries, and user dissatisfaction, continues unabated. However, the book "Software Project Dynamics - An Integrated Approach," written by Tarek K. Abdel-Hamid and Stuart E. Madnick, offers important insights about solving these problems.
The authors utilized system dynamics, a relatively new field dealing with complex system interactions. As researchers and scholars, the authors engaged in an extensive review of software development literature and conducted 27 focus interviews with software project managers. They then built a system dynamics model of 100 variables affecting software development. Next, they tested their model against a completed software project and found it highly accurate in replicating costs in man-days, work force loading, etc. Using the model, the authors predicted the ramifications of various managerial policies and procedures.
Some of their more important observations and conclusions follow.
A different estimate, i.e. a different project schedule, creates a different
project. The schedule has a significant influence on the behavior of the
project. For example, developers will work harder if the schedule is tight
and will slack off when the schedule is loose.
A more accurate estimate is not always a better one. Due to
experience with late deliveries, many development managers add a contingency
factor to estimates, padding their original scheduled end date with a few
extra weeks or months. The authors discovered that this practice produces
more accurate estimates. But, the authors also found that padding dates tends
to create more costly projects because the project expands to fill the time
available. If you give the developers more time they will take it, whether they need it or not.
Software projects will overrun even a "perfect" schedule estimate.
Personnel turnover and staffing wreak havoc with estimates. Furthermore,
estimating new projects by comparing them to past ones generates unnecessarily
long project schedules. (Past projects could have been plagued with turnover
and/or new hires.)
Excessive schedule pressure has a negative impact on productivity. Schedule
pressures increase programmers' anxiety levels and anxious programmers tend
to make more mistakes. Often the staff will cut corners in response to excessive
schedule pressure. Schedule pressure also causes managers to overlap tasks/phases
that should be performed in a strict sequential order. For example, overlapping
occurs when coding starts before design finishes resulting in more errors.
To meet the deadline, management often hires additional staff. Unfortunately,
newly hired employees are less productive and more error-prone than experienced
employees. Hiring additional staff causes the project to become compressed
in duration and inflated in cost!
Allocating individuals to more than one project increases costs by 22% or
more. Individuals must stay informed about the multiple projects to which they are assigned. Consequently, they spend a larger percentage of their day performing communication tasks such as reading emails and attending meetings for those multiple projects. Additionally, that person needs to climb the learning curve on two or more projects. Increased time spent on communication and learning comes at the expense of actually doing their job: developing or testing software.
QA spending can be extreme. The law of diminishing returns holds true when
QA spending exceeds 20%-30% of development costs. Given that it is impossible
to remove all errors in any sizable program, it makes sense to spend money
on QA judiciously. Naturally, required reliability will influence how much
should be spent on QA.
In conclusion, we suggest you read this landmark book for other terrific ideas.
©2001 by Complexity Management
Somerville, Massachusetts, in Metropolitan Boston
Complexity Management Chronicles, a newsletter for software quality
assurance professionals, is published in print form four times a year.
Send your name and snail mail address to the e-mail address below if you
would like to be on the mailing list - at no cost to USA mailing addresses.
Return to Complexity Management Home
Contact Pat Craig at email@example.com .