システム開発の仕事で「ついていけない」と感じた時の解決策
「同期や後輩はどんどん難しいことできるようになってて焦る…」
「自分はこの仕事向いてないのかなぁ、なんとかならないかなぁ…」
システム開発って難しいですよね?
どうしても思った通りに動かなくて、原因が分からない、ずーっと調べてても分からず、先輩に相談したら、「ナニナニが原因じゃない?」って即答されてその通りだったなんてこともよくあります。
そんな時、
「自分は先輩に比べてなんて劣っているんだろう?自分はこの仕事向いてないのかなぁ」
なんて思ってしまいがちです。
ですが、別にこの先輩が特別優れてるわけでも、あなたにエンジニアの適性がないわけでもないんです。
たぶんこの記事を読み終えた後には、「なぁんだ、それなら、やってけるや!」と思ってもらえるはずです!
そんなわけで今回はシステム開発の仕事に「ついていけない」と感じた時の解決策を紹介します。
他人に相談すると問題が解決するホントの理由
冒頭で紹介した何時間も悩んでいたプログラムのバグを先輩に相談したら即答で正解を当てられたケースですが、これなんなのかというと、
先輩が特別優れているのではなく、
「違う視点でプログラムを見たから気づいただけ」
なんです。
自分が担当している仕事には、先入観や思い込みによる勘違いをしてしまいやすいんです。
例えば、自分が書いたプログラムは、自分が一番良く知ってますよね?なんせ自分で書いたのですから、コードを見なくたって、「こうこうこういう風に書いた」ってわかっています。
しかし、実際は「こうこうこういう風に書いたつもり」なだけだったりします。
実際改めてまっさらな気持ちでコードを読めば、「あぁ、こう書いたつもりだったけど、そうなってなかったや」と分かるのですが、先入観や思い込みがあるのでまっさらな気持ちで読めないんです。
それを第三者である先輩に相談したら、先輩はそういった先入観なしにコードを読んだので、バグの原因を見つけることができたというわけです。
ですから、煮詰まった時には他者の視点が必要なんです。
優秀な先輩だって自分の担当プログラムのバグはなかなか分からなくて、他の人に相談したら、解決できたなんてことがあるはずです。
私自身10数年エンジニアをやっていて、仕事には自信を持っていますが、何時間もデバッグして原因を調べて分からなかったことが隣の人に相談したら一瞬で答えが見つかったなんてことがよくあります。
これは能力の問題ではなく、視点の問題なんです。ですから、自分を卑下する必要はありません。
加えて、この話からは一つ教訓が得られます。
煮詰まったら、
- 自分は今、何か先入観や思い込みがあって勘違いしてることがあるんじゃないか?
- 分かってると思ってるコードももう一度まっさらな気持ちで読み直してみよう!
という意識すれば視点が変わり、自分で解決できる可能性が増すということです。
特別な才能がなくても、仕事はできる!
読者の方から「私はプログラマーに向いていないのでしょうか?」という相談をよく受けます。
実際プログラマーの適性(向いてるか、向いてないか)というものはあります。
高度な数学を駆使したアルゴリズムを必要とするシステムを開発するのは、そのような適性を持った人にしかできません。
しかし、私達、一般的なIT企業で開発しているシステムのほとんどは、業務の一部をIT化するものだったり、情報を閲覧するWebサービスやスマホアプリです。
そのような仕事に特別な適性、才能なんて必要ありません。
ですから、「私にはプログラマーの適正がないんじゃないか?」と考えるのはやめましょう。
面白い、かっこいいと感じたら勝ち
以前、社内で「つかえないやつ」という低い評価をされてる後輩が私のチームに追加要員として入ってきたことがありました。
話してみると、頭も良さそうだし、なんで評価が低いのかなぁと不思議に思っていました。
よくよく聞いてみると「私は○○先輩にあこがれていて、あの人みたくプロジェクトマネージメントができるようになりたいんです」と言いました。
ですが、この後輩はまだ入社2年目でマネージメント職ではなくエンジニア職でした。マネージメントを将来やるにしてもエンジニアとして実績を上げる必要があります。
しかし、あまりにマネージャーにあこがれてしまって、エンジニアのスキルを上げようしていませんでした。
そこで、私は、プログラミングのおもしろさを彼に教えました。「デザインパターンっていうのがあって、これは先人たちの知恵が凝縮されていて、例えば、テンプレートメソッドパターンを使うと、こうこうこうで…」って得意げに解説したのです。
すると、彼は次の日、デザインパターンの本を買ってきました。「なんだぁ、その本、貸してあげるって言ったのに、お金がもったいないじゃん?」と私が言うと「いやぁ、手元に置いて何度も読みたいので!」と彼は言いました。
「マネージャーってかっこいい!」と憧れていた彼が「プログラマーってかっこいい!」と思った瞬間、学ぶ気持ちが湧いてきたということです。
なので、プログラミングの面白さ、かっこよさを感じられたら勝ちだと思います。
私の場合、単にテンプレートメソッドパターンとかアブストラクトファクトリーとか、必殺技っぽくてかっこいいなと思うのですが、あなたはどう思いますか?
「この技術って必殺技っぽくてかっこいい名前だからどういう技術なのか知りたい!」みたいなモチベーションで勉強しても良いと思います!
周りに良い先輩がいない場合は
手前味噌ですが、あなたの周りに私のような先輩がいれば、プログラミングの面白さやかっこよさを教えてもらえますが(って自画自賛が過ぎますが笑)、そうではなく、全然エンジニアがかっこよく見えないという方は転職してみるのも良いと思います。
いろんな会社で仕事してきて分かったんですが、会社によって、そこにいる社員の性質ってまったく違うんです。
ソフトウェア技術にまったく関心がなくて、嫌々仕事している人ばかりの会社もあれば、技術大好きで、休憩中の雑談でも技術の話で盛り上がる会社もありました。
ですから、会社ってホントいろいろなんです。転職活動して、いろいろな会社の面接を受けてみると、自分に合った会社ってこういう会社かなというのが見えてくると思います!