ゲーマーときどきエンジニア

基本ゲーム記事を書いて、ときどき考えを発信するエンジニアのブログです!

サマータイムを導入するとエンジニアが死ぬ3つの理由

こんにちは。たいら(@tairaengineer2)です。
最近めちゃくちゃ暑いですねι(´Д`υ)アツィー
そんな時、政府がオリンピック・パラリンピックに向けて、酷暑対策にサマータイム導入を検討し始めました。

政府・与党は、平成32(2020)年の東京五輪・パラリンピックの酷暑対策として、夏の時間を2時間繰り上げるサマータイム(夏時間)導入に向け、本格検討に入った。

【東京五輪】酷暑対策でサマータイム導入へ 秋の臨時国会で議員立法 31、32年限定(1/2ページ) - 産経ニュースから引用させて頂きました

マジで止めてくれ。
エンジニア死ぬから。

この記事では、なぜサマータイム導入がエンジニアを死なせることになるのかを、現役エンジニアの私が書いていきます。

f:id:Tairax:20180811110328p:plain

そもそもサマータイムとは

夏時間(なつじかん)またはサマータイム(英: summer time)、デイライト・セービング・タイム(米: daylight saving time (DST)、直訳: 日光節約時間。カナダ、オーストラリアでも用いる)とは1年のうち夏を中心とする時期に太陽が出ている時間帯を有効に利用する目的で、標準時を1時間進める制度またはその進められた時刻のこと。

夏時間 - Wikipediaから引用させて頂きました

つまり、いつもより時計を1時間仕事を早く始めて、早く終わろうということです。
先ほどご紹介したニュースでは

導入すれば、午前7時スタート予定のマラソンが、もっとも涼しい午前5時スタートとなり、日が高くなる前にレースを終えることができる。

【東京五輪】酷暑対策でサマータイム導入へ 秋の臨時国会で議員立法 31、32年限定(1/2ページ) - 産経ニュースから引用させて頂きました

何か一見良さそうな制度に見えます。
が!そんなことはありません。
エンジニアには苦しむ要素が盛りだくさんです。

理由その1:何もかも未確定

まず、2020年のオリンピックに合わせて、サマータイムの導入するかを今から決めるってところが問題です。

システムはこのような工程で開発を勧めます。

f:id:Tairax:20180811112534p:plain

各工程の意味は次の通りです。

システム企画 通常受注をする前に、営業やITコンサルタントがエンドユーザのシステムに関する要望や、現状システムの問題点などをヒアリングし、それに基づき、システムの企画を行い、エンドユーザにプレゼンテーションを行ったりします。
要件定義 システム方式設計と言う場合もあります。
システム開発を行う際に、再度エンドユーザの現状業務やシステムを分析し、業務要件とシステム化要件を定義します。
エンドユーザは、システムに関する知識は持っていないことが多いため、その要求は、曖昧だったり、矛盾していたりしますが、ITコンサルタントやSE(シ ステムエンジニア)が、それらを取り纏め、実現可能な要件を定義する工程となります。
ここがエンドユーザの認識とシステム開発者サイドで認識のズレが生じ ると、後工程で致命的な設計上の欠陥が顕在化する場合があるので、非常に重要な工程です。
概要設計 基本設計、UI(ユーザインタフェース)設計と言う場合もあります。
ここでは主に入出力に関する機能設計を行っていきます。
具体的には、画面設計、帳票(レポート)設計、データベース設計などがそれに該当します。
プログラム設計 詳細設計において機能ごとに分割したプログラム1本1本の構造や処理手順を、詳細に設計します。
プログラムを記述する前に、日本語でその内容を記述するようなイメージです。
プログラミング プログラム設計書に基づき、プログラムを作成する工程です。
コーディングとも言います。
プログラムテスト
結合テスト
システムテスト
運用テスト
作成したプログラムをテストしたり、機能を検証したりする工程です。
品質を担保するための重要な工程です。
プログラムのテストをプログラムテスト(単体テス トとも言います)、各プログラムをつなげて機能レベルのテストを行うのを結合テスト、システム全体で検証することをシステムテスト、エンドユーザが実務 データに基づき検証するのを運用テストと呼びます。
運用保守 この工程は、開発終了後(カットオーバーなどという場合があります)、システムが実際に動いた後(本番稼動、サービスインなどと呼びます)、障害対応やユーザの追加要望に対して対応しながら、システムの運用や保守を行っていく工程です。
その他、ユーザトレーニングやサポートなどの工程も発生します。
新しいシステムを導入するため、システムに不慣れなユーザは、導入後すぐにシステムを使いこなすことは難しいため、操作トレーニングや稼動後のサポートを行うこともあります。

開発プロセスと開発標準化 | Java, Androidの環境構築、AWS関連の技術情報ポータル | Tech Fun.ccから引用させて頂きました

結構難しいことを書いていますが、要はまだサマータイムの実施や詳細が決まってないから、準備ができないんです。
新規で受注するなら、システム企画工程ですべき、システムに関する要望はまだ答えられないし、どれくらいの開発規模になるのかも分からないから開発費用も分からない。

今あるシステムを改修するなら、要件定義で現在の業務の状況や、システムを分析して、どのように改修すべきかという要件がまとめられません。

つまり、何もできないということです。

 

スポンサーリンク

 

理由その2:時間が足りない

もしサマータイムを導入することが決定すると、システムを改修するための時間が圧倒的に足りない。
理由は時間に関係あるシステムはすべて改修対象になるからです。

バッチ処理はたぶん全部修正ですねー。
ちなみにバッチ処理とは

あらかじめ一連の処理を登録しておき、それらを自動的に実行する処理方式。
複数のプログラムやファイル転送コマンドなどの実行順序を定義しておき、定義に沿って大量のデータをまとめて処理する方式を指す。

バッチ処理 | IT用語辞典 | 大塚商会から引用させて頂きました

バッチ処理は例えば、毎週土曜日朝3時にデータベースのバックアップをさせるとかですね。
システムによって様々なバッチ処理の実行時間が登録されています。
なので、サマータイム導入によってその実行時間をすべて見直さなければならない。

例えば、サマータイム導入前は朝5時に実行していたバッチ処理があるとします。
サマータイム導入後は1時間繰り上がって朝4時に実行することになります。
バッチは1つだけではありません。
数珠つなぎのように連なっています。
1つのバッチ処理の時間を繰り上げると、他のバッチ処理の時間も繰り上げねばいけません。
そのバッチ処理を繰り上げて、するとほかのバッチ処理にも影響があって。。。
と、無限ループ
気が遠くなりますねー。

特に、銀行系年金システムはやばいと思います。
何故そう言えるかかと言いますと、私は以前COBOLエンジニアとして、年金システム開発に携わったことがあるからです。
銀行系や年金システムは、プログラム言語に基本COBOLを使っています。
そして、COBOLを使ってるシステムは基本でかいです。
私が携わってきた中で、1番プログラムのステップ数(行数)が多かったのは万超えてます。
ボリュームで言ったらだいたい400字詰めの原稿用紙で25ページ以上ですよ。
そんなのがごろごろありました。
もしサマータイム導入するとならば、ステップ数が万を超えている化け物クラスのプログラムがたくさんあるシステムを改修しなければいけません。
デスマーチ確定でしょう。

理由その3:2019年新元号に変わる対応で殺されかけている

2019年の4月30日に天皇陛下が退位され、5月1日に皇太子様が即位されます。
それに従って元号が変更になりますが、その対応がエンジニアを殺しにかかっているとしか思えないです。

www.sankei.com

↑の記事をサクッとまとめますと、
今までの慣例通り皇太子様が即位した後に新元号発表するのが普通だよねー。
です。

銀行系や年金システムは、今でも元号を使って処理しているものがあります。
改元する1年前に新元号を発表しても、無理なシステムもあると思います。
そんな状況なのに、2019年5月1日に発表して1カ月以内に対応しろとかなら、

 

俺は怒ったぞおお!
日本政府!!

 

ってクリリンがフリーザに殺されたときの孫悟空も驚く怒髪天を衝くような形相をエンジニアはするでしょう。

その新元号対応だけでも大変なのに、さらにサマータイム導入となると、エンジニアが絶滅します。

まとめ:サマータイムを導入すると、日本のエンジニアが死ぬ

いかがでしょうか?
以上がサマータイムを導入すると、エンジニアが死ぬ3つの理由です。
ただでさえ、エンジニア人材は不足しています。

人材不足規模
2015年 約17万人
2030年 約59万人

IT人材の最新動向と将来推計に関する調査結果から引用させて頂きました

これだけ不足しているんです。
ただでさえ疲れ切っているエンジニアにサマータイムを導入すると、本当に日本のIT業界は危険が危ないどころの騒ぎじゃないくらいやばいことになります。

なので政府のお偉いさんには、サマータイム導入がどれだけ馬鹿なことなのかということをご理解頂ければと思います。

ではでは~(・ω・)ノシ