23章プリーズ・リリース・ミー

日が昇るときに天使が歌っていた

「慈悲、同情、平和は、世界の解放」。

――ウィリアム・ブレイク

ソフトウェアリリースを作ることは、ソフトウェア開発プロセスでの重要なステップです。また、ぎりぎりまで先送りするものではありません。そのためには、規律と計画が必要です。

ソフトウェアリリースの構築にきちんと取り組まなかったことが原因で発生し、避けられたであろう問題に、私は何度も遭遇してきました。

そのほとんどが、まっさらなチェックアウトからではなく、ローカルの作業ディレクトリから「リリース」を作るという、だらしない習慣が原因でした(助言:このようなリリースは本物のソフトウェアリリースではなく、コードのビルドにすぎません。適切なリリースを作成するには、多くのプロセスと注意が必要です)。

たとえば、次の通りです。

  • ソフトウェアリリースが、ある開発者の作業ディレクトリから作成されました。開発者はコードを最初にクリーンにせず、ディレクトリにはコミットされていないソースファイルの変更が含まれていました。彼は気づいていましたが、「リリース」を行いました。問題が報告されたときに、そのビルドに何が含まれていたかの正確な記録は存在しませんでした。その結果、そのソフトウェアのデバッグは悪夢でしたし、ほとんどが当てずっぽうでした。
  • 最新に更新されていないローカルディレクトリからソフトウェアリリースが作成されていました。開発者は、SubversionのコードリポジトリのHEADへと更新していなかったのです。したがって、そのリリースに含まれていない機能とバグ修正がありました。開発者は「リリース時点」としてリポジトリのHEADをタグ付けして、そのバージョンをビルドしたと言っていました。結果は、混乱と困惑をもたらし、プロジェクトの評判に傷を付けました。 ...

Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.