概要
- 1982年初頭、Lisaソフトウェアチームの進捗管理手法
- コード行数 による生産性評価の導入
- Bill Atkinson の反発と独自の最適化
- Quickdraw の改良による大幅な効率化とコード削減
- 結果として評価方法の見直しに至ったエピソード
コード行数マネジメントの問題点
- 1982年、Lisaソフトウェアチームで 出荷に向けた追い込み が始まる
- マネージャーが 各エンジニアの進捗を「週ごとのコード行数」で管理 する制度を導入
- 毎週金曜日に コード行数を記入するフォーム の提出を義務化
- Bill Atkinson (Quickdrawの開発者、UI設計の中心人物)はこの基準に疑問
- 「効率的で小さく速いプログラムを書くこと」が本来の目的 であり、コード行数の多さはむしろ逆効果と指摘
- コード行数重視は 冗長でバグの多い設計を助長 する危険性
Quickdraw最適化と-2000行
- Atkinsonは Quickdrawの領域計算エンジンを全面的に再設計
- 単純かつ汎用的なアルゴリズム で処理速度を約6倍に向上
- 最適化の副産物として 約2,000行のコード削減 を実現
- 初めてフォームを提出する際、 「-2000」と記入
- マネージャーの反応は不明だが、 数週間後にはAtkinsonだけ提出不要に
- 本人は この対応に満足
ソフトウェア生産性評価の本質
- ソフトウェア開発の進捗や品質は単純な数値で測れない
- イノベーションや最適化による「減らすこと」も価値
- エンジニアの本質的な貢献 はコード量ではなく、 設計や効率化、品質向上
- 管理手法の柔軟性・見直しの重要性