普段はフロントエンドエンジニアとしてJavaScript/TypeScript/Aangular/GraphQLを
メインに開発業務を行なっています。
いつも技術的なことを書いていますが、今回はちょっと話題を変えてエンジニアがメンタルを保つことってとても重要だよねという話をしたいと思います。
未経験の時はあまり実感ができませんでしたが、実務に入ってコードを書くようになってからメンタルを病んでしまってエンジニアを挫折する人がとても多いと感じます。実際に半年で社員が半分になっていたってこともザラにあります。
おそらく、エンジニアの辛いポイントは大体3つくらいに分類されるのではと思っています。
分からないことが分からない
特に未経験から入社した場合、入社したての頃は分からないことが本当に分からない状態が続くと思います。会議に参加しても、知らない単語が次々飛び交い、なんとか質問しても1割も理解できない...それが3ヶ月〜4ヶ月と続いていくと「自分には才能がないのではないか?」と無力感に囚われてしまうことも多々あるのではないかと思います。
また、現場にもよりますが、新人であってもある程度前提となるWebや業務の知識は知っていて当然という扱いを受けることがあります。質問しても「なぜ知らないのか?」と怒られ、それにより質問しにくくなり、今度は質問しないために自力で解決することが出来ず、怒られてしまうという負の連鎖に陥ってしまいます。
こういった場合の対処法としては、質問のパターンを決めておくと便利です。
下記Qiitaの記事に技術系の質問をする際のパターンランゲージというものがあります。(私も大変お世話になりました。)
○○を実行すると、○○というエラーになる問題で困っています。
原因または解決策をご存知の方はいらっしゃいませんか。
私の行った手順は以下です。
(1)
(2)
(3)
すると、以下のような結果になりました。
【表示されたものをコピー&ペーストする】
私は【予想結果】になると思いました。
なぜなら、【参考資料】には、
以下のように書かれているからです。
> 【適切な分量の引用】
> 【適切な分量の引用】
> 【適切な分量の引用】
原因を確かめるため、以下のようなテストを行ってみましたが、
問題の解決には至りませんでした。
(a) 入力を○○ではなく××にしてみた
→上記と同じ結果になった
(b) ソースプログラムの○○をやめて、××にした
→以下のようなコンパイルエラーになった
【エラーメッセージのコピー&ペースト】
なお、私の環境は以下の通りです。
【マシン, メモリ量, 関連周辺機器, OS, 利用ソフト, バージョンなどを箇条書きに】
検索エンジンで○○、××、△△を検索しましたが、
◎◎に関するページばかりで、解決に役立つ情報は見つかりませんでした。
このメーリングリストの過去ログも調べましたが、
○○に関する話題は見つかりませんでした。
ある程度質問を型に当てはめてしまい、エラーメッセージの詳細、これまで行なった手順、なぜその手順を行なったのかをまとめてメールもしくは口頭で報告して質問していきます。
こうすうることで自身の頭の整理にもつながりますし、質問される側も非常に分かりやすいと思います。また、質問文を整理しているうちに解決策が思い浮かび結果的に質問する必要が無くなったということも結構あります。
Brilliant Jerk
Briliant Jerk(ブリリアントジャーク)とは優秀だけど周りに悪影響を与える人物のことです。つまり技術的なスキルは非常に高いですが、人間性に問題があり、他人を見下したり攻撃的な言動を行い、マウンティングすることで周囲の人々を精神的に追い込んでしまうような人たちのことを指します。
人間は業務の辛さはなんとか耐えれますが、人間関係で息詰まった場合、耐えることは非常に難しいのではないかと思います。特にIT業界は技術力が全てものをいう世界であるため、「技術的なヒエラルキー」が形成されやすい環境ではあります。携わっているプロジェクトの貢献度が高かったり、技術的なスキルが非常に高い人物がBrilliant Jerkであった場合、彼らの態度が容認されることも決して珍しいことではないかもしれません。
このような人たちに遭遇した場合は、まずはPM、上司、チームリーダー等、役職が上の人に相談して、改善を要求するように働きかける必要があるかと思います。しっかりとした企業なら迅速に対応してくれるはずです。もし対応してくれそうになく、メンタル的に支障をきたす場合は出来るだけ接点を減らすように心掛けるか、メンタルを病む前にその職場を離れてしまうのが賢明かと思います。
納期プレッシャー
エンジニアの場合、常に納期を意識しなければならず、しかも仕事量と比較して納期がタイトであることもザラにあります。納期はエンジニアの都合とは関係なく決まっていくものですし、エンジニアとして仕事を続けていく以上はこの納期のプレッシャーと常に向き合っていく必要があります。
このプレッシャーに対しては、できる限り早くプロジェクトの全体像をつかみ、スケジュールを引いていく、作業工数を正確に見積もる能力をひたすら高めていくのと、スケジュールに対して遅れそうであれば、早めにプロジェクトリーダーに報告し、軌道修正していく必要があるのではないかと感じます。
またエラーで詰まったり、何かを調べる際は制限時間は設けておいた方が良いかと思います。自分で調べて理解できるならまだ良いですが、調べても分からず時間だけが過ぎていってしまうのは良くないかと思います。「大体30分程度調べても分からなければ質問しましょう」みたいなルールを設けて、行動していけば良いのではないかと思います。
ここまで色々と記載しましたが、どうしても上手くいかないことは沢山あります。そんな時、全部自分のせいだと思わず、休み休み続けていくことが重要かなっと思います。
今回はここまでとなります。