
これは現実にある、とあるIT会社のシステムの話です。
その会社のシステムは、平成のガラケー時代に作られて、令和の今なお現役バリバリ使われているシステムです。
かつてはオンプレのハードウェアも伴うサーバー運用をしていたWebシステムですが、
時代の流れでAWSに移行されて、少しずつスペックをあげつつ運用をしているシステムです。
でも、このシステム本当に
クソなんです。
使っている人の作業工数を想定の数倍費やし、
管理をしているエンジニアの調査とされる時間を週に完時間も奪い去り、
大きな機能追加やリファクタリングなどがしずらい設計になっていて、
本当に扱いずらいシステムこの上ありません。
でも、この会社はこのシステムを使い続けなければいけません。
何故ならそのシステムをB2Cで公開して、今現在売り上げが立っているからです。
こういう会社は、今なおたくさん世の中に存在していて、こうしたシステムを使い続ける危険性に気がつけるのは、
システムを運用するエンジニアだけということもよくわかったので、
世の中に警鐘を鳴らすつもりで、非エンジニアの人にも危険性を理解してもらうために、ブログに書いておきたいと思います。
そのシステムは、PHP5.4で動いてる
オンプレからAWSに移行したタイミングでも、リファクタリングも行われず、
PHP5.4でずっと動かしているシステムで、もはやセキュリティとか脆弱性とかは二の次になっているんじゃないかと心配してしまうシステムです。
実際に以前にPHPを最新バージョンにしようとしたらしいのだが、複雑な計算式を利用している処理が混在していて、
その結果数値に誤差が発生するので、「PHPを最新版にアップデートできなかった」という話を前任者から聞いた事があります。
そうすると、今後ずっと、PHP5.4バージョンで運用し続けていかないといけないという事実を、恐怖に感じないのだろうか?
その会社の経営者は、もちろんITやプログラミングなどはまるで知らないIT素人。
この危険性を理解すれば、ある程度の投資をしてでも、システム改修をしなくてはいけないのだが、
説明しても、理解できないのが、IT弱者の世の常です。
幸い、自分はその会社の正社員でもなければ、業務を作業として請け負うSES的な担当だけしてあげているので、
成果物に対しての責任は法的には何にもありません。
今現在は、クライアントに対してできる限りのサポートをしてあげるミッションと自分に言い聞かせて、いろいろな説明やコンサルや提案をしていますが、
その会社に緊急事態が訪れた時に共倒れするのはカンベンですからね。
依存しまクリキントン
PHP5.4にこだわっているわけではなく、プログラムが改修しずらい設計になっているという事実を、
このシステムに携わったエンジニアはみんな理解していました。
この会社の1番の失敗は、過去に何回かリファクタリングするタイミングもあり、多くのエンジニアが素通りしてきたにも関わらず、
誰もリファクタリングを実行するに至っていなかったことです。
実は今回、リファクタリングじゃなくて、もっと良い設定で作り直してあげるプロジェクトを立ち上げたんですが、
実際のビジネス・ドメイン・アルゴリズムに関しては、リファクタリングをするしかなく、
その結果、PHP5.4をバージョンアップした時の計算誤差問題が深くついて回る事が判明して、かなり心が折れそうになっている現時点です。
PHPプログラムは、複数のファイルを行ったり来たりして、壮大なバケツリレーが行われている上、
コーディングルールが整っていない、何人もの人がそれぞれその時代に必要なものだけを書き足したり、独自で作り上げたコードという、ゴミの山状態で、本当に残念なシステムそのものなんですよ。
個人的にはclass継承は使わない主義でやっているんですが、どこで定義されたかわからない定数やら、ファイル名と紐づいていないクラス名、関数名など、
検索すると膨大につながっているファイルの山に、普通の人は諦める選択肢しかないでしょうね。
本当に、プログラミングって、生き物だな〜と改めて認識する事ができました。
でも、これって、末期癌になってしまった人生の末路のようなシステム・・・どうしたもんかな?
中身を知っている人が皆無のブラックボックス
さらに、この会社で1番の問題は、
システムを作った人が、会社内に誰1人残っておらず、全員退社してしまっているという事実です。
自分がその会社を手伝い始めてからも、主要エンジニアと言われているエンジニアが2人転職していき、その会社の別部署からの転属エンジニアがひとりいるだけの、非常に心細い人員構成になっています。
マジありえないですよね。
ホント、自分の会社だったら、気が気じゃない状態だと思うんですよ。
まったく、システムの運用ができない状態になっているこの実態を経営者はどう考えているんでしょう?
いつも話をすると、売り上げの話しかしない経営者連中(役員含め、経営層はIT無知状態でした)に、まともな話ができないうえ、提案をしても暖簾に腕押し。
このシステムブラックボックスって、一刻も早く解決しないと、とんでもないその後の技術負債としてのしかかってくるのにね〜。
あとがき
そうです、この会社の1番の問題は、人事問題でした。
エンジニアを採用してもどんどん辞めていくんですよ。
これまで2年ほどお手伝いしている期間の間に、駆け出しだけどエンジニアとしては優秀な人は何人もいたけど、
その会社のパワハラ体質に耐えかねて辞めていくのを見ていたら非常に心が痛かったんですよね。
自分は、その会社の役員と友達なので、パワハラをうけるワケではなかったのですが、
あまりにも仕事の振り方や経営体制が気に入らなかったら、やっぱり契約終了を告げることも否めません。
自分たちで採用した従業員を、「使える・使えない」の2軸でしか見る事ができない上、
使えないと判断したらすぐに入れ替えるというスタイル、これがいいという会社って少ないですよね。
使えないと判断した従業員は、教育するという思考にならないと、会社ってダメになっていく一方ですからね。
もしかしたら、この会社の経営者は軒並み社会人スキルが低すぎるのかもしれないな〜。と思った今回の気付きでした。
まあ、毎月エンジニア報酬を支払ってくれるから自分にとっては有用なクライアントなので、なんとか持ち直して、こちらもコンサル料金を値上げさせてもらおうと目論んでいる今日この頃でした。
0 件のコメント:
コメントを投稿