「システムエンジニアには論理的思考力が必要」
このように言われることが多いですね。
実際のところ、システムエンジニアにとっては結構重要な力です。
僕自身、システムエンジニアとして働いていますが、この力を必要とするタスクが多いですね。
また、会社の新入社員研修でもロジカルシンキング研修がありました。
会社としても、論理的思考力が高い人材を求めていると言えそうですね。
というわけで今回は、システムエンジニアに論理的思考力が必要な理由についてお話ししていきます!!
そもそも論理的思考力とは
そもそも、論理的思考とはどのような思考のことを言うのでしょうか?
システムエンジニアの仕事においては、以下のようなイメージになります。
- 目標から逆算して、必要な要素(作業やデータ)などを考える
- なぜその要素が必要なのかの根拠を持つ
- 目標に向けて、各要素を整理・組み立てる
たとえば、カレーライスを作るとしましょう。
まず必要になるのは食材ですね。
そして、調理器具も必要です。
理由は明らかですね。
それらが無いと作れないからです。
では、それらの要素を用意すればできるのか?
違いますね。
各食材にも調理器具にも役割や使うタイミングがあり、必要な作業があります。
システム開発でも目標となるシステムから逆算して、どんな機能があれば良いのか、なぜその機能が必要なのか、その機能を作るのにどんな作業が必要か、どれくらいの作業量になるのか、人数はどれくらい必要か・・・
こんな感じの思考が必要になってきますね。
簡単な説明ですが、計画性だとか、目標となるシステム・機能を実現させるための手段の妥当性を検討する力というのが、システムエンジニアに求められる論理的思考力かなと思います。
システムエンジニアが論理的思考を必要とする作業例
ここからは、もう少し具体的にシステムエンジニアに論理的思考が必要な場面について考えていきましょう。
①仕様・設計
クライアントの要望を仕様として整理し、それを実現させるための設計を考える。
分かりやすい論理的思考ですね。
要望というのがつまり、目標です。
目標達成に向けてアプローチを考え、さらにそのアプローチを細分化していく。
ある程度細かくなれば、作業ボリュームや費用、作業期間、技術力、人数などが見えてくるでしょう。
また、クライアントの要望通りに作ると、システムに大きな問題が生じるかもしれません。
せっかく作っても使い物にならなかったら意味が無いですよね。
そのために、顧客の要望によって発生する問題点だとか、解決案を提示するというのも大切です。
これも論理的思考が出来ないと難しいですね。
ただ技術力が高く、指示された通りのものを作るだけでは良い物は作れません。
②開発
仕様や設計が固まったら、いよいよ開発に入りますね。
プログラミングも論理的思考を必要とする典型的なものです。
どのようにコード・処理を作っていけば上手く実装できるのか。
これを考えながら作業しなければいけませんからね。
大変そうにも聞こえますが、慣れていけば実装方法を考えるのもそれほど難しくありません。
③テスト
開発したものは、そのままクライアントに渡すわけではありませんね。
渡す前に、上手く動くかどうかをテストしなければいけません。
その際、試験項目書を作成することになります。
テストでは、対象の機能について想定されるあらゆるパターンを試して、意図した通りに動くかをチェックしていきます。
考慮漏れだとか、バグが無いかを調べるためですね。
となると、そもそも、試験項目に不備があったら意味がありません。
そのため、試験項目は「思いついたものをただ列挙する」わけではなく、仕様・設計・実装方法から想定される、起き得る事象を整理しながら過不足なく列挙していく必要があります。
これも論理的思考ですね。
④ドキュメント
試験項目書もその1つですが、システムエンジニアの仕事には書類(ドキュメント)作成があります。
たとえば、開発方針をクライアントに説明するための資料、作ったシステムの機能や使い方を説明するための資料など。
説明するとなると、相手に伝わるように順序立てて記載しないといけません。
ドキュメント作成にも論理的思考は欠かせませんね。
論理的思考力を高めるためには?
さて、システムエンジニアに論理的思考力が必要ということは分かりましたが、どうすればその思考力を鍛えられるでしょうか?
一番良いのは、仕事の中で論理的思考を意識することですね。
論理的思考力も能力の1つですから、才能とかではなく、使うほど上達していくものです。
仕事の中でプログラミングをしていれば自然と論理的思考をすることになります。
最初は上手く開発できなくて上司のサポートもあるでしょうが、そこから「なるほど、こうやって考えれば良かったのか」という気付きがあるものです。
ドキュメント作成なども、初めて作ったものを上司に見てもらうと、「この部分の記述はどういうこと?」と質問される箇所が多々あったりします。
そこで、「この説明が抜けていたな」、「ここは語弊があるから表現を変えないと・・・」と考えるようになれば、段々と改善されていくでしょう。
つまり、簡単に言えば、苦戦したことや指摘を受けたことをしっかり経験値として吸収し、次に活かすということですね。
論理的思考に関わらず、失敗から学んでいくことで、その失敗をしなくなります。
結局のところ、システムエンジニアに論理的思考は必要ですが、それは仕事の過程で鍛えられていくものです。
「論理的思考が苦手な人はシステムエンジニアになれない」ということにはなりませんね。
結局、どの仕事にも言えることで、継続すればその仕事に必要なスキルが高まっていくという話です。
まとめ
さて、今回はシステムエンジニアに論理的思考力が求められる理由についてお話ししてきました。
システムエンジニアの仕事内容から考えてみると、論理的思考が必要な作業が多いですね。
とはいえ、元から論理的思考が得意な人だけがシステムエンジニアになっているわけではありません。