普段はサラリーマンエンジニアをしているドナちきです。
ソフトウェア開発をする時に、自社開発だけではなく協力会社の人達と一緒に開発をすることがあります。# 協力会社のみなさま、いつもお世話になっておりますw
そんな中、新しい開発案件があったので、いつもと変わらず協力会社の人達と打ち合わせをしていました。そんな時ふと思ったのです。
委託を受けて開発をするって面白いの?エンジニアとして成長できるの余地ってあるの?
私はわがままで欲張りなエンジニア(に最近なりつつある。。。)なので、開発に携わる時は以下のことを意識しています。
→同じことは極力自分でやらない。自分は技術的な新しいチャレンジを提案する。
つまり、エンジニアはチャレンジが必要な仕事に積極的に取り組むべきだと考えています。
本記事では、その理由について紹介します。
エンジニアはチャレンジが必要な仕事に積極的に取り組むべき理由
新しい技術の獲得無くして時代の流れに乗ることはできない
ソフトウェアの世界は技術進歩が非常に早いのが特徴です。数年前に頻繁に使われいた開発言語や技術はどんどん新しいものに取って代わってきています。
さらに最近では、AIの進歩が著しくソフトウェア技術だけではなくAIを作るデータマイニング等の知識も必要になってきています。
そんな時代の流れに対してどう向き合うかで、エンジニアとしての市場価値が大きく分かれます。
ここ数年だけエンジニアとして活躍できれば良いのか、今後もずっとエンジニアとして活躍していきたいのか。
後者の思いがあるのであれば、新しい技術の獲得に挑戦することをオススメします。
同じことの繰り返しでは成長しない。技術が定着するだけ。
この記事を書こうと思ったきっかけは、冒頭で書いたように協力会社に開発を委託する打ち合わせをしたことでした。
ソフトウェア開発において納期通りに開発を遂行することは大切なことです。協力会社に開発をお願いする時、まずはコストや期間を見積もってもらいます。
見積もりは実際に開発を行う現場のエンジニアが、現場の実力を把握した上でスケジュール的にも少し余裕を持ったリスクをなるべく負わない提案してくることが多いです。
それは会社が利益を確実に出すためには非常に大切なことですし、正確に見積もることもエンジニアのスキルの1つだと思っています。
ただ、そういう開発って果たして楽しいのでしょうか?
何というか、言われたことをその範囲でやっているだけに感じてしまい、面白味がないように思ってしまうのは私だけでしょうか?
知っている技術や知っているドメインの知識を使い、自分の手の届く範囲で開発を行えば、ある意味安定した開発ができるでしょう。
知っていることの繰り返しは、「成長」ではなく、「技術の定着」にしかならないと思います。
チャレンジすることが成長に繋がる
スポーツを何かやられていた方であれば、そちらを想像してもらうとよりイメージが膨らむと思います。
スポーツが上手くなるために基礎練習は技術のベースを作る上で非常に大切です。私も学生時代サッカーをしていた時は、基礎練習を繰り返し行っていました。獲得した技術を自分の体に定着させるためにはできることを繰り返し行うことが大切です。
ですが、それだけでは次のステージへ成長はしません。
新しい技術を掴むためには、新しいことや今までできなかったことに挑戦する必要があります。
リフティングが10回は安定してできるようになったから、次は100回を目指して挑戦する。最初はうまくできなかったことが、たまに100回できるようになり、繰り返すと何事もなく100回できるようになる。
人は新しいことやできなかったことにチャレンジし、失敗を繰り返してこし成長できます。
チャレンジに失敗した責任なんて感じる必要はない!
あなたがサラリーマンで上司がいる立場の人であれば、チャレンジに失敗した責任を負う必要など微塵もないと私は思います。
何かにチャレンジしようとすると当然失敗するリスクが付きまといます。「失敗したらどうするんだ?」と言ってくる周りの人や上司もいると思います。
「上司が責任とってください。何のための役職・管理職ですか?」
そんなスタンスで良いじゃないですか。
勘違いして欲しくないのは、ただ闇雲に無策なチャレンジをしようとしてはダメです。無謀なチャレンジは上司も責任とってくれないと思います。
「このチャレンジに成功した時のメリットは非常に魅力的です。失敗しないためにはどうすれば良いか、一緒に考えて頂けませんか?」
というスタンスが大切です。上司に責任を共感してもらうことが、物事を前に進めるコツだと思います。
やるかやらないか、迷ったらやろう!
それでもチャレンジすべきかどうか、判断に迷ってしまうことがあると思います。
そんな時は「チャンス」だと捉えて、ぜひいろんなことに挑戦すべきだと思います。