eigenclass logo
MAIN  Index  Search  Changes  PageRank  Login

On the value of the RAA, and some statistics

$13,604,673. That's the value of an older RAA subset*1 I analyzed, according to the basic COCOMO model (more on that below).

More interestingly, I gathered some statistics relative to the sizes of the corresponding codebases.

TotalAverageStandard dev
Files3136 24.0 39
LOCs 4169293207 4331

/hiki/RAAstatistics/locs.png /hiki/RAAstatistics/files.png

Cost estimate

The aggregate figures are:

  • man months: 1094.6
  • cost: $13,604,673

The cost was estimated using the basic COCOMO model as

man_months = 2.4 SLOCS sup 1.05

with revised updated salary figures from [JMBar01]*2.

Individual statistics

NameFilesLOCsCostMan months
BlueCloth-1.0.0 11 4132 $132315 10.6
FXRuby-1.0.29 269 35183 $1253983 100.9
Linguistics-1.02 16 6811 $223621 18.0
PluginFactory-1.0.0 7 480 $13802 1.1
PrettyException-0.9.3 4 2441 $76135 6.1
RHDL-0.4.3 24 2295 $71361 5.7
RedCloth-3.0.0 5 2435 $75939 6.1
Ruby-HashSlice-1.03 3 202 $5562 0.4
RubyInline-3.1.0 8 1247 $37609 3.0
SpeedReader-0.5 17 1616 $49374 4.0
Test-Unit-Mock-0.03 5 1289 $38941 3.1
actionmailer-0.3.0 26 6278 $205283 16.5
actionpack-0.9.0 69 7167 $235910 19.0
activerecord-1.1.0 67 9174 $305723 24.6
aeditor-1.9 26 10939 $367763 29.6
amrita-1.0.2 83 11215 $377512 30.4
ansicolor-0.0.3 4 196 $5389 0.4
archive-tar-minitar-0.5.1 6 2475 $77249 6.2
arrayfields-3.4.0 4 729 $21404 1.7
aspectr-0-3-5 5 681 $19927 1.6
bdb-0.5.4 41 5802 $188972 15.2
bdbxml-0.5.2 29 1917 $59073 4.8
bitset-0.6.2 5 720 $21127 1.7
borges-1.1.0 158 9978 $333916 26.9
builder-1.2.2 9 1017 $30361 2.4
bz2-0.2.2 7 998 $29766 2.4
cache-0.1.0 2 379 $10769 0.9
captcha-0.1.2 6 1887 $58103 4.7
cgikit-1.2.1 62 11426 $384974 31.0
copland-1.0.0 119 12696 $430024 34.6
copland-lib-0.1.0 23 2836 $89121 7.2
copland-remote-0.1.0 20 3036 $95732 7.7
copland-webrick-0.1.0 18 2792 $87670 7.1
criteria-1.1a 13 1139 $34197 2.8
crypt-fog-0.1.0 4 145 $3927 0.3
cstemplate-0.5.1 2 124 $3332 0.3
dbdbd-0.2.2 6 597 $17354 1.4
dbus-0.1.7 19 2538 $79315 6.4
dev-utils-1.0.1 12 2583 $80792 6.5
diff-0.4 8 550 $15922 1.3
diff-lcs-1.1.2 12 2971 $93581 7.5
djb-netstrings-ruby-0.1.0 3 129 $3473 0.3
dpklib-1.0.6 134 8461 $280824 22.6
drbfire-0-1-0 6 1827 $56165 4.5
entryCache-1.1 6 363 $10293 0.8
extensions-0.6.0 37 4637 $149345 12.0
extmath-2.3 3 1443 $43840 3.5
flattenx-0.1.0 3 97 $2574 0.2
flexmock-0.0.3 5 280 $7837 0.6
formvalidator-0.1.3 10 1632 $49888 4.0
fsdb-0.4 29 3342 $105888 8.5
gemfinder-1.9.6 17 1385 $41991 3.4
gurgitate-mail-1.4.1 7 684 $20019 1.6
hobix-0.3 26 3806 $121376 9.8
html-parser-19990912p2 5 1117 $33504 2.7
ikko-0.1 2 291 $8160 0.7
instiki-0.9.1 34 3786 $120706 9.7
interface-0.1.0 7 231 $6403 0.5
iterator-0.8 18 2557 $79939 6.4
jabber4r-0.6.0 13 2861 $89946 7.2
kirbybase-1.6 4 1246 $37578 3.0
lafcadio-0.4.0 133 6989 $229762 18.5
libgnucap-ruby-0.1 4 296 $8308 0.7
libxml-0.3.4 25 1350 $40878 3.3
lingua-0.5 6 465 $13349 1.1
log4r-1.0.5 48 2988 $94143 7.6
madeleine-0.6.1 19 3090 $97521 7.8
mahoro-0.1 4 68 $1773 0.1
math-const-1.0.1 3 307 $8632 0.7
metatags-1.0 9 515 $14860 1.2
midilib-0.8.3 21 2812 $88330 7.1
mime-types-1.13.1 3 1635 $49984 4.0
mw-template-0.9.1 13 2961 $93250 7.5
narray-0.5.7p4 51 3385 $107319 8.6
needle-1.2.0 66 7405 $244142 19.6
needle-extras-1.0.0 11 1954 $60271 4.8
net-sftp-0.5.0 75 6565 $215148 17.3
net-ssh-0.6.0 123 15628 $534861 43.0
nora-0.0.20041021 45 5081 $164395 13.2
objectgraph-1.0.1 3 250 $6957 0.6
objectpool-0.2.0 5 325 $9164 0.7
pqa-1.3 3 837 $24745 2.0
purple-0.5.1 22 1415 $42947 3.5
raggle-0.3.2 7 5705 $185656 14.9
railties-0.8.0 20 848 $25087 2.0
rake-0.4.9 28 3778 $120439 9.7
rand-0.9.0 2 421 $12026 1.0
rb-gsl-1.5.2 214 14596 $497837 40.1
rb2html-1.1 7 707 $20726 1.7
rbmhshow-0.4.1 17 2417 $75349 6.1
rbtree-0.1.2 3 838 $24776 2.0
redcloth-2.0.11 4 1280 $38655 3.1
regexp-engine-0.12 32 8162 $270413 21.8
rgl-0.2.2 26 3114 $98316 7.9
rice-0.0.0.2 19 2164 $67090 5.4
rlimit-1.0 3 34 $856 0.1
rubilicious-0.1.0 5 640 $18669 1.5
ruby-aes-1.8.0 9 1119 $33567 2.7
ruby-bsearch-1.5 4 221 $6112 0.5
ruby-crypt-random-1.3 5 441 $12627 1.0
ruby-dict-0.9.2 3 896 $26580 2.1
ruby-gettext-package-0.8.0 38 3597 $114387 9.2
ruby-progressbar-0.8 3 286 $8013 0.6
ruby-romkan-0.4 3 385 $10949 0.9
ruby-termios-0.9.4 8 289 $8101 0.7
rubymail-0.17 25 7848 $259501 20.9
rubypants-0.2.0 3 661 $19313 1.6
rubyzip-0.5.5 19 7051 $231902 18.7
runt-0.2.0 14 2922 $91961 7.4
ruvi-0.4.12 35 10701 $359366 28.9
ruwiki-0.9.0 43 7651 $252665 20.3
sds-0.3 17 4891 $157946 12.7
session-2.1.9 10 1680 $51430 4.1
simplemail-0.3 5 624 $18179 1.5
snmp-0.3.0 20 4161 $133290 10.7
sqlite-ruby-2.2.2 19 3239 $102464 8.2
statistics-020920 3 311 $8750 0.7
stream-0.5 8 985 $29359 2.4
sympop-0.9.1 2 96 $2546 0.2
sys-host-0.5.0 5 384 $10919 0.9
sys-proctable-0.6.4 20 1362 $41259 3.3
sys-uptime-0.4.0 5 253 $7045 0.6
test-report-0.3.0 10 2465 $76921 6.2
tex-hyphen-0.2 4 4990 $161305 13.0
text-format-0.64 7 3099 $97819 7.9
tmail-0.10.8 43 10839 $364234 29.3
webfetcher-0.5.5 3 1401 $42501 3.4
webgen-0.2.0 31 4395 $141172 11.4
xhtmldiff-1.2.1 3 1520 $46299 3.7
xmlresume2x-0.2.1 7 1850 $56907 4.6

You might recognize some of your favorite libs in the above list. At least in my case the predicted cost doesn't correspond to the perceived value (but my metrics are nonstandard).


methodology - Pat Eyler (2006-03-24 (Fri) 07:19:09)

Interesting. I agree that some of the libraries I find interesting/useful have much lower costs than I'd imagine.

One question on your metric. Are you including the LOC from unit tests? Given recent studies suggesting that tests are free when doing test first development (when doing test first development), it might make sense to exclude some or all of the test code.

mfp 2006-03-24 (Fri) 08:42:42

Unit tests are included in the LOC counts given above, but I believe they don't make much of a difference anyway: most projects are far from the 50:50 (or 60:40 as I hear elsewhere) test:code ratio I've seen reported. Tests might only take 10-15% of the total LOCs (for every lib properly tested, there's another without a single test...). A fortiori, I believe most of the projects listed above were not TDD. If tests are only free when going TDD, only a few projects have benefitted from that. hmm I'm thinking that it would probably make sense to change the coefficients used in the basic COCOMO model (more than the LOCs) to reflect the effect of TDD and such methodologies.


Last modified:2006/03/18 08:28:46
Keyword(s):[blog] [ruby] [RAA] [codebase] [locs] [COCOMO] [cost] [statistics] [frontpage]
References:[CPAN vs. RAA: costs]

*1 a bit under 10% by project count

*2 J.M.Gonz├ílez-Barahona et al. 'Counting potatoes: the size of Debian 2.2', Upgrade Magazine, vol.II, issue no. 6, Dec 2001, http://www.upgrade-cepis.org/issues/2001/6/up2-6Gonzalez.pdf