エンジニア志望の方必見!!「優秀」なエンジニアとは?
こんにちは。
株式会社Espoirの中山です。
本日のテーマは「どのようなエンジニアが優秀なのか」についてです。
突然ですが、あなたにとってスキルが高い人とはどういう人でしょうか。
ただ経験が長い人?違います。
資格をたくさん持っている人?それも違います。
ではどのような要素がそういった人に値するのでしょうか。
本記事では優秀なエンジニアになるまでのフローについて解説します。
これからエンジニアを目指す人、今まさにエンジニアとしてスキルアップ中の方は自己啓発に繋がりますのでぜひご一読ください。
スキルは全てレベル分けできる
絵に描いた餅ではダメ
スキルとは技術・能力と呼ばれ、一般的な定義としては身体を伴う能力と言われています。
スキル(英: skill)とは、「技能(技術的な能力)」を意味する語であり、とりわけ「訓練や学習によって培われた高度な能力」を指す意味で用いられる表現。身体的能力を駆使する技術・能力の他、いわゆるコミュニケーション能力や、知識や教養なども、「スキル」として扱われることが多々ある。
出典:Weblio辞書より
エンジニアとしてのスキルとは単に記憶している知識のみではなく、知識を軸に考えて行動することを指します。
開発現場であれば、ドキュメントやハードウェア、ソフトウェア、ミドルウェアを提供することです。
その中で豊富な知識を軸に、より迅速に高い品質で提供することが高いスキルとなります。
開発現場では、プロジェクトの方針に沿って対応のフェーズ分けをします。
フェーズにおいては適切な人材配置を行いますが、このとき重要とされるのは開発レベルです。
開発にはそれぞれレベル分けがあり、開発のルールを遵守しながら作業できるレベル、新たな技術やツールも取り入れて応用できるレベル、もしくは新たな手法を0→1で作り上げるレベルです。
開発レベルはレベル感をマッピングすることでより明確になります。
例えば自身の力だけでは成果物を作れないレベルを半人前として、一人称開発ができる場合は一人前とすると自分はどれに該当するか、だとシンプルで一目瞭然ですよね。
レベル感で開発スキルをカテゴライズしよう
参考画像:IPA 独立行政法人 情報処理推進機構
IT業界やWeb業界ではビジネスの目標達成するためのロードマップを作成する際、人材育成の仕組みを構築するためのツールとして、スキルを発揮して結果を出す考えに基づきスキルディクショナリーとタスクディクショナリーで分類するモデルが導入されています。
エンジニアとしての分類としては技術要素、開発技術、管理技術に割り振られます。
さらに細かい部分としてはポジションにも関係しますが、主に開発スキルのレベルは共通して以下のような基準を設けられます。
- レベル1:基礎概念理解やドキュメント、フロー作成、必要性の理解ができるレベル
- レベル2:自身のスキルで問題解決ができる。現場でも即戦力として必要とされるレベル
- レベル3:他者に対して技術提供、組織構造の刷新、スキームの解消までできるレベル
- レベル4:新規開発におけるモダンな技術支援やメソドロジーの開発提供ができるレベル
開発スキルを高めるためには何をすべきか
スキルレベルの段階別ステップアップ
さて、ここからはどのようにスキルを高めていくのか具体的なフローを段階別にお話します。
まず組織におけるスキルレベルを分布にして見える化することでスキルマップが出来上がります。これらをもとにグルーピングして各レベルごとの実践をしていくことが効果的です。
その後レベル分けして次はどのようなステップを踏めるかを検討しましょう。
ここでは前述の通りレベルを0~4に至る部分を軸に解説します。
- スキルレベル0→1「未経験からのデビュー」
エンジニアとしての知識や経験が全くない状態から、経験が浅くても現場に参加できるレベルを目指します。まずは基礎的な知識、基本的な方法や手順を説明して作業することでスキル習得を目指します。ただ闇雲に作業するのではなく、課題の意味や必要性などを論理的に説明、失敗から学ぶ影響を認識することで品質の理解と向上が身につけられます。その後、現場業務を通してスキルの定着を目指します。 - スキルレベル1→2「試行錯誤して自立」
一定の経験値を得た後は自立をします。ここでいう自立というのは問題解決力とです。とにかく実践の繰り返し、トライアル&エラーを経験することで大幅なスキル向上ができます。日頃の試行錯誤でケーススタディに基づく原因究明における特定と再現性の実施、リカバリー策の実施が可能になります。このように多くの経験を積ませることは時間的制約もあるため、効率的に実践するにはケーススタディの共有をして条件やメリットなどの判断することが良いでしょう。 - スキルレベル2→3「環境づくりのできるエンジニア」
優秀なエンジニアとしてスキルアップすることはシンプルですが容易ではないです。例えば誰かを育成するだけがスキルアップとはなりません。大切なのは放っておいてもスキルアップが可能な環境づくりです。開発プロセスやフロー、規則やツールなどのインフラを整備してチームの生産性向上させることで自身の成長を促せます。故に優秀なエンジニアとしてのスキルアップは直接的な教育をすることではなく、成長を促せる環境づくりができることを指します。 - スキルレベル3→4「0→1で新たなx techを提供」
これまでのエンジニアとしての実績や対外的評価から、新たな技術要素を見つけてプロダクト開発における覚醒をすることがポイントです。覚醒するには新規開発におけるベースとなる技術要素やメソドロジーを多面的に極める必要があります。手段としてはロジックに基づいて情報の収集調査からトレンド分析や統計、展開を行い、目的としてはプロダクトにおけるサービスの需要と供給を満たすプラットフォームを提供することです。
組織内の技術の共有は相乗効果をもたらす
大事なのはスキルレベルを共有すること
いかがでしたでしょうか。
開発スキルが高いエンジニアこそ優秀なエンジニアという常套句には前述までの背景があります。
そして開発スキルを高めるために何をすべきかを考える際には、まずはスキルレベルの把握が必須です。
把握できたレベル感から目指す方向性を定めて向上をコミットすることが求められます。そしてスキルの高いレベルを保有するエンジニアと共にスキルレベルの定義や方法を考えましょう。
また、個人のスキルレベルの定義を言語化して相場感を共有することは必須ですが、組織としてのベクトルを基盤にスキルレベルの共有を促すとさらに良いでしょう。
オータムではスキルレベルの向上につながる教育コンテンツや環境、研修プログラムを常にブラッシュアップしながら提供しています。本記事をご覧になって興味や関心を持たれましたら、ぜひ一度お話ししましょう。