IT系エンジニアの思考パターンや特徴について




僕は現役のITエンジニアとして働いています。ウェブアプリケーションのサーバーサイド開発がメインで、フロントエンドは趣味でやっています。

さて、IT系エンジニアの知り合い・同僚・上司などを見ていると、共通した思考パターンや似ている点があることに気が付きました。そこでこの記事では、エンジニアの思考パターンや特徴について僕が現場で感じたことを紹介したいと思います。

異常なまでに繊細であり、細かいところに気を配る

エンジニアと言うと内向的な人が多いイメージはありませんか?このイメージはおおよそ当たっているように思います。それも当然で、エンジニアの仕事というのは非常に細かい作業が多いのです。

例えば、ウェブアプリケーション開発では各種設計を行った後にプログラミングで機能を実装していくわけですが、プログラミングというのは1文字間違えただけでエラーが出て動かなくなってしまいます。半角の空白と全角の空白を間違えただけでも正しく動作しないのです。

また、データベースの設計を間違えてしまうと後になって大規模な改修・修正が必要になることもあります。大雑把に設計してしまうと後で大変なことになってしまうのです。そのため、エンジニアという人種は細かいところまでこだわり抜くアーティスト的な資質がある人が多いように思います。

大規模な開発を行う場合、ソースコードで利用する変数名や関数名、コメントなどにも気を配らないとやはり後になって手間が発生してしまいます。そういう繊細さがあるエンジニアは重宝されますし、作業効率が結果として上がるので優秀であると呼ぶことができます。

ロジカルさだけではなく、繊細な感性を併せ持つ

エンジニアという仕事には、ロジカルシンキング力が求められるというイメージがある方も多いのではないでしょうか。それは全くもって正しいです。

ネットワークやハードウェア、ソフトウェアなど、IT関連の技術はすべてシステムを構築することによって稼働しています。そしてシステムというのは、何らかのトリガーを元に何らかの動作をするという論理構造によって構築されているのです。

そのため、ロジカルに仕組みを考えていく力はエンジニアの資質として大切なものであるのは、昔も今も変わりません。しかし、最近はロジカルな力だけでは良いエンジニアとは呼べない時代になってきています。

何故かと言うと世の中が製品に対して、使ったときの気持ちよさ(UX:ユーザーエクスペリエンス)を求めるようになってきているからです。だからこそ、デザイナー的な視点が重要になっています。

そしてユーザーエクスペリエンスを最大限に発揮するためには、機能だけではなくデザインの視点が重要になります。例えばiPhoneが全く同じ機能を持ったまま、いびつな形で変な色をしたごちゃごちゃしたデバイスになってしまえば、恐らく売れないようになると思います。

それは、洗練されたデザインがiPhoneを利用したときの気持ちよさ(意識的であれ無意識的であれ)に大きく寄与しているからなのです。ここで、デザインならデザイナーに任せればいいじゃないかと思う人もいるでしょう。しかし、それが違うのです。

特にウェブアプリやiPhoneアプリなどソフトウェア開発の場合、機能とデザインは分離して考えられるものではありません。例えば、ユーザーエクスペリエンスの設計において、

  • どのボタンを押したら
  • どのように処理が行われて
  • どのようなフィードバックが返ってきて
  • どのような動作をするのか

といったことを考えていきます。そして優れたユーザーエクスペリエンスのソフトウェアはこれらを一貫したフローとして最適化しています。

中身を見るとわかるように、アプリ内のボタンやフィードバック(テキスト表示やポップアップウィンドウなど)はデザイナーの得意とする領域ですが、処理や動作はエンジニアが得意とする領域です。このデザイナー的領域とエンジニア的領域を一貫して作り上げていくことが求められているのが現在のソフトウェア開発です。

そのため、エンジニアであってもユーザーエクスペリエンスを意識しながらエンジニアリング・デザインの両視点で見ていくことが重要なのです。

大勢の飲み会はあまり好きじゃない人が多い

上でも少し触れましたが、エンジニアは内向的な人が多いので大勢で飲みに行くのが好きじゃない人が多いように思います。そのかわり、少人数で飲みに行って技術の話や人生の深い話をじっくりとするのが好きな人が多い印象です。

また、エンジニアの世界は常に新しい情報を追わなければいけません。技術がオープンソース化されていて世界中から常時アクセスできる中では、すぐに既存の技術が陳腐化されていくからです。

そのため、エンジニアとしてやっていける人は勉強好きでストイックな人が多いように思います。最先端の技術の話を振って全く知らないよという人はあまり見かけません。そのため、飲み会に行くくらいだったら家に帰って自分の好きなことを勉強したいと思う人も多いのです。(僕もそのタイプです)

繰り返しの作業をひたすら嫌う

エンジニアが最も重視するものの一つは、いかに効率的に動作するシステムをつくりあげるかということです。システムを作り、便利な世の中を作るというのが我々の使命だからです。

そのため、エンジニアは繰り返しの作業をとにかく嫌います。例えば、100枚の封筒にひたすら印鑑を押していく作業などは苦痛です。こういう作業をしているとき、エンジニアの人は「関数を作ってループで回したい」とか「機械をつくってやらせたい」ということを考えています。

合理的でないことが嫌いで、自由な人が多い

また、エンジニアは合理的に考える人が多く、自由な人が多いです。これはデザイナーやアーティストにも似ているかもしれません。

エンジニアは仕組みをつくることがメインの仕事なので「なんでわざわざ出社しなければいけないのか」「このミーティングに意味があるのか」といったことを一つひとつ考えて、合理的でないと判断すれば時にはルールを破ることもあります。

これは会社によっては問題になるかもしれませんが、僕はある程度認めてほしいなあとエンジニアの立場として思っています。そもそも、ハードウェア型の社会では工場にみんな同じ時間に来て、同じように作業をすることで生産数の見通しが立ち効率的に利益を出すことができました。

しかし、ソフトウェア型の社会に移行したことで、より重要なのは多様な人とコラボレーションしながらアイディアを出していくことになりました。

数人で開発したアプリケーションが、数百人で開発したアプリケーションに勝つということは当たり前のようにあるのです。ハードウェア型産業では、従業員が10人が20人になれば作れる数も2倍になりましたが、ソフトウェア型産業ではそうはなりません。

組織を運営する上でルールは必要ですが、程よい感じにゆるくしておかないと優秀なエンジニアは逃げていってしまうというのがあります。服装などもそうで、スーツを強要する会社に優秀なエンジニアが行くイメージがありません。

エンジニアがスーツを着る合理的な理由がないため、きっと社員の評価や社内ルールも感覚で決めてるんだろうなぁと想像してしまうからです。とにかく優秀なエンジニアがほしければ、ある程度ルールをゆるくして自由にやらせる環境をつくることがベストだと思います。

最後に

エンジニアという職種は少し特殊なため、戸惑うかもしれません。僕らは効率性をひたすら考える仕事であるため、ついつい気を抜くと普段の生活でもその考え方を当てはめてしまいがちです。

人生を効率で考えるのは好きではありません。何もせずにぼーっとする時間や、好きな人と一緒にいる時間など、一見無駄に見える時間にこそ幸福が詰まっていると思うからです。人間的な深みを持つには、効率性を全く考慮せずに動くことも大切なのです。

だからこそ、エンジニアは専門職ですがより幅広い経験や教養を持った人に価値が出てくると思います。そんなわけで僕はアートの勉強をしつつ、何かしらの作品を残したいなあと思うのでした。