【エンジニアの道は果てしない】 個人的に思うエンジニアが持っておきたいマインドセット
こんにちは。すうちです。
(自分がまいた種ではありますが…)最近開発でちょっとした確認漏れがあり、先週しばらくの間、手戻り作業で慌しい日々を送ってました。
その反省と忘備録を兼ねて、上手く仕事を進めている方の考え方や、逆に過去一緒に仕事して反面教師として学ばせて頂いたエンジニアに必要と思うマインドセットについて、書きたいと思います。
ーーー
※タイトル画像:読書セレクション@yutaroさん
新しいことに好奇心を持つ
結構これは何気に一番大事かもと思っています。
IT業界はどんどん新しい技術が出てきたり、もちろん知らない分野もあるし、更にそういった分野に直接仕事で関わることもあります。
とは言え、現実には全てを細かい所まで事前に把握したり習得するのは時間的な制約や優先度の問題で手が出せないこともあるかと思います。
技術の詳細まで追うのは、個人的には本当に仕事で必要になりそうな時でも良い気はしてますが、最低限トレンドや技術の話題にアンテナを張っておくことはやはり必要と思います(最近だとやはりAIネタでしょうか…)。
私が過去一緒に仕事をしてた方(やろうとしてた方も含む)で、頑なに自分が一度経験した仕事しかやらないスタンスの方がいました。
もしかしたら以前に安請け合いして、とんでもない目にあったトラウマがきっかけでそういう考えになられたのかもしれませんが、個人的には、少し自分の範疇をこえたり、背伸びをするような仕事をやる方が結果的に自分のスキルや経験を広げるきっかけになると思います。
自分がやったことない事でも興味を持てたり、逆に面白そうと思えるかは、エンジニアをやっていく上で大事な素養に思えます。
完璧主義を捨てる
仕事をしていると期限や納期が当然あります。そんな中で完璧主義にこだわりすぎると精神的に負担になったり、自分を追い詰めることになりかねません。
過去振り返ると几帳面な方や完璧主義の方ほどメンタルにダメージ受けて休職したり、退職された方が多かったように思います。
私が若かった頃、同じ会社で働いていた先輩の話です。
エンジニアとして活躍されていた先輩があるプロジェクトのマネージャに昇格されました。その時チームや部下を率いた開発で自分が思うような成果を出せないことに責任を感じ、結果メンタルを病んで休職されました。他にも同様のパターンで休職や退職された方が、私が知ってるだけでも数人います。
個人で成果を出すのと違い、マネージメントの立場になると色んなスキルや経験の違う方をまとめ上げていかなければならない。そんな時に過去実績ある人ほど思うようにいかないと失望しやすいのかもしれません。
エンジニアとして丁寧に物事を管理したり、一つずつ確実にこなす能力は必要と思いますが、全てを完璧にこなすことに重きを置くよりは、小さなことでも今できていることに目を向けて自分を褒められるくらいの人の方が、意外と長続きするかもしれません。
常に終わりを意識する
開発をしていると最初に立てた前提や方針が揺らいだり、色んな事情で仕様変更や目標を余儀なく変更されることもあります。
むしろ最初に立てた計画通りに問題なく開発を終えることの方が稀ではないか、と個人的には思います。
そんな仕様変更や目標値が変わった時に、最初に立てた計画(設計、評価方法)にこだわり過ぎると自分達を苦しめることもあるように思います。
最終目標に辿りつく道は当初立てた計画一つだけと言う思い込みを捨てて、辿りつく道は幾らでもあると柔軟に捉えたり、かつ終われる形(ゴール)を意識できる人は開発職にしてもマネージメント職にしても色んな方面から引き手あまたな印象があります。
変化に柔軟に対応できて、仮に変更があっても別のアプローチも含めて最終ゴールを描ける人はエンジニアとして強いです(もちろん常識の範囲をこえる変更は事前に交渉で阻止したり、場合によって計画や契約自体を見直す必要はあります)。
事前に準備する
開発を始める前(特に社内にノウハウがない新規開発であれば)、その難易度や作業量を見積もるためにも事前調査は欠かせません。
例えば、
等です。
ただ、時間は無限にはないので、あくまで時間ある範囲になりますが、少しでも開発の不安要素は初期段階で事前に解決できればベストです。
一方、これに過度に反応する(慎重派でリスクばかり上げて前に進まない)方も中にはいて、他の方の負担になる時があります。最初から全てのリスクを解決しようとするのは現実的でなく、フラストレーションばかり溜まり前に進めなくなるからです。
なので、この辺のバランス感覚は大事です。
個人的には、最初から開発が全てクリアな状態で着手できることはまずないと思っています(過去に開発実績があり仕様が変わらない場合を除く)。
初期段階では一部ブラックボックスで走りつつも、リスクに敏感な方の有用な意見は正しく管理した上で、必要なタイミングで問題をクリアしていく方が懸命なやり方ではないかと思います。
最後に
エンジニアに必要と思うマインドセットを経験を踏まえつつあげてみましたが、私はこれらが十分にできている自信はありません。
時には例に挙げた心配性の方のように、期限をこえても不安な所を調べていたこともあるし、逆に事前調査が足りてないこともありました。
今回手戻りした件も元々頭の片隅に確認しないといけない思いはありましたが、やっても大して変わらないだろうという思い込みがあって後回しにしたことが原因でした。
そもそも問題というのは急にその時に表れるのではなく、ずっと前から存在してて、あるタイミングで表面化するだけのような気がします。
これは開発に限らずエンジニア以外の仕事でもあり得るし、何なら人生やプライベートでも見ないふりでやり過ごしてた問題や放置してた課題が、後から自分に返っていることがあるように思えます。
冒頭の話に戻ると、あまり完璧を求め過ぎるのは自分の性分に合わないので、一部は前倒しで進められた自分を認めつつ、確認を先送りにした反省はしっかりして、また次に活かしたいと思います。
という、個人の反省を兼ねたnoteでしたが…笑
何か参考になることあれば幸いです。
最後まで読んで頂き、ありがとうございました。