Joel on Software

Joel on Software

Joel on Software

やっぱ面白かった。でも、サブタイトルにあるようなマネジメントの本という感じではなく、自分みたいな下っ端開発者でも十分に興味深い。
まさに現場の人って感じの文章で、理論をぶん回すタイプのものじゃないので共感できるしわかりやすい。

互換性の維持に関する話

互換性の維持に関する話は、マイクロソフトのパワフルさを良く表している。互換性を維持するのってホント大変なんですよ。アプリからすれば、前のバージョンで動いてるんだから新しいバージョンでも動いて当然なわけで、ランタイムライブラリ側からすると、もともと変な作りでアプリが作られているから動かなくなって当然と思う。世の中に出回っているアプリを救おうとすると、キモーいコードをランタイムライブラリ側に入れるしかないので、注意深く修正を行わないと他のアプリで問題が発生するかもしれないし、1年後にそのキモコードを見たときに理解できる必要があるので、何でそういう変なコードになっているかというようなコメントも入るわけです。

オープンソースに関する話

「企業がオープンソースに金をつぎ込むのは、自社製品の補完材をコモディティ化して自社製品への需要を高めるため」というお話。
補完材のコモディティ化を自分の手でやってしまうというのは非常に興味深い。
ウチの製品で補完材とはなんぞや?

その他

  • 抽象化は作業時間を短くはしてくれるが学習時間までは短くしてくれない

→ 抽象化には「漏れ」があることが多い。漏れに対処するためには抽象化されている機能についての知識が必要。

  • 測定には測定機能障害がつきまとう。測定による評価を報奨と直接結びつけると「測定のために働く」という本末転倒な状態になる可能性あり。
  • クラッチからソフトウェアを書き直すのは悪。

→ 今までテストして枯れたコードには価値があるし、書き直している間の時間はアップグレードもできないので競合につけいる隙を与えてしまう。