エンジニアの心得② 矛盾を許容する

記事
学び
こんにちは! ココナラでフリーのプログラマーとして活動しているmei_13と申します。

現在はプログラムの開発に加え、Pythonのレッスンも行っております。
さて、今回は「矛盾を許容する」という話です。

人間は矛盾した存在である

いきなりエンジニアとは全然関係無さそうな主張をしてなんなんだという話ですが、しかしこの「人間は矛盾した存在である」というのはみなさん受け入れてもらえるかと思います。

痩せたいのに食べてしまう、試験に受かりたいのに勉強をさぼってしまう、彼/彼女のことが好きなのに強く当たってしまう...

矛盾の例を挙げるとキリがありません。
私も毎日、早く寝ないといけないのにゲームをしてしまいます。

エンジニアと矛盾と合理性

一方でエンジニアにおいては、合理的であることが求められます。コンピュータは矛盾を理解してはくれず、エンジニアはこの合理性に適用しなければなりません。

しかしながら、この合理性の中に身を置いていると、「自分は合理的な人間だ」と勘違いするようになります。
本来人間である以上、必ず矛盾を持ってはいるはずなのに、それを隠そうとします。
そして、他者にも合理性を求めようとします。

エンジニアは精神を病む人が多いのですが、私はここに原因があると思っています。
自分も含め、人間に合理性を求めるのはそもそも無理があることなのです。

大切なことは、「自分は矛盾した存在なんだ」と自覚することです。
このように自覚することで、あらゆることがうまく回るようになったりもします。

矛盾を許容するメリット

矛盾を許容することで、以下のようなケースにおいて柔軟に物事を考えられるようになります。

ケース1: 突然の仕様変更
エンジニアあるあるで、上流工程やお客様から突然仕様変更を言い渡されることがあります。
これは正直困りますよね。ただ、これも矛盾を許容するのが大事です。
「仕様変更という矛盾は発生するもの」と頭に置いておけば、なるべく拡張性の高いコードを書くようになります。
この「拡張性」というのは、本来矛盾が存在せず、全て合理的に進んだ場合には必要のないものです。それでもコードの拡張性が大事だよというのは、開発の途中で必ず「矛盾」が入り込むからです。
お客様も開発側も人間なので、どこかで矛盾してしまうのは仕方がないことなのです。
これを認め、一種のあきらめをすることで心が少しは楽になるということもあります。

ケース2: 人の書いたコードに不備があり、エラーが発生する
これもエンジニアあるあるじゃないでしょうか。自分のせいじゃないのにとイライラすることが私もあります。
合理的なのは、それを書いた人がコードを修正することだと思います。
ただ、これも矛盾を許容して、これは一種の自然災害だと思いましょう。
大事なことは、その書いた人のことを考えるのではなく、目の前のコードを直すことに専念することです。
自分が書いたコードも、どこかの誰かが修正してくれているかもしれません。


おわりに

エンジニアはまわりとの人間関係に悩むことが多いようです。今向き合っている相手と、そして自分自身は合理的なコンピュータではなく、矛盾だらけの人間だということを念頭に置くと、心が楽になっていくと思います。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら