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.”