エンジニア初心者としての業務経験。エンジニア初心者の私が現場で遭遇したトラブルについて

f:id:gonnabeagod:20191226000147p:plain

 

エンジニアとして一時期ソーシャルゲームアプリの運用に関わっていたことがあります。

当時、エンジニアとして仕事をしたことはなく基礎知識だけがある状態でのアサインでした。困惑しつつも「簡単簡単」という先輩エンジニアの言葉を真に受けて、一時だけエンジニアの仕事を手伝うことに。

 

確かにマニュアルはしっかりとしていて、難しい作業では無かったのですが……そのうち「あれ?これって素人の自分には無理なのでは?」というような場面に何度も出くわすことになります。

メンテナンス延長が発生する理由

ソーシャルゲームアプリで遊んだことがある人なら、皆さん知っているかと思いますが、そう言ったゲームアプリには定期的に(月に2、3回ほど)メンテナンスとして1~3時間ほどゲームをプレイできない時間が発生します。

 

その時間を使ってメンテナンス……たとえば、不要なデータを消去したり、新しいデータをアップロードしたりといった作業をしているわけですが、このメンテナンス、割と予定時間内に終わらないことが多いです。

 

SNSなどではメンテナンスが遅延すると運営に対して不満の声をあげている方は多くみかけます。中には運営宛てに「さっさと終わらせろ」とメールを送ってくるような方もいたりします。

 

確かにメンテナンス中にバグを見つけて、延長せざるを得なくなるというパターンもあるのですが、中にはプラットフォーム側に問題があってメンテナンスを開けられないといった事態もあるのです。

 

そのような場合、私たちエンジニアは何をするのか……その答えは「何も出来ない」に尽きます。

 

なにしろこちらで出来る作業はすべて終わっていて、後はプラットフォーム側にデータをアップしきるのを待っている、という状態だったりするのです。

その間私たちは、データの再確認をしながらただただ待っていることしか出来ません。

役職によっては「メンテナンス遅延のお詫び」をどうするか、考えている人もいますが……。

 

困ったときのマニュアルと応用

エンジニア初心者の私が、ある時一人でメンテナンス対応をすることになりました。

この時、ちょうどインフルエンザが流行っていて私以外の先輩エンジニアは休み。

普段なら難しい作業はそちらに任せていたのですが、その時ばかりは私がどうにかするしかない状態でした。

 

そんな時に限って、良くないことは起きるのです。

メンテナンス中に重大なバグが見つかり、メンテナンスを延長することになりました。私が担当して作成した部分ではなかったので、対処しろと言われても今一やり方が分かりません。

 

ですが、私がしなければならないのです。何しろそれがお仕事なので。

そういう時のために、その職場では作業の手順などを一から十までマニュアルとして残すようにしていました。たとえ誰かが休んでも、問題なくメンテナンスなどが行えるようにです。

 

現場によっては「作った人にしか直せないコード」というものもあるようなので、その点で言うとそこの職場はかなり親切と言えるでしょう。

 

マニュアルに従ってバグのあった箇所を修正していたのですが、一カ所だけマニュアルには載っていないバグを発見しました。そこを直すにはどうすればいいのか……経験と知識の少ない私には分かりません。

ですがその時、先輩エンジニアの「エンジニアはググり力」という言葉を思い出しました。

 

分からなければ、調べればいい。

そう思って、インターネットを使ってコードを検索。

あるエンジニアさんのブログで似たようなコードを見つけ、それをコピペさせてもらったところ、どうにかバグを直すことが出来たのです。

 

経験が少ないのなら経験を積めばいい

誰だって初めは初心者です。

そして、学校で学んだことや、教科書などを読んで得た知識が実際の現場で使えるかと言われると実のところ「微妙」なのです。

 

それなら、勉強した意味はなかったのか……というと、決してそんなことはありません。

基礎知識が無ければ、応用であったり簡略化であったりには対応しきれないかららです。

そのため、まずはしっかりと基礎知識を習得することが大事だと私は学びました。実際に現場に出て仕事をする中で自分の知識不足を痛いほど痛感したのです。

 

「学生のうちにもっと勉強したり、コードを書いておけばよかった」と後悔したことを覚えています。

ですが、後悔しただけでは何の意味もありません。

その日から一週間ほどかけて、私は教科書の内容を覚えなおしました。

 

そして、実際の作業をする中で先輩エンジニアに相談しながら新機能の作成を担当させてもらうことにしました。

 

それまではマニュアル通りに作業をしていれば、何となく仕事を進行することが出来ていましたが、新機能に関してはそうはいきません。

何もマニュアルが無い状態から、自分で考えて、検索して、相談して、といった思考錯誤の連続です。

本来であれば一ヵ月ほどで出来る予定だった新機能の作成に一月半かかってしまいましたが、あの時ほど「自分の力になった」と実感した瞬間はありませんでした。

 

エンジニアとしてのキャリア

そうして、一時の間だけでしたが私はエンジニアとして仕事をしていました。

本来の業務は別にあったので、新しいエンジニアが入って来た段階で私は元の業務に戻りました。

 

その時、もう少し続けてみては?と引き留められたのですが、私はそれを断りました。

およそ4カ月ほどエンジニアとして仕事をして見て「向いていない」と思ったのです。

けれど、エンジニアとして仕事をした経験はその後も役に立っています。

なにしろバグを見つけた時に「たぶんあそこを間違えているんだろうな」と、不具合箇所を指摘できるようになったのです。

 

これまでは「ここにバグがあります」としか報告できなかったので、大きな進歩です。

場合によっては、自分で修正することも出来るので作業時間を大幅に短縮することにも繋がりました。

 

知識と経験をつみ、仕事に活かす一番の方法は「現場に出て働いてみること」なのではないでしょうか?