【実体験】コーディングスキルはあるのに、実務として成果が得られないエンジニアの特徴

会社でとあるプロジェクトに参加したとき、美しいと思えるコーディングスキルを持ちなら、実務への適応性にかけるメンバーがいた。
本記事では、その出来事を通じて、実務に適応するために必要な能力を考察してみる。
出来事
僕が下っ端SEとしてプロジェクトに参加したとき、SNSのようにコミュニケーションが取れる複雑なシステムの開発をすることになり、投稿や削除、一覧表示など多岐にわたる処理を開発していた。
ある派遣社員のメンバーは割り振られたタスクを始めの頃は少しずつこなしていたものの、毎回の朝会での進捗報告で次第に遅れを報告するようになり、元気がなくなっていく様子が見受けられた。
質問を受け付けていたもののそれに対する反応も少なくなり、気がついたらプロジェクトを外れることになっていた。
脱落者が出てしまうほど大変なプロジェクトもあるのね、、
システムが複雑だったのもあるけど、納期もパツパツだったから本当にギリギリの案件だったよ (´`)=3
僕は少し余力があったので、そのメンバーが残した成果物を確認する作業を担当したが、そのプログラムに驚いた。
整理されたコード、理解しやすいロジック、分かりやすいコメントで、非常に美しいコーディングだった。(仕様通りに動かないバグはいくつも残っていたが、、、)
進捗報告の雰囲気からは予想できないほどの素晴らしいコーディングスキルの腕前を感じたが、同時に他の能力の欠如を感じた。
どうして優れたコーディングスキルを持ちながらプロジェクトに適応できなかったのか、
「実務として成果が得られないエンジニアの特徴」と題して、その分析を考えてみた。
実務として成果が得られないエンジニアの特徴
コミュニケーション能力の不足
大抵のプロジェクトにおいて、エンジニアは単体作業だけでなく、他メンバーやクライアントとの円滑なコミュニケーションが必要となる。
意見を適切に伝え、他者と協力する能力が不足していると、プロジェクトの進行に支障をきたす可能性がある。
仕様や進め方の理解や自分がわからない部分を相手に伝えることが求められる。
今回の場合は、それ以前の問題で、分からない部分を躊躇なく質問する努力が足りていなかったと思われる。
問題解決能力の欠如
IT関係の仕事をしていると、新しい技術や予測不可能なクライアントからの要求に直面することがよくある。
新しい課題に対して効果的な解決策を見つける能力はエンジニアにとって重要である。
特に今回のようなWebアプリ開発のプロジェクトでは、実装してからでないと分からない仕様や動作もあり、発生する課題に即座に対処するスキルが求められる。
タスクの優先順位の付け方が下手
タスクの優先順位がうまくできていたかったというのが、今回の出来事で遅延が発生したことの大きい部分を占める。
コーディングを綺麗にする作業はリファクタリングであり、正しく動いていないコードをリファクタリングしても変更が発生したらコードを崩す必要がある。
正しく動作していていないコードはまず動かすことが最優先事項になる。
また、コーディングの優先事項だけでなく、エンジニアの実務では、1人が複数のタスクを同時に進行することが一般的である。実装しながら仕様書を変更したり、単体テストを設計したりする。
ガントチャートに現れるタスクではなかったとしても、実装中に発生した課題には何から対処するかの順序を決める必要に迫られる。
タスクの処理が遅れる原因として、タスクの優先順位を適切に判断できていない可能性がある。
テスト・デバッグ能力の不足
エンジニアには、エラーが発生したときに素早く原因を見つけ、修正できる能力が求められる。
今まで書いてきたコードがどのように動くべきかを理解すること、エラー発生時に正確なエラー分析ができるよう努める。
ビジネス理解の不足
単なるコードの書き手であるだけではなく、ビジネスの要件や目標を理解し、それに基づいてプログラムを組む必要がある。
プロジェクト全体の視点を持ち、ビジネスの理解を深めることで正しい実装ができる。また、分からない部分を質問するときに仮説も立てやすく、コミュニケーションが円滑にできる。
能力がIT知識やコーディングスキルなどのハードスキルに偏ったメンバーは、必ずしも活躍できないことが分かった。
プロジェクトには、単なるコーディングスキルだけでなく、コミュニケーション力や問題解決力などのソフトスキルやプロジェクト全体の視点も求められる。
これらの特徴を克服するには、ハードスキルとソフトスキルの両面をバランスよく発展させていくことが必要となる。
就活にはコミュニケーション能力が求められがちだけど、
このプロジェクトの話を聞いて、ソフトスキルも欠かせない理由がわかったわ
自分が書いたコードと見比べてみて、まだまだなーって思ったけど、スキルはバランスよく伸ばす必要があるんだね
ソフトスキルはすぐに身に着けられるものじゃないけど、段階的に場数を踏んでいけば、育っていくから焦らず経験を積むべきね
まとめ
実務として成果が得られるエンジニアが持つもの
- コミュニティケーション能力
- 問題解決能力
- タスクの優先順位の付け方が上手
- テスト・デバッグ能力
- ビジネスの理解
ハードスキルだけではなく、ソフトスキルやプロジェクト全体の視点を持っているエンジニアが成功しやすい。
ところでたくはよくこんな脱落者が出るくらい大変なプロジェクトで活躍できたわね
SNSは僕の大好きな分野だからね笑
ビジネスの理解は誰よりもあったわけか (゚Д゚ )






ディスカッション
コメント一覧
まだ、コメントがありません