- 2007年、2000行のコード
(folklore.org)The Original Macintosh: 36 of 123 - 2000 Lines Of Code
-
1982年初頭、Lisaソフトウェアチームは、今後6か月以内にソフトウェアをリリースするための最終段階の作業に集中していた。
-
管理職の一部は、各エンジニアが毎週書いたコード量を追跡するのは良い考えだと思い、毎週金曜日に提出しなければならない書式を作成した。その書式には、その週に書いたコード行数を記入する欄が含まれていた。
-
Quickdrawの作者であり、主要なユーザーインターフェースデザイナーでもあったBill Atkinsonは、コード行数はソフトウェアの生産性を測る愚かな方法だと考えており、それはただ雑然として水増しされた、バグのあるコードを書くことを助長するだけだと思っていた。
-
Atkinsonは最近、Quickdrawの領域計算機構を最適化する作業をしており、より単純で汎用的なアルゴリズムを使って領域エンジンを完全に書き直した。いくつかの調整の後、この変更により領域処理はほぼ6倍高速になった。
-
この書き直しの副次的な結果として、約2000行のコードを削減することにもなった。
-
最適化作業の仕上げ段階で、初めて管理書式を記入する時が来て、コード行数の欄に差しかかったとき、彼は少し考えたあと、
-2000という数字を記入した。 -
管理職たちがどう反応したのかは定かではないが、さらに数週間後、彼らはAtkinsonに書式の記入を求めるのをやめ、彼は喜んでそれに従った。
GN⁺の意見
- この記事は、ソフトウェア開発においてコード量が真の生産性を示すものではないという重要な教訓を与えている。コード行数を基準に成果を測ることは効率的でないだけでなく、ときには逆効果になり得ることを示している。
- Bill Atkinsonの例は、ソフトウェア最適化の重要性を強調している。より少ないコードでより高速な性能を達成することは、ソフトウェアエンジニアリングの中核原則の一つである。
- この話は、現代の開発プラクティス、特にアジャイル手法や継続的インテグレーション/デリバリー(CI/CD)のようなアプローチがなぜ重要なのかを理解する助けになる。これらの手法は、コード量よりも品質、保守性、そしてユーザー体験により大きな価値を置いている。
- 業界では、コード品質を測定し改善するためにさまざまなツールやメトリクスが使われている。たとえば、静的コード解析ツール、コードレビュープロセス、テストカバレッジの追跡などがある。
- この記事は開発者に対して、コード量よりも品質に集中し、不必要な複雑さを避け、性能を最適化することがどれほど重要かを改めて思い出させてくれる。
1件のコメント
Hacker Newsの意見
MicrosoftとIBMのコード行数をめぐる衝突
過去の議論へのリンク
コード行数を生産指標にするのは非常に愚か
order byで3年来のバグを解決した経験に触れ、1行のコードの影響をどう測れるのかという疑問を投げかけている。悪いプログラマーほど多くのコードを書くという経験も共有し、Microsoftの開発者がIBMの33,000文字のコードを220文字に書き直した事例を紹介している。その結果、Microsoftの仕事が「マイナス」と評価される状況が生まれたという。単純な質問が時に最大の影響を持つ
キャリア初期のコード最適化経験の共有
プロジェクト開始時には明確な方向性が欠けることがある
コード削除を指標にすることについての思考実験
ビル・アトキンソンのAtkinson Dither
コード行数に対する認識
従業員としての役割