はじめに
現在、受託開発会社にてWebエンジニアをしております、しゅとーと申します。
2023年4月に事務職未経験からエンジニアとなり、まもなく一年になります。
コードに書いてあることがなんなく理解できるようになったり、依頼内容と仕様を検討してお客様へ提案できるようになったり、と少しずつできることも増え、ようやく「30代『元』事務職未経験」と言ってもいいかなと思えるくらいにはなってきました。
しかしその一方で、自分やチーム、会社の課題が見えるようになり、今後のキャリアについて、いろいろ考えることが増えてきました。
とてつもないスピードで変化する技術、躍進を遂げるAI、迫りくる年齢の壁、そして後方から押し寄せるであろう若手つよつよエンジニア勢――この荒波を乗り越え、エンジニアとして生涯現役でやっていくためにはどうすればいいのか。
この1年という節目の年に、目指すべきエンジニア像を考えつつ、知識も経験も浅いペーペーの時代からエンジニアとして生き残っていくためにできることを探っていきたいと思います。
経歴
- 前職はおもに事務職として勤務(正社員から派遣まで5、6社ほど経験)
- プログラミングスクールRUNTEQで、Ruby on Railsを中心にプログラミングの基礎を学ぶ
- 受託開発会社に就職、CakePHPを中心に保守・運用を行う
- 次案件獲得のため、React・TypeScriptを勉強中 ← いまココ
実際にエンジニアになって感じた、エンジニアの苦手分野
生き残っていくためには、相手と自分を比べ、より優位に立てそうなところで戦うのが一番。
ということで、ここではあえてつよつよエンジニアの先輩方が苦手としていること(もしくは、苦手としていそうなこと)を探りつつ、自分が戦えそうな分野について考えていきたいと思います。
実際にエンジニアとして働いてみて感じた、先輩エンジニアたちが苦手と思っていて、かつ、わたし自身の強み・経験が活かせそうなのは、以下の三つの分野です。
1. コミュニケーションは、人によって得意・不得意の振り幅が大きい
「人と接してなんぼ。得意でもないけど、まあまあできる」という人が多かった事務職時代に比べると、エンジニアのコミュニケーションスキルは、かなり得意・不得意が分かれる印象です。
ベテランエンジニアでも「インフラからマネジメントまでなんでもござれ!」という方はごく少数で、「できることならコードだけ書いていたい…」派も一定数いそうです。
2. 俯瞰的に物事を見たり、チームを引っぱっていけるか、も人それぞれ
だれもかれもが自走力を持っていて、それぞれが自分の頭で考えながら、チームでごりごり作業をすすめていく――。
エンジニアになる前は、そういうイメージを持っていました。
しかし、ここもコミュニケーション能力と同じく、振り幅が大きい印象です。
チームをまとめるポジションにいるエンジニアの方にはもちろんありますが、ついつい指示待ちになってしまったり、お客様に言われるまま、仕様や設計、運用にそぐわない機能を実装してしまうという人も多そうです。
3. 売上や顧客からの信用の獲得といったビジネスの観点から意識が離れがち
機能ひとつの改修にうん十万とかかる世界なので、事務職時代よりもそういうたぐいの話が多くなりそうなものなのですが、技術職ゆえか、会社側や営業部に比べて、エンジニアには「売上」とか「顧客からの信用の獲得」といったビジネスの観念が薄いような印象があります。
たとえば、事務職時代のころは「自分の仕事=会社の信用度に関わるもの」という意識があり、チャットツールやメールで送る文面ひとつとってもかなり神経を使っていた記憶があるのですが、実際にエンジニアとして仕事をしていると「実装や改修自体はしっかりやる。でも、そのまわりにあるお客さんとのやりとり、事務処理あれこれにはあまり頓着しない」という空気を感じることが多あります。
エンジニアの苦手分野から考える、目指すべきエンジニア像
ここからは上記であげた情報をもとに、実際に目指すべきエンジニア像について考えていく段階ですが、いろいろ考えた結果、
「会社とエンジニア、お客さんとチームのあいだを取り持つ、クッション材エンジニア」
というポジションを目指そう、という結論にいたりました。
クッション材エンジニアの役割は、以下のとおりです。
- 会社のやりたいこと・重要度をチームに共有し、実際の仕事に落とし込む
- お客さんのやりたいことを俯瞰的に検討し、最適な実装・改修を提案する
- 会社とお客さんからの信用度を上げ、エンジニアからの提案・要望を通しやすくする
エンジニアとそれを取り巻く人たちとのやりとりを円滑にし、作業効率を上げる。
その名のとおり、クッション、もしくは潤滑油のような存在です。
理想のエンジニア像に近づくために、ぺーぺーの今からできること
エンジニアのまわりにある、ありとあらゆる摩擦をなくす――、そんな理想のクッション材エンジニアになるためには、どんなことをがんばっていけばよいのでしょうか。
知識も経験も浅いぺーぺーの時代からできることを、以下にまとめてみました。
1. 実務での経験値を積む(平日90%)
- 「なにか質問ありませんか?」と聴かれたら、めちゃくちゃ質問して、作業や仕様の解像度を上げる
- 「〇〇しておきますね」と言われたら、できるかぎり作業を見学させてもらう
- やったことのある簡単な改修とやったことのない難しそうな改修。どちらか選べるのであれば、難しいほうをやる
などで足りない経験・知識の幅を増やしつつ、
- 連絡には、即レス・即返信・即スタンプを心がける(お客さんにはとくに)
- チームに対しても、お客さんに対しても、意図が誤解なく伝わる文面を心がける
- 使う人のことを第一に、仕様・設計を考えるクセをつける
- 仕様書がすでにできあがっている場合は、「自分だったらどうやって進めるか」をシュミレーションしてみる
- チームで作業にあたる場合は、スケジュール・チケットの作成、進捗管理などを率先して行う
で、マネジメントを練習、学びの機会を増やす。
2. 新しい技術のキャッチアップを継続する(平日10%、休日30%)
実務で、実際にたずさわっている案件の知識・理解を増やしつつ、
- Reactのキャッチアップを継続する
- ↑ が終わったら、React だけで小さいアプリをひとつ作ってみる
- Laravelのキャッチアップを開始する
- ↑ が終わったら、React + Laravel でアプリをひとつ作ってみる(テストまで書く)
などで、技術度を上げながら、新規案件の獲得率をアップ、さらなる経験値の獲得を狙う。
3. 空き時間にマーケティングやビジネス系の本を読む(休日10%)
ぺーぺーのあいだは、経験値と技術力の強化に全振りする。
ただし「ちょっと、今日は、勉強したくない!」という日もあると思うので、そういう日はごろごろ本を読みつつ、技術以外の知識を広く浅くやっていく。
4. よく寝、よく食べ、よく運動し、情報収集も欠かさない(休日60%)
健康な身体と心身の安定なくしては、技術も磨けない。自分自身のお世話はしっかりする。
また、月1回程度、RUNTEQや外部の技術コミュニティにも参加。定期的に自社以外のエンジニアに触れる機会を持つ。
ここまで、エンジニアの先輩方の苦手分野から、目指すべきエンジニア像と努力の方向性について、自分なりにいろいろ考えてきました。
ただ「エンジニア生存戦略」と題してここまで書いておきながら、正直なところ、情報不足な感じが否めません。
エンジニアとして働いたのは一社、しかも一年という期間では、上記に書いたエンジニアの苦手分野も、自社だけのことなのか、それともエンジニア全体でもよくあることなのか、判断がつかない状態です。
うっかり方向性を見誤ってあらぬところへ走っていってしまわないよう、今後も情報収集を行いつつ、半年に一回のペースで戦略の見直しをはかっていきたいと思います。
もしこの記事を読んで、「うちのエンジニアはそんなちゃちなもんじゃないぜ…!」と思った方は、マサカリという名のご意見をちょうだいできますと幸いです。
おわりに
ひとつのことができたと思ったら、深みにはまったり、あらぬところにバグが発生したり、納期に追われて残業したり、データのメンテナンスで深夜対応したり、次なる納期に追われたり…。
エンジニアの仕事はとても大変なことが多いです。
それでも、日々、事務職のときにはなかった楽しさや面白さを感じています。
そんな楽しさも、おもしろさも、やりがいもある世界で今後も戦っていくため、そして、いつか芸能界でいうところのお笑い芸人出◯哲◯さんのように「あいつを呼んでおけば、まあなんとかしてくれるよな」とまわりに思ってもらえるようなエンジニアになれるよう、これからも精進していきたいと思います。
ここまで読んでいただき、ありがとうございました!