ソフトウェアのエンジニアが身につけるべき、5大スキル
ソフトウェアのエンジニアは年々増加しています。現在国内には100万人程度の技術者が存在していると見られますが、今後も各種産業でソフトウェアの導入が進むことを考えると、まだまだ技術者は足りないと言ってもいいかもしれません。
しかし、技術者の能力が「プログラミングスキル」だけでよかったのは遥か過去の話です。現在ではソフトウェアエンジニアリングの高度化とともに、実に様々なスキルが求められるようになったことは、みなさまもよくご存知のことと思われます。
ですが、具体的にそのスキルとは一体何なのでしょう。
その中でも重要だと思われるものを以下に挙げたいと思います。
1.マーケティングスキル
技術者にマーケティングスキルが不要だったのは過去の話です。自社プロダクトの開発はもちろん、受託開発であっても、マーケティングスキルは重要です。なぜなら、ソフトウェアはユーザーが使い、実際の役に立って初めて価値があるからです。
マーケティングスキルとは、ユーザーの目線になってソフトウェアの使途の吟味ができるスキルです。必須といえるでしょう。
2.プロジェクトマネジメントスキル
古くから必要と言われるスキルですが、現在も変わらず重要なスキルです。プロジェクトマネジメントにはリスク管理やスケジュール管理、品質管理など、エンジニアにとって非常に重要な項目が含まれており、一度は必ず学習しておくべきスキルと言えます。
3.コミュニケーションスキル
コミュニケーションスキルは、見方によってはプログラミングスキルよりも重要かもしれません。顧客とのコミュニケーション、社内の意思決定者とのコミュニケーション、部下とのコミュニケーション、全てにおいて重要です。なお、政治的な駆け引きを含む「高度なコミュニケーションスキル」は、プロジェクトの規模が大きければ大きいほど重要となります。
ソフトウェアは決して1人で完成させられるものではありません。コミュニケーションあってこそ、完成度の高いソフトウェアのエンジニアリングが可能なのです。
4.統計学
統計学は個別のデータ一つ一つを検証できない場合においても、全体がどうなっているかを推定できるようにするための技術です。近年、大量のデータを扱うソフトウェアが増えていますが、データをきちんと利用するためには数学、特に統計学の知識が必要となります。
「データサイエンティスト」というワードが最近急に使われだしたことで、「統計学は専門家の仕事」と言われがちですが、そんなに難しいものではありません。統計自体は高校生でも十分理解できる範囲のものです。勉強しておいて損はないでしょう。
5.科学的手法
Wikipediaによれば、科学的手法とは以下のような定義です。
科学的方法とは、物事を調査し、結果を整理し、新たな知見を導き出し、知見の正しさを立証するまでの手続きであり、かつそれがある一定の基準を満たしているもののことである。科学的手法、科学的検証ともいわれる。
「一定の基準とはそもそも何か」という問題は諸論があるが、大まかにいえば、その推論過程において「適切な証拠から、適切な推論過程によって推論されていること」、「仮説検証型」の調査プロセスが要求される。また、扱う対象が、測定、定量化が可能であることが望まれることも多い。
この中において特に重要なのが、「仮説検証」です。仮説を立て、適切な証拠を揃え、妥当性のある推論によって解を導く手法は特にエンジニアリング上、重要な役割を果たします。
「思い込み」や、「先入観」に惑わされず、適切な行動を選択できることは、ビジネスにおける重要なスキルです。
(Photo:Scott Schiller)