見出し画像

Professionalなエンジニアって? プロってなんだっけ? 2年目のエンジニアへ

「エンジニアって何勉強すればいいですか?」「ソフトウェアの開発の方法とか教えてください」などなど新人さんに聞かれることが多くなってきました。

いつもその場で行き当たりばったりで話すので... ここらで一度基本的な「プロのエンジニアとは」をまとめてみようかなと。

1年目だとすべてが初めてなので闇雲にガムシャラに頑張れるとは思うのですが、2~3年目くらいになると「あれ?」と思うことが多くなってきます。 ここにまとめた内容は、その「あれ?」の Answer の1つとして書きました。 1年目の新人には少し難しいかもしれないのでタイトルは "2年目" としてます。 新人でも大学などでインターンなどやってきた方には別にこの内容話しても良いかもしれないですが、真っさらの新人に話してもあまり現実味もってくれないかもしれません...

・・・

そもそもプロ(Professional)って?

2年目のエンジニアさん、あなたたちはプロですか? なんて、急に 「プロ」 っていわれても何のことやら...

ということで、プロとは何か?から

Wikipediaより
「プロ」は、本来の意味は「職業上の」で、その分野で生計を立てていることを言い、「公言する、標榜する」が語源である。対義語はアマチュア (英:Amateur)。類義語にエキスパート (熟練していること 英:Expert、対義語は 英:Inexpert )、スペシャリスト(特化していること 英:Specialist、対義語は 英:Generalist )がある。

その通りですね... すごい Wikipedia 笑

本質的には、仕事をしてお金をもらう=生計を立てる のが プロ です。

スキルの高い低いではなくて、スキルや知識は関係なく。お金をもらっている(それで生計を立てている)のが "プロ" で、もらっていないのが "アマ" です。

スキルが関係ないとは言いつつも、お金をもらって仕事をするプロフェッショナルには、社会的な責任や世間体、または、fireされずお金をもらい続けてご飯を食べ続けるため、自身のスキル・専門性を磨き続けてそれを実践していく必要があります。 そういう活動の結果としてわれわれプロは、高いスキル・専門性と実行力を必然的に持つ必要はあったりします。

でも、基本的には、スキルや知識はプロかそうじゃないかに関係ないです。

とはいえ! プロにはプロの行動規範というのがあって、常に専門性を高め、その分野の発展に努め、世の中をよりよくしていく使命があります。長くなるので最後に書きます。

アマチュアの中には異常に高い専門性やスキルを持った方もいて、Webサイトとか見ているとプロとしては凹むこともありますが(💦) そもそもプロの定義は 「お金をもらって生計を立てること」 なのでそこを気にする必要はありません。 プロにはプロのやり方があるのです。

例えば、「時間がないから」、自分ほど上手にできないけど、誰かに頼まざるを得ないってこともありますよね。 そういう場合に仕事を引き受けてくれるプロもいます。 そういうプロは、専門性が高いというより、高いタイムマネジメントスキルをつかって価値を生み出してます。

プロが何者かわかったところで次の話題の 「エンジニアとは何か?」 です。

・・・

エンジニアってなんだっけ?

わたしはエンジニアなのでエンジニアリングについて書きますが、きっとこの話は他分野でも通じることだと思います。たぶん。たぶん。

さて、エンジニアリングを実践するのがエンジニアです。

では エンジニアリング とは何かですが、エンジニアリングじゃないものは何か?を考えるとわかってきそうです。

エンジニアリング vs. サイエンス

サイエンスとは理学です。 ある現象があったときに「なぜそれが起きたのか?」という真実を追求することに価値があります。 真実を追求するためには金も時間もいとめをつけません。 大事なのは「真実」。 それこそがサイエンスであり理学です。

エンジニアリングとは工学です。 ある現象があったときに「その現象を使って何か他のことできないかな?」という何かに役立てることに価値があります。 役に立つことをするためには 早く、安く、できること、つまり、効率や効果が大事になってきます。 1億円かけて10円の利益しかでないようなモノは許されません。 56億7千万年かからないとわからない真実もなかなか受け入れがたく 早く・安く・うまい のが大事です。

あらためてエンジニアとは?

さまざまな道具や知識(コンピュータ、数学、国語、化学など)を駆使して、効率的に、世の中の役に立つ何かを実現するのがエンジニアの仕事です。

真実を闇雲に追い求めるのはエンジニアではないです。それは学者です。
役に立たない、効率的ではない、ただ技術力を高めるのもエンジニアではないです。 それは単なるスペシャリストです。 バランスよく成果、または、効果を出せるのがエンジニアです。

ということでプロのエンジニアとは?

技術を使って効率よくお金をかせぐ…… という、なんか夢のない定義になりそうですが......

でも、そういうことです。

自分の生活、家族や、趣味や、仕事や、仕事の中でも得意不得意があったり、やりたい・やりたくないがあったり、好きな上司や後輩がいてその人のために頑張ってみたり、嫌いな上司がいたり、でも、生計を立ていくためには、それらをすべて飲み込んだうえで効率的に、自分の専門性を活かして継続的に世の中の役に立っていかないといけないのです。

この時、お金というのは、世の中に価値を提供した対価としてもらえるものです。

2年目の… という書き出しでしたがもはや何年目でもいいのですが... プロとして活躍する期間はとても長いです。 これから何十年もプロ生活をしていく必要があります。

ミッキーマウスは、アニメーションで多い枚数を素早く描くために 丸 で描きやすいデザインになっているのだとか。アメコミのヒーローが全身タイツ(失礼)なのは服のシワを書かなくて済むようにだとか。都市伝説なのか知りませんが... どちらにせよ描きやすさとデザインが両立しています。 こういうのがまさにプロの仕事です。

プロというのは、趣味で徹夜で何かして華々しく散る一発屋とはちがって、長い健全な生活の一部として活動していくことです。

途中でつぶれないように効率よくやっていきましょう!

・・・

蛇足:とはいえ、われわれ Professional です!!

少し優しめに書きはしましたが、とはいえ、われわれはプロフェッショナルなのです。 プロとして恥ずかしくない行動は必要です。

実はソフトウェアエンジニアには倫理や行動規範というものが存在しています。 これは IEEE/ACM というところが定めたもので、あまり知られていないのですが、ぜったいに見ておいた方がいいです。

Software Engineering Code of Ethics
https://www.computer.org/web/education/code-of-ethics

日本語訳してくださった方がいたのでそこから少しだけ抜粋:

ソフトウェア・エンジニアは......尊敬に値する専門職の仕事とするよう最大限の努力を投じなければならない。社会の人々の健康,安全,福利に対する責務に従い,ソフトウェア・エンジニアは以下の8原則を遵守すべきである:

1 公共性‐ソフトウェア・エンジニアは公共の利益と調和するよう行動すべきである。
2 顧客ならびに雇用者‐ソフトウェア・エンジニアは,公共の利益と調和しながら,顧客と雇用者の最高の利益を実現するよう行動すべきである。
3 製品‐ソフトウェア・エンジニアは,その製品と,製品に関する変更が,専門家として可能な限り最高の基準に合致していることを確保すべきである。
4 判断‐ソフトウェア・エンジニアは専門家としての判断において誠実さと独立性を維持すべきである。
5 管理‐ソフトウェア・エンジニアリングの管理者とリーダーは,ソフトウェア開発の管理ならびにソフトウェア・メンテナンスの管理に対する倫理的アプローチに賛同し,それを推し進めるべきである。
6 専門職‐ソフトウェア・エンジニアは公共の利益と調和するよう,その専門職の倫理性と評判を高めていくべきである。
7 職業上の同僚‐ソフトウェア・エンジニアは他のソフトウェア・エンジニアに対して公正で協力的であるべきである。
8 自己の向上‐ソフトウェア・エンジニアは自己の専門職実務に関する生涯続く学習に参加し,かつその専門職実務に対する倫理的アプローチを推し進めるべきである。

うん、わたしも、いつまでも、がんばらないと(苦笑)

この記事が気に入ったらサポートをしてみませんか?