2019-01-14

改元に伴うソフトウェア修正がなぜ難しいのか

プログラマ以外の人に向けて書きたいと思います。長いです。

とりあえず説明やすくするために、平成の次の元号を毎回毎回「平成の次の元号」と言ってしまうと面倒なため、「応仁」としてみます。実際の元号は「応仁」にはならないと思いますが、便利なので「平成の次は応仁」だととりあえず思い込んでもらいたいです。

さて、あなたプログラマあるいはSEになりました。まあ、とにかくソフトウェア修正をしなければいけない立場になりました。

今回修正するソフトウェアは、他の企業平成8年に作成したもので、本来平成15年でメンテナンスを終了するという契約だったようでした。なのでメンテナンス特にされてはいません。顧客が「使えるのだからいいだろう」ということで長年使い続けてきたものです。しかし、この度改元にともなって、あなた会社改元発注が舞い込みました。

「なんで5月改元なのに1月発注するんだ……遅すぎるぞ」とあなたは呆れていますが、仕事仕事です。諦めて作業にとりかかりました。

あなたはまず、このソフトウェアがどういうものなのかを確認します。取引先が取引先に売るためのソフトウェアのようです。比較的大きなソフトウェアなのでまずどのようなものなのかを確認するのが大変でしたが、あなたはなんとかソフトウェアの全容を理解し始めました。

ここで、あなた直感的に「平成」となっている部分を「応仁」に変えてみます

すると今年は平成31年のはずなのに応仁31年となってしまます。横着をして計算しないとこういうことになってしまうので、まずは内部では平成31年の5/1以降なら応仁元年ということにします。応仁1年ではダメと言われてしまったので、ちゃんと1のときは「元年」に変えます。「元年」のときだけレイアウトが崩れてしまいましたが「平成元年も崩れますよね?」という交渉を行って、なんとか鉾をおさめてもらいました。

さて変更したので、ちゃん動作がうまくいっているかテストを行います自動で出力される書類の日付は「応仁元年5月2日 発行」となっています

すばらしくうまくいっていますテストをしている人(もちろんあなたです!)は心をよくしてそのままテストを続けていました。そうすると「H31 05/02」というもの発見しました。

そうでした。アルファベットの方も変更しなければいけませんでした。先程と同じように平成31年の5/1以降はHではなくOというふうに書き直します。なあんだ。簡単じゃあないか。誰だ難しいと言ったのは。

平成30年の3年後は応仁3年」という計算もすばらしくうまくいっています

あなたはこれに気をよくして取引先に納品しました。納品にあたってメンテナンス期間を設けて深夜に出勤し、問題がないかチェックをしました。そうして更新されたソフトウェア取引先で使われ始めました。

取引先も「いいじゃないか」と言ってそのまま応仁元年5月1日を迎えました。

すると早速クレームが入ります

平成のままになっているじゃないか!!!!!」

あなたは驚いてクレームの箇所を確認しました。すると㍻315月1日となっている箇所を発見しました。なんとここだけ使われている文字が違ったのです。「㍻」と「平成」は全く違う文字です。あなたは新しく追加された「細い応仁」の文字を使わなければいけません。この前と同じように、ネットから新しく発表された「細い応仁」をコピペして、日付計算だけして終わろうとします。

あなたは「やらかししまった」と冷や汗をかいていますが、これでなんとかなるだろうと楽観していました。

するとエラーが出ました!

入力された文字不正です」

時間かかけて調べるとどうやら新しい「細い応仁」は、Unicodeというものを使っていて、Shift JISというものを使っているこのシステムでは使えない文字のようでした。これに驚いたあなたは「Unicodeというのを使わないといけません!」と上司相談し、取引先と交渉することになりました。結果は「それはダメ。なんとかしてくれ。なお追加予算は出せない」ということでした。

Unicodeを使えるようになってしまうと、文字けが起こったり不正文字入力されるとエラーになる文字)をバンバン入力できるようになります。そうするとまた全部の箇所をひとつひとつ確認することになります予算もかかるし時間もかかります取引先が、取引先の取引先とも連携できなくなる可能性すらありました。なので却下されました。でも「細い応仁」でないとダメだということです。

しかたないのであなたはそこの部分のときだけ文字ではなく「細い応仁」の画像を出力するようにしました。これはとても大変な作業でした。何しろ昔のソフトウェアですから、昔のコンピュータの上でも動くように作らなければいけなかったのです。

そのあと㍻と出力のされていた部分を一通りテストしていきました。しかしまだ「㍻」となっている部分がありました。あなたはため息をつきながらそこの部分も修正します。

さあこれでとうとう終わった!あなたは晴れやかな気分で顧客に頭を下げて再度納品しました。もちろん、深夜作業も行いました。

半年後、応仁元年12月5日のことです。あなたは再度クレームを受けました。「平成31年がない!」というのです。

あなたはそんなバカなという顔をしてその箇所を確認します。そこはユーザーに生年月日を選択させる箇所でした。

平成29年」「平成30年」「応仁元年」「応仁2年」というように元号が並んでいる箇所があり、ユーザーはこの中から生年月日を選ぶようになっています。ここは「平成31年/応仁元年」と書かなければいけない箇所でした。

あなたは「応仁元年」となっていた文字場所を「平成31年/応仁元年」と書き換えました。するとレイアウトが崩れました。取引先に確認すると「レイアウトが崩れるのはダメ」ということでした。「レイアウト崩れは許容しないとこれは無理」という交渉を行うことになりました。数日間の交渉の結果、なんとか折れてもらうことになりました。

ここに至って、あなたは「改元対応すらまともにできない人」という烙印を押されていて、味方がおらず、だんだんイライラするようになります

ただその後は特に問題がないようで、あなたは胸をなでおろしました。

応仁2年3月17日あなたが別のプロジェクトをやっていると「決算書類平成31年度じゃなくて応仁元年度になっている!」と言われました。そうです。応仁は5/1から始まったので、応仁2年3月末までは平成31年度なのですね。あなたは「どうでもいいだろ」と一瞬思いましたが、かなり重要問題だということで、仕方なく修正しました。いままでの経験が生きたのですぐに修正自体は終わりましたが、顧客場所まで深夜に行ってメンテナンスをしないといけないのだけが大変でした。

あなたソフトウェアを作った人に「最初から改元のことを考えて作っておけよ」というふうに呪いますしかしこのソフトウェアが作られたのは1996年のことでした。1996年というと平成8年です。そして再掲しますが、平成15年までという契約だったようです。だから改元ことなど考えなかったようです。もしかしたら予算の都合かもしれません。当時はそれよりも2000年問題の方が重要でした。

また、1996年というとインターネットが出始めたばかりのころです。2chもまだ存在していません。パソコン能力も今の1万分の1だと思ってもらってかまいません。そういう時期に作られたものメンテナンスするのは大変です。いろいろなものが今と違うし、当時の書類が残っていないこともありますそもそも今の開発機で動かない可能性もあります

あなたは今の話を聞いて「改元に伴ってこの他にやるべきことは絶対にない」と言い切れるでしょうか。たぶん、そんなことはないはずです。だって実際の元号は応仁ではないし。

さて、怖い話は終わりです。

改元に伴う修正というのは、これらを事前に調査してすべて変更し確認するということです。「あ、そうでしたッ!」とならないように、プログラマはこれらを事前にやり、確認します。簡単仕事だと思いますか?だとするとあなた改元に関するソフトウェア修正で大儲けすることができます。自信をもってプログラマになってください。

からあるソフトウェアは大変ですが、もちろん大変でない企業もありますそもそも西暦しか使っていない企業がそうです。あらかじめ改元のことを考えていた企業もあります。とくに最近作られたソフトウェアは、そういうことを見越して作られているので変更は比較的容易です。そういう人は「大変だ!」とは騒ぎません。「大変そうだなあ」と静観しています

ぼくも静観する組なので、実際の大変さについてはよくわかりません。

見た目では確かに平成」を「応仁」に変えるだけです。それだけなのに騒いでいる人を見ると騒いでいる人がバカっぽく見えます。確かに騒ぎすぎてる人もいて、辟易とする気持ちはわかりますが。

でも、見た目を変えるのは簡単そうに見えますが違います。「異性にモテないなら顔を美形にしろ」と言われてすぐできるものではないのと同じことです。見た目を変えるというのは、見た目を変えるだけでは済まないことも多いのです。

ぼくも静観する組なので、実際の大変さについてはよくわかりません。

でも「大変そうだな」ということはわかってほしいなと思います

ぼくも静観する組なので、実際の大変さについてはよくわかりませんが。

  • anond:20190114072304

    日本人に迷惑をかける元号は廃止した方がいいな 西暦で統一しよう

  • anond:20190114072304

    うんち

  • anond:20190114072304

    なんだかちっとも大変そうに思えない。結局は「そういう仕事は断る」だけでいいんじゃないか? 元号変更の仕事を断るときの「断る難易度」が、他の仕事を断るときの難易度よりも高...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん