みなさん、こんにちは。
約1年半ぶりの投稿となってしまいました(笑)。
早速ですが、自分にとって「仕事」とはどんなものでしょうか?
・生活するために必要なもの?
・趣味の延長線上のもの?
・地位、権威のためのもの?
・コミュニティを広げるためのもの?
・考えたこともない?
「仕事」って一体どんなものなのでしょうか?
正直に言えば、いろんな人にどういう志や目標や考えを持って今の仕事に取り組んでいるのかを単純な興味で聞いてみたいところですが、中々それは難しそうなのでここでは自分の話をしてみようかと思います。
さて、今回は「働きすぎた1ヶ月半」についてです。
テーマはネガティブ寄りですが、色々自分でも気づけた部分があって面白いなと思ったので記事にしてみることにしました。
業務内容と現状について

現在の職業は「システムエンジニア」で、さまざまな現場でシステム開発に関わる業務を行っています。
中でもSESと呼ばれる業界なので、過去の参画プロジェクトで言うと、
・銀行系
・ZOZOやQ10などのECサイトのバックエンド開発
・楽天Payや楽天キャッシュなどのバックエンド開発
・ソフトバンクの社内システム開発
など、さまざまな場所で仕事しています。
こんな経験も・・・

思い出に残っているのはなんと言っても楽天の現場でした。
入社して1年で開発もままならないスキル状況にも関わらず、別会社のメンバーをまとめる開発リーダーでアサインされてしまったからです。
しかも自社のメンバーがいないだけでなく、50代のベテランエンジニア・30代の中堅エンジニア、20代の駆け出しエンジニア3人を束ねて「開発やってね」と言われた時の脳内は地獄絵図でした。
さらに、開発に必要なインフラ側はインドチームが担当しているので、時差も異なるし全部英語でのやり取りだし、PHPフレームワークのsymphonyのバージョンアップに伴う改修の説明は3時間半英語で説明される始末(なんもわからん(笑))。
自社の人間もいないのでそんな環境で詳しいことを聞ける人もおらず、しかもフルリモートなので、フルストレス環境でのほぼ孤独状態ながら1年半も孤軍奮闘してリリース経験できたのは大きな成長となりました。
現在はというと・・・

エンジニアに必要な能力はどちらかというと、「圧倒的な技術力」よりも「知らないことを0からでも調べてなんとかする能力」と「コミュ力」です。
今回フォーカスするのは「知らないことを0からでも調べてなんとかする能力」の方です。
話は少しそれましたが、今の現場ではSIer独自の開発ツールを利用して開発しなければならないという面倒臭さがあり、しかもナレッジは皆無。
調べても出てこない独自ツールを利用した開発と、扱ったことのない言語やフレームワークでの開発と、終わることのない要件定義が開発チームを圧迫している状況での業務となります。
基本的にはシステム開発は「アジャイル型」と「ウォーターフォール型」があり、アジャイル型は仕様変更を適宜組み込みながら開発を行う変化に強い開発スタイルで、ウォーターフォール型は、要件定義から設計・実装・テストまでを順序通りに滝のように直線的に進める開発手法です。
大規模な開発になるほど「ウォーターフォール型」になり、今回の開発手法も「ウォーターフォール型」と言われていた、、、はずだったのですが。。
本来、どのような作りでどのようなシステムにするのかを決める最も上流工程部分の要件定義は去年の10月に終わる予定でしたが、今はもう年が変わり8月。
そう、、まだ続いているのです。。。
要件定義が終わらないと設計も始められず、設計ができないと開発ができません。できても仕様変更によって手戻りが発生します。地獄です。
リリースは来年の8月で、数百社と連携したり他システムとの同時リリースとなるため、1日も決められたリリース日を遅らせることができません。
俗に業界で言う「炎上」の1歩手前の状態ですね。
ウォーターフォール型の良いところは、しっかりとした設計、開発、テストを行うことでバグが少なく安定して大きなシステムリリースができることが売りですが、その良いところがなくなった状態でほぼアジャイル型で開発を行っているので、実にヤバい状況です。
何億円も何年もかけて開発を行うものをこのような環境で進めるのは本来危険なのですが、、リーダー層は炎上することも予測して今のうちからもしもの場合のための、予防線を張り巡らせている始末。
例えば、言った言わない問題とならないようにしっかりとログや全ての会話を録画してまとめたり、システム開発側から出せる課題は全て抽出して頭出ししておくなどなど。。。
まぁ自分はPMではないのでそんなことは気にしないで良いですが、サブリーダーという立場上自社のメンバーを守りつつリーダーを支える立ち回りは必要です。
そんなこんなで、要件定義をしながら設計をしながら開発を行っているカオスな状況で開発を行っているというわけです。
引くほど働いてた

今の作業はWBS上でも開発の真っ只中でゴリゴリとプログラムを書きまくっている状況です。
全てではないですが、1日のスケジュールにするとざっくりとこんな感じでした。
<平日>13〜15時間

<土日>8〜12時間

異常すぎる熱量・・・

会社から言われて仕方なく早退や有給をとってましたが、普通に働き続けてました。といっても、会社の勤怠には入れられないので、100時間くらいは無給で残業してました(笑)。
普通に考えたら、会社からもリーダーからも休めと言われてるのに、無給で仕事し続けるやつなんか役員か起業したての人しかいないとは思いますが、、、
こんな状況でも楽しくて苦しくて仕方ないと感じる自分も少し異常だなとは思うのですが、一度熱中すると止められなくなる熱量を仕事に活かせてるのはまさに天職だからといえるでしょう。
今思い返せば、今の会社に入って1ヶ月目の研修期間で、自分の無力さと技術の乏しさに悔しくてたまらなくて、水曜日から土曜日の昼まで不眠不休でプログラムを勉強してたのを思い出しました(普通に考えたら頭おかしい…)。
人はアドレナリンが出過ぎてある程度の限界を超えると、眠気もなくなり、食欲も失せることがわかりました。
ほぼ4日間飲み物以外口にしてなくて、土曜日の昼に新宿西口のサンマルクでチョコクロワッサンの匂いを嗅いで初めて気絶するほどお腹が痛くなったのを覚えています(笑)。
本当に狂ったようにPCに張り付いてましたが、あの時と似たような感覚です。
ご飯を食べる時もシャワーを浴びる時も「どんなふうに実装するか」「どんなプログラムを組むか」を四六時中頭をよぎり、ついにはベッドに入っても考え続けるようになりました。
思いの外PCから離れた時に思いつくこともよくあるので、そういう時は寝れたもんじゃないですよね(笑)
とにかく試してみたい、これでどう動作するのか確認したいが頭を駆け巡って興奮状態になるので1日くらい寝ずに作業し続けることもザラにありました。
こんな状態ですから頭は元気でも体はあまりにも不健康状態です。
特に土曜日はバタンキューで、起きたら18時なんてこともありましたね。
これまでの自分ではあり得なくらい寝てしまったり、もちろん首・肩・腰も痛いし、そもそも浅い睡眠が続いているし、頭がぼーっとしたりなどなど。。
あからさまな体の不調は出まくっていましたが、それよりも強いアドレナリンが体を動かしていたのだと思います。
週1で出勤はあるのですがその時に言われました。
「〇〇さん、さすがに2時まで働くのは辞めてくださいね笑」
普通にTeamsのステータス表示でバレてました…
なぜそこまで働いちゃうのか?

なんと言っても好奇心がすべての原動力でしょうね〜
もっと細かくいうと、好奇心と勉強意欲とちょっとした完璧主義でしょう。
自分が人よりも異なる部分はこの「好奇心」だと思っていて、興味ないものには一切興味は持たないですが、少しでも気になったらなんでもやってみたくなります。
その分流行り廃りも多いですが、経験値は多いはずです。
自分ルール

ちなみに自分ルールとして、「100万円以内ならやってみる」で行動しています。
基準としては、「なくなっても大きな支障がなく、なんと言っても大抵の経験が得られる額」だからです(適当)。
とはいえ、好奇心が強いだけでは仕事はやっていけません。
「好きなことで生きていく」の裏側には誰しも努力が不可欠です。
YouTube動画を編集したことある人はわかると思いますが、10分動画を作るには10〜20時間は普通にかかります。
一番面倒臭いのがテロップで、他にもカット、素材探し、BGM、効果音、エフェクト、トランジション、音量調整…
やったからこそわかる陰の努力みたいなのがわかります。
好奇心を持ってたくさんのことに挑戦する
→その難しさや苦しさがわかる
→それを仕事にしている人をリスペクトする
→自分も頑張る
こうやって自然と自分を鼓舞するようになるわけです。
なんの仕事にしても、「楽しさ」や「やりがい」があるからもっと上達しようとやる気・意欲が湧くわけですが、この勉強意欲も結構な原動力になっています。
問題を切り分けて考える力

今の業務だと扱ったことのないプログラミング言語を使って開発をしなければならないので、営業マンが明日からインドネシア語で営業してきてと言われるようなものです。
最初にも述べましたが、システムエンジニアに必要な能力は「知らないことを0からでも調べてなんとかする能力」であって、できないからやらないは単なる言い訳です。
そういう時に何をするのかというと、「問題の切り分け」です。
最低限何ができれば目的が達成できるのか、何が必要なのかを明確に切り分けていく作業を必ず行います。
インドネシア語で営業しろと言われても、売る商材・決まり文句・価格など、ある程度は決まったものを売るだけなので、売るための手法はどの国でも同じです。
切り分けができていないと、インドネシア語で営業するためにまずはインドネシア語を習得してからにしようとする人が多いですが、今回の話で言えばこれはトンチンカンな話ですよね。
最終的にその営業マンは商品を売ることが達成条件なので、必要な情報と付随する補足情報は準備しておく必要がありますが。
今回厄介なのは言葉の壁ですが、ビジネス用語の中でもフレーズはある程度決まっているはずで、レストランでもあいさつや注文、支払いに関するフレーズを5,6個覚えればどの国でもご飯を食べることができます。
難しい情報はメールや文書で文字にしておけば良いことですしね。
もうここまで来れば何ができれば営業ができるかははっきりしましたよね?
コミュニケーションを取るための最低限のフレーズを十数個覚えるだけです。それ以外は翻訳アプリでもなんでも活用しまくったら良いだけの話です。
インドネシア語を習得しないとモノが売れないと思っていた大きな話から、問題を切り分けることで最低限フレーズを覚えれば良いという課題にまで縮小できました。
これをシステムに置き換えると、「OSI参照モデル」の7階層定義がありますが、バグが出た場合はどの層で問題が起きているかを切り分けて、誰にどのような確認をすべきかや誰がどこを修正すべきかを特定していく必要があります。
ちょっと前に起きた銀行系のシステム障害なんかは、数十年も前に構築された古い言語を利用したシステムで、そもそも当時開発に携わった人がいない現在のメンバーで障害対応にあたる必要があったでしょう。
エンジニア視点で見ると、システム障害でネットで騒がれている間は結構気が気でないのは実際あります。
現場はとんでもない状況だろうなと想像できてしまうからですね笑
自走と現在位置の把握

とにかく、初めての作業でも「今の作業に必要なものは何か」「そのうち自分に足りないものは何か」を抽出して、あとは気合いで作業ができるように学ぶしかありません。
誰かが教えてくれないとわからないという姿勢の人や自分から学ぶ姿勢がない人は、まずエンジニアには向いていないですし、同じチームにいても結構迷惑で厄介な存在だったりもします。
良くも悪くもこういう業界では、この人はいくらの価値があるのかという視点で常に見られるので、この程度の作業だから◯円、これができるから◯円という能力に応じた評価が自分の価値と給料に直結していきます。
一般的には単価「50万円〜150万円/月」がほとんどのエンジニアのレンジ帯だと思いますが、平均所得が高めな業界なのでちらほらと最低限の仕事だけするみたいな人もみますね(笑)
そういう人は必然と仕事が振られなくなったり空気になっていくのを何度かみたことはあります。。
とにかく勉強しないと今の業務が仕事にならないという状況のため、やるべきというよりやらざるを得ないの方が正しいのかもしれないです。
業務後や土日は自分だけの勉強の時間に当てられますし、土日にある程度理解が進められれば月曜からすぐに仕事に反映できます。
余談ですが、自分は2ヶ月くらい一歩も家から出ずに仕事したとしてもしんどくはないので、なんかいつのまにかストレス耐性がSSSクラスになってたかもしれないです。
ちょっとした完璧主義

そして最後に「ちょっとした完璧主義」も原動力になっていると思います。
人から見られるものに対してどれだけこだわるかは個人差ありますが、今後数年、数十年いろんな人や技術者に自分のプログラムを見られると考えると、雑なものは納品できません。
専門的な話をすると、
・SpringMVCモデルに則ったコーディング
・DRY原則(同じコードやロジックを繰り返さない)
・カプセル化、抽象化
・保守性、拡張性、再利用性
・推奨されている本来のオブジェクト指向の原則に従う
など、技術に長けた人が見れば自分のコードなんてのは稚拙なものでしかないと思います。
それでも、今やれるだけのことを調べて修正して改善していくのが自分のためにもなるので、「ちょっとした完璧主義」も大切な要素となっている気がします。
ですが、一歩間違うとうつ病にもなりやすい仕事の代名詞でもありますから、休みたい時はこれでもかと休むのも大切です。
幸い、忙しくない時は昼から出勤したり、早退したり、面倒くさくなったらチャット1本で当日休むこともできるのもまた自由度が高くて自分に合っているのが助かりますね。
結局この1ヶ月半はどうだったのか?

結論、良かったと思います。
いずれ学ばないといけないことを、このタイミングで一気にストレスをかけて学べたので結果的には良かったです。
もちろん、その間は常に調べて常に勉強して常に考えて、しかも残業分は無給でほとんど遊ばずにとなるので1年中は無理ですが、次のステップへ進むための糧になったので自分を褒めてあげるとします。
とはいえ、自分以外の人にはおすすめはしないので働きすぎないようにしてくださいね笑
あくまで、趣味の一つとしてできるくらいじゃないと絶対に病むので笑
では、また