【インフラエンジニアの将来】 上流工程を仕事にする為に必要な思考癖
以前、 【インフラエンジニアの将来】 キャリアアップするために
で、インテグレーションに関わるエンジニアのキャリアアップには、これまで以上に “上流” を目指すことが重要なのでは! という意見を綴りました。
“上流”の対義語は“下流”ですが両者の大きな違いは、仕事の成果である価値を生み出すために上流工程は、思考と知識が、より必要になることだと思います。
例えばサーバ構築を例にいうと、設計するのと、設計書を基に構築するのとでは、前者は「何故その値にするのか?」「何故その手順にしたのか?」などの根拠を言える必要があり多くの知識と思考とが必要となりますが、後者はそのやり方を知っていればよいでしょう。
今回、この“思考”することについて共感するブログ記事に出くわしたので紹介したいと思います。
たとえば、エンジニアなら、過去に自分が開発したシステムにおいて、
なぜ、そのフレームワーク、ツール、ライブラリ、DBを使ったのか?
他に、どのようなフレームワーク、ツール、ライブラリ、DBが候補として上げられたのか?
他の選択肢と比べて、どの様な短所と長所があるのか?
なぜ、他の選択肢ではなく、それを選んだのか?
使う前に、どのように性能評価・検証したのか?
なぜ、ある部分を汎用的に作り、別の部分をハードコーディングしたのか?なぜ、その設計だと、生産性が高く、トラブルのリスクやメンテナンスコストが低くなるのか?
もっと低くできる余地として、どのようなものが考えられ、なぜ、それを作り込まなかったのか?実際に、どのようなトラブルが起こり、それにどのように対処したのか?おもしろいことに、有能な人というのは、そういう具体的な行動を聞き出すと、細部まで鮮明に覚えていて、スラスラ答えます。
徹底的に細部まで、なぜその行動を取ったのか?と問い詰めていくと、打てば響くように答え、持論を展開します。
一方で、無能な人というのは、まずそもそも、細部を覚えていません。理由を問い詰めても、曖昧な答えしか返ってきません。
なぜ、そのとき、そのPCサイトのケータイ版を作らなかったのか?
なぜ、ターゲット顧客を、中高年の男性に絞った商品にしたのか?
なぜ、その設計で、セキュリティー上問題ないと言えるのか?
なぜ、そのとき、普通のファイルシステムを使わずに、RDBをわざわざ使ったのか?要するに、仕事というのは、意志決定の連続であり、どれだけ質の高い意志決定ができるかで、仕事の質が決まります。
わたし自身、少し耳の痛い内容でもありましたが、日々の仕事の細部まで「Why?」と自分に問いかけることは上流工程の仕事にする為に必要であり、それが深まれば仕事の質を高めることに繋がるのだ!、と共感した次第です。
常に「Why?」と問いかける思考癖を身に付けたいものです。