[NNagain] correctly calculating code complexity and cost
Dave Taht
dave.taht at gmail.com
Fri Nov 17 09:08:29 EST 2023
The first tool I whip out when someone proposes replacing something
(like dnsmasq, or a custom codebase) is to apply something derived
from the cocomo model to add up what it took in terms of programmer
hours to write the existing thing in the first place. There was a fun
recent competition to see who could write the fastest tool for this a
while back, but can only find this reference to it and the excellent
ssc tool right now. I think there is a decent rust tool for this also.
https://engineering.kablamo.com.au/posts/2021/quick-comparison-between-go-file-walk-implementations/
I have not paid any attention to this area of software estimation
costs in going on 20 years! (usually successfully making the point
that reuse and extension of something pre-existing is cheapest) QA is
not handled in cocomo, porting costs neither, the model totally fails
on maintenance costs as well! I have hoped that key maintainers of
complex codebases (bob on iperf2 perhaps? ) would compare their actual
experiences against those models with scc and improve them. People
have a tendency to not measure the why of a failure like bind10,
either. lastly, code quality can be inversely proportional to size,
and yet take longer to achieve elegance and speed. This story from
apple's early days expresses it well
https://www.folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt
fq_codel for wifi was a net -200 lines of code.
the FCC BEAD database code is closed source (sigh) but I would love to
know what upenn (?)'s similar attempt looks like through models like
this?
For every new software language generation much is claimed that it
will be 5-6 times more productive, which if that were true, would mean
that all the code in the world could now be managed with a single
monkey attached to chatgpt. The Rust messaging is a perverse relief
here, as it is multi-core speed gains driving it and it is the hardest
language I have ever tried to use, and I went back to C and SQL. I
know this guy tho, that managed to pound out 25k amazing lines of rust
in a year, with a little chatgpt to handle the boilerplate better.
--
:( My old R&D campus is up for sale: https://tinyurl.com/yurtlab
Dave Täht CSO, LibreQos
More information about the Nnagain
mailing list