- 1982年、AppleのLisaソフトウェアチームはソフトウェアのリリースに向けて、各開発者の週ごとのコード行数を追跡する方針を導入した
- Bill Atkinsonは、コード行数はソフトウェア生産性の誤った指標だという考えを示した
- 彼はQuickdrawのリージョン計算エンジンを全面的に書き直し、約2,000行のコードを削減し、性能を6倍向上させた
- Atkinsonはコード数を報告する管理フォームに**-2000**と記入した
- 最終的に管理者はBillに、そのフォームの提出をもう求めなくなった
1982年のLisaソフトウェアチームとコード行数追跡方針
- 1982年初頭、Lisaソフトウェアチームは今後6か月以内のソフトウェアリリースを目標に集中的な取り組みを開始した
- 一部の管理者は、各エンジニアが毎週書いたコード行数を追跡することが進捗に役立つと判断した
- そのため、毎週金曜日にエンジニアが書いたコード行数を記録して提出するフォームを導入した
Bill Atkinsonの生産性指標に対する見解
- Quickdrawとユーザーインターフェースを設計したBill Atkinsonは、コード行数がソフトウェア生産性の基準にはなりえないと考えていた
- 彼は、プログラムをできるだけ小さく、速くすることが目標だと強調した
- コード行数の計測は、かえって雑で非効率なコードを助長しかねないという問題意識があった
Quickdrawリージョンエンジンのリファクタリングと最適化
- Atkinsonは最近、Quickdrawのリージョン計算エンジンをより単純で汎用的なアルゴリズムで全面的に書き直した
- 最適化の結果、リージョン演算の速度を最大6倍まで向上させた
- この過程で、2,000行に相当するコードも自然に削減された
-2000行のコード報告と管理者の反応
- 最初の週の管理フォームを記入していた際、Atkinsonはコード行数の欄に**-2000**と書いた
- 管理者たちがこの数字にどう反応したのかは明確ではない
- 数週間後、Billはもうフォームを提出しなくてよいと言われ、それを喜んで受け入れた
1件のコメント
Hacker Newsの意見
私が最高のコミットとして覚えているのは、約6万行のコードを削除し、すべての状態をメモリに保存していた「サーバー」全体を、軽量な約5,000行のロジックに置き換えた経験
大学時代、新入社員でも良いコードを書けるという経営方針の会社で働いたが、結局それは証明されなかった失敗例だった
関連トピックとして、「-2000行のコード」を扱った Hacker News の人気スレッドを リンク のようにまとめてある
私が担当した Web UI プロジェクトは25万行のコードがあり、バックエンドは含まない数字だった
addEventListenerだらけの構造だった。私は「修道士に JavaScript の本1冊と独房での10年を与えたら、こういうコードが出てくるだろう」と冗談を言うほどだったDilbert の漫画に、無限報酬構造を描いた一コマがあり、ディルバートの上司がバグ1件を直せば金銭報酬を約束すると、Wally が「今日は俺もミニバン1台分はコーディングしないとな!」と言い放つ
dotnet/runtime リポジトリで6万4,000行を削除した実例を共有
LLM が開発者の生産性をどれだけ高めたかという統計を見るたびに、この古典的な話を思い出す
私は CS 専攻ではなく、仕事をしながら実地で身につけた知識で働いている立場
年末評価を前に、社内モノリシックリポジトリでの自分の統計を見たら、コード純増ではなく純減の人間になっていることに気づいた
昔、大規模プロジェクトで PL たちが開発者ごとのバグ件数(直したバグ、作り込んだバグ)をオフラインで手書きし、壁に貼り出していた悲惨な KPI 事例に衝撃を受けた