こんにちは!
複数の億規模プロジェクトでPLやってるやまさんです!
SEとして数年が経つと、このような疑問を持つ方は多いと思います。
やまさんも一時こんな感じでした。
今のままではダメな気がする。スキルアップしないとだけど、何すればいいんだろう…
もちろん、IT系資格やプログラミング言語を新しく習得してスキルアップしていくのはエンジニアとして王道の1つといえるでしょう。
ただちょっと待ってください。
せっかくなら、スキルを習得して年収アップにつなげたいと思いませんか?
そういう意味だと、プログラミング言語を習得してスキルアップ→年収UPしていくのは効率が悪いかもしれません。
年収UPのためにはIT技術以外のスキル、つまりはビジネススキルを磨いた方がいいこともあります。
この記事ではやまさんが実際に身につけて年収UPにつながったビジネススキルを紹介したいと思います。
Contents
プログラミングは開発工程全体の1/3弱しかない
ご存じの通り開発工程はいくつかの工程から成り立っています。
開発工程全体における工数の割合を調べてみた結果、↑の円グラフのようになりました。
設計工程(基本設計+詳細設計)の割合は、プログラミング・単体テストと同程度ですね。「工程が上流なほど重要」という原則を当てはめると、プログラミング・単体テストより比重は重いとも言えます。
https://thinkit.co.jp/article/16984
ここで注目していただきたいのはスキルアップとして人気のプログラミングスキルはシステム開発全体の約1/3弱ぐらいでしか使わないということです。
↑の円グラフとしては左下の青色部分ですね。
これには単体テスト工数も含まれているので実際にプログラミングそのものをしてる時間はもっと短くなるでしょう。
ここから1つの事実が導けるんじゃないでしょうか。
時間やお金かけ、努力の末、プログラミング言語を習得したとしても開発全体の1/3以下しか役に立たないのです。
またIT技術には流行りのようなものがありプロジェクトによって必要とされる言語は変わります。
これは苦労して身につけたプログラム言語が市場価値としては低い、ということになりかねません。
せっかく時間とお金と努力してスキルアップしたのにもかからず、なかなか必要とされない…
これは悲しすぎるのではないでしょうか。
システム開発はコミュニケーションを基礎とした作業で成り立っている
プログラミング作業は開発工程1/3弱の割合しか占めていませんでした。
では残りは何をしているんでしょうか。
もう一度先ほどの円グラフを見てみましょう。
プロジェクト管理、要件定義、設計で50%弱。
テストと稼働後フォローで25%ほどでしょうか。
これらの工程で共通して行っている作業があります。
コミュニケーションです。
要件定義や基礎設計工程はお客さんと作成した要件定義書や設計書を使用しシステム仕様について話合って決めていくのが主な作業内容。
詳細設計工程は社内の各メンバーと作成した設計書を使用し話あって設計の細かい部分を決めていきます。
システム開発はチームで行いますからね^^
一人で行う開発というのはかなり珍しいです。
結合テストや総合テストもテストケースを作ってレビューします。
作り上げたプログラムを一気に動かした結果を確認するのでコミュニケーションが重要になります。
なので、各開発工程でやっていことは
- 成果物作成(設計書、テストケースや試験結果)
- お客さんや社内メンバーと話合い(試験結果確認も含む)
- 話し合った結果OKなら次へ進む。NGなら原因分析、”成果物作成”からやり直し。
実はこれだけです。
そういう意味だと、プログラミングや単体テストの工程も作ったプログラムをレビューするので、あてはまりますね。
こうして書いてみると、分かりますが、システム開発はコミュニケーションばっかりやってます。
コミュニケーションは問題解決のためにある
ではコミュニケーションばかりして何をしているのでしょうか。
結論を言うと、コミュニケーションの目的はシンプルに2つです。
- 問題発生の防止
- 発生した問題の解決
例えば、お客さんへシステム仕様を説明するのは”お客さんが必要としている機能”と”作ろうしているシステム”がズレていないか確認するためです。
当たり前やないかー!!
そう、思うかもしれませんが、仮に、お客さんが必要としてる機能を確認なしで作れるのであれば、会議などで説明は不要です。
でも、現実的には不可能なので特別な事情がない限り必ずやりますよね^^;
結局やってることは問題発生の防止策を打ってるだけなんです。
試験工程でのコミュニケーションも問題発生の防止と問題解決がメイン。
- いつどういう状態で試験するのか話合う
→試験ミスという問題の発生防止 - 発生したバグに誰がいつどう対処するのか話合う
→発生した問題解決するための対策
よくSEはコミュニケーションが重要と言われます。
もう1歩踏む込んで考えると、コミュニケーションは問題発生の防止と問題解決をするための手段なんですよね。
本当にSEに求められている能力は問題発生防止も含めた問題解決能力だと言えます。
問題解決能力を高めるために4つの思考を身につけよう
SEに必要な能力は問題解決力だよ、ということでしたが、では問題解決力はどうやったら身につけることができるのでしょうか。
やまさんは次のの4つの思考を身につけることで問題解決力が飛躍的に高まりました。
- 仮説思考
仮説を立てて実行、分析を繰り返しブラシュアップしていく思考法 - 論理思考
問題を構成要素に分解し、各要素を関連付けしつつ分析する思考法 - 逆算思考
ゴールを設定し、そこから逆算して優先順位の高い作業からおこなう思考法 - エッセンシャル思考
重要なことだけに集中して作業を行っていく思考
なお、エッセンシャル思考は問題解決力と直接的に関連しないと思われがちですが、とても重要な考え方です。
プロジェクトでは大小含めて様々な問題が発生しますが、本当に重要なことは少ないです。
これについてはやまさんの実体験をもとに次の記事にまとめているので
ぜひ読んでみてくださいね!
まとめ
この記事では次のようなことを紹介しました。
- プログラミングスキルは開発現場で発揮できる機会が限定的
- システム開発ではどの工程でもコミュニケーションを行う
- コミュニケーションを行う目的は”問題発生の防止”と”発生した問題を解決”
- コミュニケーションスキルを高めるにはビジネススキルである”仮設思考”、”論理思考”、”逆算思考”、”エッセンシャル思考”の4つの思考法をマスターするのが効果的
いかがでしたでしょうか。
この記事ではあまりふれませんでしたが、正直なところ、プログラミングなどのITスキルを持った人材はたくさんいます^^;
なので、ITスキルだけ戦おうとするとレッドオーシャンで戦うことになってしまうんですよね・・・
逆にITスキルだけでなく、ビジネススキルである4つ思考法を身につけたSEは希少価値が高いです。
- これからもSEとして仕事をしていきたい
- さらに年収を上げたい
そう思うっている場合、やまさんとしては希少価値の高いビジネススキルを身につけることをおすすめします。
実のところ、やまさんはこのビジネススキル(4つの思考法)を習得するのにビジネス書を100冊ほど読みました^^;
なので、100冊読みましょうーというのは簡単ですが、実践するのは難しいですよね…
本を読むのにも時間がかかりますし、どの本が有益か100冊選ぶのも大変だと思います。
実際、ボクが読んだ100冊のうち、すでに知っていた内容で読まなくてもいい本もありました…
ただ、最近、無料でなかなかいい動画を見つけたのでここで紹介しておきますね^^
もちろん、やまさんも実際に見てこちらの記事でレビューを書いてみたので、気になった方はぜひ見てみてください!
※この記事を書いてる時点では無料キャンペーンをやっていたので紹介してみました。
「無料キャンペーン終わってる!」って、なった場合はごめんさない…
無料キャンペーンはいつ終わるか分からないので、興味のある方は早めに見た方がいいかもです。
こちらをクリック(タップ)してどうぞ。
それでは!
スキルアップのためにIT系資格や新しいプログラミング言語を勉強してみようと思うんですが、何がいいか迷っていて…