メンテナンス・リリースを「サービスパックなんたら」とか「アップデートなんたら」と呼ぶのはどうか?
えー,端折りまくりのタイトルで何を言いたいのかわからんと思うので,前フリを.
- 社内用に,いわゆる「野良フレームワーク」のメンテナンスをしている.
- バージョン番号は,考えなしにn.nn形式(ver1.01とか ver1.20 ってあれ)にしている.
- メンテに手間をかけたくないので,メインラインを1つにし,バグ修正も機能拡張も常に最新バージョンで解決ってルールにしてる.
- 慣例的にバージョン番号は,バグ修正なら小数2桁をカウントアップし,機能拡張なら小数1桁をカウントアップしてる.
- とは言え,バージョン番号の発行はこっちの気持ち次第ってのが本音(これが間違い).
- メジャーバージョンアップ(整数桁のカウントアップ)しない限り,上位互換を維持するルールは厳守してる.
- そのための自動テストだ.
要するに,ver2.00が出ない限り ver1.xx は常に最新バージョンを使っても問題ない(むしろ,使って欲しい)のだ.
んが,現場はこちらの想定の斜め上を行く.:-(
いわゆる「バージョン固定したい欲求」ってヤツでして,いくら「最新版でもデグレしない」って言っても「自分らが使ってるのは ver1.xx で固定したから,最新版とかよう知らん」と言われる.これはもう気持ちの問題なので,理屈じゃどうしようもない(その心理は分からんでも無いし).
そんなわけで,重要なバグが見つかると泣く泣くバックポートを用意する羽目になるのであった.orz
こうなった理由を推測するに,変に気取ってマイナーバージョンなんぞを振ったのが悪かったんだろう.
そこで,あたしは考えた.上位互換が損なうようなメジャーバージョンアップ以外はバージョン番号をいじるもんじゃない!と.バグ修正だろと機能追加であろうと,メジャーバージョンアップ以外はメンテナンス・リリースなんだから,サービスパックでいいんだ(またはアップデートリリース)...という話(長っ).
具体的に言うと,今までは
ver1.00 → ver1.01 → ver1.10
みたくバージョンを上げていったんで,最新版でバグが出てメンテナンス・リリース(ver1.11)出すと,既存ユーザからは「自分らの使ってるバージョンにもパッチ出せ」と言われ,しぶしぶバックポート(bp1)を作る.
ver1.00 → ver1.01 → ver1.10 → ver1.11 | | | +→ ver1.00bp1 +→ ver1.01bp1 +→ ver1.10bp1
もともとバックポート作りたくないために上位互換の維持をルールにしたのに,これじゃ意味が無い.なんで,これからはこうする.
ver1.00 → ver1.00sp1 → ver1.00sp2 → ver1.00sp3 ...
メンテナンス・リリースじゃバージョン番号は変えず,代わりにサービスパックの番号を上げる.あと上位互換の維持を強調するため最新版しか公開しない.これでどだっ.
まだ試してないから効果の程は分からないが,さすがに「特定のサービスパックにパッチ出せ」って言わないよなぁ〜.
ps.
バックポートに関しては「パッチ当てた振りして実は全部が最新バージョン」ってのも考えたが,自分自身をワナにかけそうなので止めた.:-)