【プログラマーはきつい?壮絶すぎる現場あるある5選を紹介!】


今回の出演者

金融系ITエンジニア

ITエンジニア採用担当

ベテランプログラマー
ITサプリについて
この記事は動画『ITサプリ』で配信している内容をもとにテキスト配信しています。ITサプリは未経験からIT業界へ転職したい方に向けて情報配信をしているYouTubeチャンネルです。IT業界で働く上で役立つ知識を発信していますので動画でもお楽しみください。

けい
今回は現役プログラマーしゅんさんをゲストにお迎えして「プログラマーあるある」についてお聞きしていきます。
1、無くなる前提のお試し実装

けい
無くなる前提ですか?

しゅん
「最終的には削るかもしれないけど、作業はしてね」ということです。よくある例ですと、お客様が最初に「これだけやりたい」と言われて、予算や大人の事情があってなかなか決まらず「とりあえず全部お試し実装してやってみようか」というパターンですね。PM(プロジェクトマネージャー)の方も「やり直し前提でお願いします」って言ってきたので、そこで正直「ふざけんなよ」って思いました(笑)

けい
試してみてその結果、上の人が「やっぱりダメだね」と判断したら、その部分が丸々無かったことになるワケですね?

しゅん
部分的な改修ならまだ良いですけど、コア部分を触ると本当にやり直しになります。「今までの努力は何だったの?」と思う事も何度かありました。

けい
今までで最大、何カ月分の努力がゼロになりましたか?

しゅん
3ヵ月ですね。最後の最後に「すみません、これ要らないです」と言われまして。結構ショック受けましたね……

けい
それはショックですね……もう一回(3ヵ月)頑張るのはきびしい。

しゅん
「お金をもらえればそれでいいや」と思う人もいるかもしれませんが、私としては「ふざけんなよ」と思ってしまいました(笑)

みい
そういったことは割と起こるのでしょうか?

しゅん
全部カットされるのはレアケースで【仕様変更→大量の改修発生】というのが一般的だと思います。

みい
そういった時は、その分納期が伸びたりとか、予算が変更になったりとかはあるのでしょうか?

しゅん
納期を伸ばさないと現実的に難しくはなるので、あとはPMの方の努力次第ですね。恐らくお客様もそれを承知した上の発言なので、ある程度は了承しているかと思います。
2、もっとも覚えるべき言語は英語

しゅん
プログラミングをやっていると、変数名とか関数名はどうしても英語で書く必要があります。言語の仕様も英語ですし、翻訳されたバージョンもありますけど、いざトラブルになったら翻訳されていないデータを見なければならない事もあります。そういった場合に英語が分からないと何もできないです。

けい
エラーは大体、英語で文章出てきますよね。

みい
「エラーの内容を読み取るにはまず英語ができないと苦戦する」ということですね。改めて英語を勉強するのと、プログラミングを学びながら英語に慣れていくのでは、どちらが良いのでしょうか?

しゅん
両方とも有りですね。私の場合はまともに勉強していないです。長年やっているのである程度は読めるようになりましたが、正直に言えば勉強した方が良いと思います。

みい
やはり、最初から英語が分かる方がスムーズですか?

しゅん
そうですね。

けい
同じ職場に帰国子女や留学していた子がいますけど、出てくる英語に専門用語が多くて、分かるか聞いたら「この単語全然分からない」って言われました。

しゅん
専門用語に関しては、どこの国もそうだと思います。
3、テストをやって記録を取り忘れて一からやり直し

しゅん
テストとは、作ったプログラムが正しく動くかどうか試すための最後の工程です。正しく動いたかどうかの記録を残さないといけないのに、それを取り忘れたことがありまして。「正しく動いたかどうか、それ誰が保証するの?」という話になって、結局一から取り直したことがありました(泣)場合によっては、1つのケースをテストするのに1時間~2時間、もしくは半日掛かる時もありますね。それを一からやり直すのは、正直地獄です。

けい
テストって、どういったやり方がありますか?

しゅん
例えばツールを使用するとワンタッチで処理が自動的に行われる、というやり方があります。他にも、実際に人が画面を操作しながら処理を進める、というやり方もありますね。100個以上の画面がある場合ですと、それを1つずつ操作してテストする必要があるので、下手すれば1日以上掛かります。その途中でもし1つでも記録を取り忘れたら全部やり直しになってしまう事になります。

けい
頭から全部やり直しですか?

しゅん
途中で処理を引き継がない部分であれば、途中からやり直すことができる場合もあります。ですが、全体に繋がるようなテストケースの場合は無理なので、もう一度最初からやり直すしかないですね。

けい
記録は、具体的にどういった感じで取りますか?

しゅん
『どんな操作をしたのか』を操作前と操作後の変化で比較するために、2つのデータ記録を取る必要があります。画面操作のテストを例に説明しますね。操作によって変化があった場合、当然データベースのデータも変わります。その時は操作前と操作後、両方のデータを取らないといけません。

けい
プリントスクリーンで撮ったりとか、データベースのデータをそのまま持ってきたりとか、そういった感じで記録を取るということですか?

しゅん
そうですね。
4、帰ろうとするとトラブルが発生

しゅん
これもよくある話で「今日こそ早く帰ろう」と思っていたのに、帰宅準備をしていたらリーダーの方が来て「トラブルが発生しました」みたいな。

みい
具体的にどういったトラブルが起こりますか?

しゅん
プログラムを作った人がいれば、作ったプログラムに対してテストを行う人もいます。作った人が帰ろうとした時に、テストを行う人から「こういう操作をしたら、こんなエラーが出ました。解析お願いできますか?」と言われるパターンが非常によくあります。

みい
そこで「いや、帰ります」とは、なかなか言いづらいですよね(笑)

しゅん
自分が作ったものなので、トラブルが起きたら自分で解決するしかないですね。今日はもう諦めるしかない、みたいな。
5、全角に悩まされる

しゅん
わかる人はわかると思います。プログラムは基本的に半角英数で作られていますが、日本では半角以外にも全角という入力の仕方がありまして。システムの側では全角を認識しないことがほとんどですので、プログラミング中の操作ミスで全角入力してしまうとシステム全体が動かなくなってしまいます。
全角なのか半角なのかは、パッと見ただけでは分からない時があるので「どうしてシステムが動かないのかな?」とずっと悩んで、最後の最後に「この部分が全角だったのか!」ということは結構あります。

けい
僕もスペースを全角で入れたせいで、1時間何もできなかったことがあります(泣)

みい
「ここが全角だよ」と分かりやすくしてくれるツールはありますか?

しゅん
ツール自体はあります。ただ、そういったツールの用意が無ければ目視で確認するしかないです。単位として1個のクラスというものがあるのですが、そのクラスの中には1,000を超える処理が存在します。どこでトラブルが発生したのかを確認するために1行ずつ実行させて確認する時もありますので、そうなると丸1日潰されたりしますね。

みい
それは確かに時間が掛かりますし、大変ですよね……

しゅん
今の開発ツールは大体チェックを自動的にやってくれると思いますけど、昔はそういった機能がついていないものも結構あったので、昔の人ならよく分かる話だと思いますよ。

みい
それこそ「あるある」って感じですね。
まとめ
今回は、現役プログラマーの方に「現場あるある」をお話しいただきました。
言語の仕様を確認したり、エラーの内容を読み取ったり、変数名や関数名を書くといった工程で、英語が必要となる場面が多いようです。また、テスト記録を手動で取り直す工程は「地獄」と評され、半角のところを全角で打ち込んでしまい「システムが動かない!」といったトラブルも多いそうです。
プログラマーは、英語力と集中力、忍耐力が求められる職業といえるかもしれません。
未経験からでもITエンジニアになることは可能です。セラクでは未経験からでも約1.5か月の研修を通じて活躍しているエンジニアが多数在籍します。
少しでもご興味を持っていただけたら、ぜひ、セラクにご応募ください。まずは面談でのお話をすることも可能です。お気軽にご相談ください。