Friday, November 07, 2008

Frequently Forgotten Fundamental Facts about Software Engineering

Bruce Eckel blogs about this article by Robert Glass. I've never seen this list before, but it is really good. The first one is so true:

C1. For every 10-percent increase in problem complexity, there is a 100-percent increase in the software solution's complexity. That's not a condition to try to change (even though reducing complexity is always desirable); that's just the way it is. (For one explanation of why this is so, see RD2 in the section "Requirements and design.")

I would add:

C2. For every increase in the software solution's complexity, there's a disproportionate increase (10-to-1? Maybe? Depends on the project I think.) in the cost of implementing the software.

I think he lets us programmers off the hook here:

ES3. Most software estimates are made, according to several researchers, by either upper management or marketing, not by the people who will build the software or by their managers. Therefore, the wrong people are doing estimation.

I don't know if I've ever met a technical person who overestimates, but I've met plenty who underestimate (myself included). You could argue the reason is insufficient information (see ES2), but we could all probably do a better job asking the right questions to get the information needed to make the estimate.


Post a Comment

<< Home