Is the legendary Lines of Code - an objective measurement?
Since I became a Mac-addict, I seem to be sturving to anything Apple.
Today, while wondering around the Borders
bookstore in Pentagon City, I ran into a
wonderful book about Mac
history,
by Andy Hertzfeld, one of the “fathers” of the Mac. It is a great book,
with a great print quality for an amazing price, so I advice to get it
even to non Mac fans.\r
\r
Anyway, the book is about the software engineering, too, so I found
some interesting stuff in it, not directly related to Apple, so I
thought mentioning it. This particular one demonstrates that the Lines
of Code is a bullshit measurement. I know some may not need
demonstrations of that, and I, myself, think it is so obvious - I might
not bother to quote this large story, if not being a witness, couple of
weeks ago, how three of our team were seriously trying to measure effort
by “Lines of Code” and using some stupid “calculator” software. Seems
like, not everybody gets it, so here goes the real-life story:\r
\r
Page 65 of the book:\r
\r
“In early 1982, the Lisa software team was trying to buckle down the
big push to ship the software within the next six months. SOme of the
managers decided it would be a good idea to track the progres of each
individual engineer in terms of code they wrote from week to week. They
devised a form that each engineer was required to submit every Friday,
which included a field for the number of lines of code written that
week.\r
\r
Bill Atkinson, the author of QuickDraw and the main user interface
designer, who was by far the most important Lisa implementer, thought
lines of code was a silly measure of software productivity. He thought
his goal was to write a small and fast a program as possible, and the
lines of code metric only encouraged writing sloppy, bloated, broken
code.\r
\r
He had recently worked on optimizing QuickDraw\’s region calculation
machinery, and had completely rewritten the region engine using a
simpler, more general algorithm - which, after some tweaking, made
region operations almost six times faster. As a byproduct, the rewrite
also saved around 2,000 lines of code.\r
\r
He was just putting the finishing touches on the optimization when it
was time to fill out the management form for the first time. When he got
to the lines of code part, he thought about it for a second, and then
wrote in the number: -2,000\r
\r
I\‘m not sure how the managers reacted, but I do know that after a
couple more weeks they stopped asking Bill to fill out the form, and he
gladly complied.”