メンテナンス・リリースを「サービスパックなんたら」とか「アップデートなんたら」と呼ぶのはどうか?

えー,端折りまくりのタイトルで何を言いたいのかわからんと思うので,前フリを.

  • 社内用に,いわゆる「野良フレームワーク」のメンテナンスをしている.
  • バージョン番号は,考えなしに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.
バックポートに関しては「パッチ当てた振りして実は全部が最新バージョン」ってのも考えたが,自分自身をワナにかけそうなので止めた.:-)