ちょっとふらふらと日記を巡回していて
スクリプト言語、
Rubyのリリースエンジニアリングに関して。いろいろと騒動があったようなので、思ったことを。一連の流れは過去ログ
[ruby-list:40206]以下で見ることができますが、その前後のスレッドも見ておいた方がいいでしょう。
私も会社で開発、テスト、リリース作業をやっていますが、リリース作業って、ほんとに大変です。プロジェクトにはこぢんまりとした、FDに入るくらいの物から、CD-ROMにも入らないような物とかまでありますが、どれでも多かれ少なかれ苦労があります。
ましてや、
Visual Studioくらいになるとものすごい規模のチームで動いていますので、その作業たるや大変なものであることが想像できますが、その内幕を公開しています。
いくつも注目すべき点がありますが、「バグをクリーンアップする日」ってのはいいですね。見習いたいです。ほとんど私の気分だけでやってます(いけないことなのですが..)ので。さて、リリース作業を行う場合に重要なことはいくつかあります。
- リリース時にやると決めたことが終わっているか(バグや新機能など)
- セットアップは妥当か(動く物、バージョンアップもできるか、動かない環境はないか)
- 告知していない互換性の問題が発生しないか
上記三点に問題がある場合、リリースの延期などを考えねばなりません。また、
Visual Studio開発の現場からでも触れられていますが、生成が通ることも重要です(これは上の三番目にも関連しますが)。
「そんなばかな!」と思っても、巨大なプロジェクトになると、あるのですよ。仕様が変わったことに気が付いていなくて、新しい生成したてのライブラリで生成が通らないということが。特に、差分で出す場合などではそのリリースでほかのライブラリに影響がないか、常に考えなくてはなりません。
よく「リリース作業って人に任せられない?」と言われるのですが(
ruby-listでも触れられていますね)、まめであること、開発者と距離(物理的でなくてもよい)が近いこと、地道な反復作業に耐えられること、細かいこと、(できれば)ある程度全体像を知り、開発に必要なスキルがあること...という人じゃないと難しいかなと思います。
後、楽をするために手間をかけることをいとわないこと..かな。矛盾するようですが、間違えると作業がきつくなります。そうなると間違えないようにするためには、関連する
ツールを作ればいいじゃないか!ということになります。作るためにはどうするか...ということで、
後で楽をするために今苦労してもかまわないと思えることも重要です。
私も何回かミスしちゃって、改善しようと思っているのだけれど、なかなかいい改善が思いつかないです...。