ITエンジニアの仕事の勘所について⑧

現代では常識では無い世界像 全工程共通

エンジニアなら誰でも悩む、トラブル対応について。

みなさまどうも。「あったらいいね!」シリーズでブログを書き続けている加賀美(カガミ)です。
あ、久しぶりの投稿となりますね(;^_^A

今回はエンジニアの仕事の勘所シリーズ第八弾として、ソフトウェアトラブルについてのお話をしたいと思います。

そして相変わらず自分の経験からの推測となりますので、その点はご容赦お願い致します。
それではみなさま、つたない文章ですがお付き合いのほど、よろしくお願い申し上げますm(_ _)m

様々なトラブル対応をしてきた中での結論。『常識を基に解く』

さてさっそく結論なのですが、カガミがこれまで経験した数々の『ソフトウェアのトラブル』は、そのほとんどが『常識的な推論で推し進めればいずれは解決できる』といったものばかりでございました。

けどこれだと話が抽象的過ぎますので💧
具体的な事例をいくつかご紹介いたします。

事例その①:デバッグ中に設定したブレークポイントで止まらない💧

すでにTwitterでツィート済みの話ですが、
とある開発の際に、エラーが出たのでサーバサイドにブレークポイントを設定してデバッグしたところ、ブレークポイントで止まってくれず素通りしてしまうという事象が発生しました💧

IDEを再起動したり、なんどかデバッグ実行のし直しをしていたのですが、
原因はなんと画面側がSubmitボタンで指定していたサーバサイドへのURLの間違いでした
(;´Д`)

つまり、存在しないURLへ飛ぼうとしてたのでエラーが発生していたのでした。。。Orz

ここでも、エラーコードの内容や、IDEのブレークポイントで止まらず素通りする、
といった内容から、

「常識的に考えると、そもそもサーバサイドに届いていない」

と気づける人はすぐ気づくことができると思います。。。あっしには無理でしたけど(;´Д`)

事例その②:マクロが入った勤務表で、計算ボタンを押下しても加算されない💧

これはまだツィート済みでない『ちょいハマった』事例となります💧

とある現場で、マクロ入りの勤務表があったのですが、いつもと同じつもりで退勤時間を入力。
その後、『実働時間計算』のボタンを押下したのですが、エラーも無いのに合計時間が加算されず💧

こんな現象はググってもなかなか似たような事例が見当たらず困惑しました(;´Д`)

ここでの原因はなんと退勤時刻を入れた後Excelをまだ『更新』していなかったこと。

「F9(更新)」または「Ctrl + s(保存)」をすることですぐに解決しました💧💧

ここでも、

「エラーが無いならプログラム側の問題ではない。処理対象となるデータの問題だ」

と、常識的に推論すれば、
「データの値は正しい。であれば、状態が、普段と違っている」
とすぐに気づけたかもしれません。。。

事例その③:JavaでNull値をStringに入れようとして「NullPointerException」(;´Д`)

これはつい先日ツィート済みですね(;^_^A

とある数値型のDB項目について、「Null判定」のチェック処理を実装したとき、
Null値はint型などであると例外になってしまうので、レコードの値をJava側でStringに
変換したところ、「NullPointerException」(;´Д`)

恥ずかしながらググってもなかなかドンピシャが見つからず、
1時間半くらいドハマリしてたのですが、
Javaが吐き出すエラー内容から、

「こりゃ[hoge.toString]の[toStringメソッド]が問題なんじゃないか?」

と「常識的に考えて」そう推論し、結果はドンピシャ。

「NullPointerException△toString」

でググってついに自己解決しました💧💧💧

ここでようやく、カガミの今回のブログへと繋がるわけなんですよね。。。
まぁ、この事例でもそこまでに至る過程が「常識的でない推論」の連続だったんですけど
(;´Д`)

『ソフトウェアトラブル』は、いつかは自己解決できなければならない

はい。以上、カガミの恥辱と汚泥にまみれたトラブル対応のご報告でした(;´Д`)

いくらなんでも解決するまでに時間かかり過ぎだろ。。。Orz

と、それはさておき💧
上の事例、確かにどれひとつとっても解決するまでと~っても時間がかかりました💧

けれど、いずれも「誰にも頼らず、自己解決できた」事例でございます💧💧💧

なにが言いたいのかといいますと、
もしエンジニアとしてずっとやってきたいと思うのであれば、
いずれはソフトウェアのトラブルが発生したときに
「自己解決」できるようにならなければならないと
思うのであります。

その場合、エンジニアになりたての頃とは異なり、やはりエラーメッセージを丁寧に読み込む必要がございます。大抵のことはエラーメッセージのとおりに起きているからです。

そして、事例②のように、エラーメッセージすら出ない場合もございます。
プログラム的には何も例外が起きていないからです。

事例①ですと、クライアントのWebブラウザにはエラーが出ているのですが、
デバッグは素通りです。

こういったググってもなかなか見つからないような事象の場合、
身近に頼れる人がいなければ自己解決しなければなりません。

そして、そういった場合に思い起こしてほしいのが、
今回のブログの主題である『常識を基に解く』となります。

私なぞはすぐに
「OSが不安定なんだ」とか、
「IDEの再起動でなんとかなるだろう」
などとつい考えがちですが。。。

ですが、少なくとも私自身の経験では、
ソフトウェアのトラブルは、解決してみると

「な~んだ、そんなことが原因だったのか💧」

といったケースがほとんでございました。。。。

つまり、
『常識的な推論で推し進めればいずれは解決できる』
ものばかりなんですよね。。。

結びに

今回のカガミのブログ記事、いかがでしたでしょうか?
ちょっと良く聞く話しでつまらなかったでしょうか。

ですが、ソフトウェアのトラブルは、誰にも頼らず自己解決できるようになると、本当の意味でエンジニアとしての自身の自信につながります✨

あ、これ別にダジャレのつもりではないっス(;´Д`)

そしてカガミ自身は、ついこないだまでソフトウェアのトラブルが起こるとすぐ人に頼ることしきりでした。。。Orz

次回は、『白い鴉(カラス)はありうると思う』をテーマに投稿をする予定です。

それでは、今回は以上となります。
最後までお読み戴きありがとうございました✨













私たちみんなに、今日も良いことありますように✨✨✨


タイトルとURLをコピーしました