Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
– Bill Gates

I’ve seen it quoted a lot.

It sounds right, on the surface, but if you think about it, is it really right?

I mean… Here, let me talk about a ‘bug’ some customers found way back when. A number of customers who had bought Microsoft Small Business Server were complaining that they didn’t get their Outlook discs in the package.

A large enough number that we had to make a procedure to get the people missing discs.

Over time, it was discovered that what happened was this. The company who was contracted to put together the SBS boxes weigh full crates, not individual boxes.

The weight of 30 copies of SBS doesn’t take into account if two Outlook discs are in 15 of the boxes but the other 15 have none.

A program doesn’t have a fixed number of lines that defines when it is complete. An airplane, on the other hand, does have a fixed weight (plus or minus) and, assuming you know the weight before and after each step, you can, in fact, measure the progress of building an aircraft by the weight of it, much like you can measure the progress of a box of software being put together by the weight of the box.