とある元SEの思考を探る

ひょんなことからとあるICT企業ではたらくことになったなんちゃって元SEがしたためるブログ。主に、政治・経済・社会問題・日常の出来事について発信していきます。お読みいただけたら、感動にむせび泣くほど嬉しいです。よろしくお願いします。


フリーランスエンジニアの実態

設立3年目でまだ軌道に乗ったとはお世辞でも言えない会社で働き始めて半年以上が経ちました。ベンチャーと言えば聞こえが良いですが、会社というものはおしなべて中に入ってみれば泥臭い仕事も多いものです。

そして今日もIT土方としてせっせと仕事をしています。

さて、同じWeb系企業といえども、中身はいろいろあるもので、前職では、業務委託として来てもらっているフリーランスの方とは働くことはなかったのですが、今の会社では、何人かの業務委託の方とお仕事をすることがあります。

そんな中、業務委託の方と仕事をして感じたことを書いてみようと思います。なお、n = 4ぐらいですので、サンプル数は少ないかと思います。

 

業務委託、今の会社では、主に仲介業者を介して紹介を受け、採用するという形がメインです。中には、知人にお願いをして業務委託で働いていただいている方もいますが、今回の話は業者経由で来たフリーランスエンジニアについてです。

フリーランスエンジニアといえば、昨今のエンジニア不足にのっかって時給5000円!など喧伝されていますが、正社員から見たフリーランスエンジニアのイメージは極めて悪いです。

  • 社会人能力が低い
  • 組織に馴染めなかったはぐれもの
  • 技術力が低い
  • 仕事が遅い
  • 責任感がない

などです。

実際、決められた勤務時間に出社できない人、体調不良でいきなり連続で休む人もいました。

技術力に関しても決して高いとは言えません。仕様書を見てもまともに実装できない人がざらにいます。一つ修正依頼をすると、別のバグを生み出してくる人もいます。オブジェクト指向を全く理解していないと思われるコードを書いて来たりします。

エンジニアにとって、プログラミング言語の文法を把握しているのは最低限できて当たり前のこと。その上でより良い設計ができること、仕様を把握して、仕様に不備がある場合や仕様に不整合がある場合はきちんと指摘するというのができるのはプロのエンジニアとして当然のことです。しかし、フリーランスのエンジニアの中にはそれができない人がいます。

それでいて自分はフルスタックエンジニアだとか宣うのですから困ったものです。

 

エンジニアに必要なスキルに「忖度」があります。最近流行りの言葉ですが、エンジニアに限らず忖度は仕事をする上で必要なスキルです。

 

忖度とは何でしょうか。

 

仕事の多くは、指示を受けて行うことが多いかと思いますが、その指示が不十分な場合、不整合な場合はままあります。そういう時に指示者の真意を図る。ことの本質をとらえ、本当にやらなければいけないことは何なのかを見出す。場合によっては指示されたこと以外も必要だと感じたら行う。

 

エンジニアの中には、すぐそこに参考にすべきコードがあるのにオレオレ実装を行ってコードの可読性を低下させたり、移動すべきないコードを勝手に移動したかと思えば、移動すべき時に移動させなかったり、本来あるべき姿は何なのかを考えずにコーディングする人がいます。

こうした独自にコーディングする人は組織の中では使いづらくて仕方がないでしょう。秩序を保ち、忖度してより良い実装をするのが、エンジニアと言いえるでしょう。

 

フリーランスとは聞こは良いかもしれませんが、実態は組織に雇ってもらえなかったはぐれもののケースが多いのではないでしょうか。本当に優秀なエンジニアだったら、経営者が放っておくことがないでしょう。

 

もし、エンジニアでフリーランスとして働くことを考えている人がいたら、一度立ち止まって考えを見直した方が良いです。

フリーランスは技術の切り売りです。

フリーランスでは重要な仕事は任せてもらえません。

フリーランスは良くも悪くも無責任です。

少なくとも、エンジニアとしてのスキルをあげたいのであれば、正社員としてサービスん根幹を為す開発をするべきです。

その責任がエンジニアとして成長させるのだと私は思います。

早稲アカのキャッチコピーに見る危うさ

「天才はいない」

女優、芦田愛菜さんを起用した早稲田アカデミーの広告のキャッチコピーだ。

 

私は、「天才はいる」と考えている。

身近なところから、報道でしか知らない人まで、天才を見てきた。

 

天才の定義とは何か。常人ではなし得ないことをなし得る人のことだと定義したい。

では常人とは何か、という定義に関しては明確にしないが、少し具体的な例を挙げてみたい。

 

例えば、オリンピックで金メダルを獲得できる人はごくわずかだ。この世の中の大多数は、オリンピックで金メダルをとることができない。私は、オリンピックで金メダルを取ることができるような人は天才だと思う。

もし、オリンピックで金メダルをとった人が天才でないと仮定するならば、私のような常人でもオリンピックで金メダルをとることができることを意味する。つまり、誰でもとれることになる。しかし、オリンピックの金メダルの数は決まっているから、誰でもオリンピックの金メダルを獲得することはできない。したがって、オリンピックで気メダルをとることができる人は天才である。

そもそも、一度冷静になって考えてみよう。誰もが皆できるのであれば、それに対して価値はあるのだろうか。多くの人がなし得ないから皆、賞賛するのであって、天才と讃えるのである。価値があるのである。

私は多くの人ができないことを達成してしまう人を天才と呼びたい。

 

結論から言うと、「天才」の定義とは何かという問題に落ち着くのだが、ここでは上記のような定義で話を進めたい。

 

少し、私が見てきた天才を挙げて見たいと思う。

身近な例だが、高校3年生の時のとある河合塾の模試。物理の問題で、高校ではまだ習っていない分野の大問が出題された。電磁気学か何かだったように思う。私は、まだ習っておらず分からないので、解くのを諦めた。しかし、同級生は、なんと6〜7割解いてしまったのだ。同じ物理の授業を受けてきたにもかかわらず、その同級生もまだ習っていないにもかかわらず解けてしまうのだ。

話を聞くと、「ここはこうに決まってるじゃん」と言う。物理は、過去の偉人たちが見つけた法則を元に問題をとく。つまり、その同級生は、その法則を考えて解いてしまったのである。確かに、模試の問題なので、何もないところから法則を見つけるよりは、簡単かもしれない。しかし、翻って考えてみれば、アインシュタインであれ、ファラデーであれ、ボルツマンであれ、過去の偉人たちは物理法則を実験的あるいは理論的に導き出したわけである。だからこそ、後世にまで語り継がれる天才なのである。

この世の中の誰もが努力をすればアインシュタインになれると言うのであれば、冒頭の学習塾はその証明をしてほしい。

 

私がキャッチコピーをつくるならば、「天才はいる。しかしあなたは天才ではない。」あたりだろうか。

なぜなら、本当の天才ならば、こんな広告には微塵も見向きもしないからだ。この広告に少しでもピンときた人は天才ではない。

天才はいると言うことを認めた上で、天才ではない自分はどのようにこの世の中を生きていくかという方がよほど現実的で建設的ではないだろうか。

 

私は、自分ができる精一杯の努力をしても勝てないと思う人に何度も出会ってきた。勉強しかり、スポーツしかりである。その絶望たるや底はなく、沈んで沈んで沈みきって、浮かび上がってこれなくなったことが何度あっただろうか。

それでも私がこうして生きていられるのは、もし自分がこの世界で生きられないのならば、自分と同じような境遇の大多数の常人も生きられないと言うことを意味する。それはつまり、人類が種として繁栄できないこと意味する。現実は、人類はこうして男性35億、女性35億(概算)いて、繁栄していると言っていい数値であろうから、自分のような常人でも息を吸って良いということなのだと思う。

こうして、自分の能力では到底追いつけない天才に出会い、絶望を見ながらも粘り強く生活していく。これこそが、天才ではない私あるいは私たちの取るべき戦略なのではないだろうか。

 

改めて考えてみよう。メダリストが金メダルを取って賞賛されるのは、そして、アインシュタイン相対性理論を発表してノーベル賞を与えられるのは、我々のような常人に成し遂げられなかったことを成し遂げたからである。

だからこそ常人には、価値があるのである。メダリストは多くの人に感動を与える。科学者は発明で生活を豊かにする。常人はその恩恵を与るだけだ。多くの人は世の中をわずかにしか豊かにしない。天才たちの功績で割ったらほぼ0になることもあるかもしれない。それでも、皆生きているのである。何の役にも立たない自分が生きているのである。私は、それだけで価値のあることだと思う。少なくともそう思わないとやっていけない世の中である。

 

「天才はいない。だからあなたも努力すればできる!」という言葉にどれだけの人が苦しめられてきただろうか。「諦めなければ夢は叶う」といったメダリストもいた。そんな成功者たちの言葉の呪縛から常人は解き放たれるべきだ。

 

あなたは天才ではない。

 

でもあなたには価値があるのだ。

私が思う「尊敬」できるエンジニアについて考えてみました

尊敬できるエンジニアはどういうエンジニアかを考えてみました。

私は、エンジニアの判断する上で、知識・スキル・人間性という3つの軸で判断することが多いです。

 

しばしば、知識とスキルの違いが曖昧になりますが、私が思う「ある技術に対して知識がある」とは、「ある技術を使って動くものを作れる」ということを意味します。経験を積めば、様々な技術に触れる機会が多くなるでしょうから、それだけ知識は増えます。概ね、知識とは経験に比例するものだと考えています。

一方、スキルとは、知識を前提として、より良い設計でアプリケーションを作れる度合いだと思っています。例えば、Railsで言えば、controllerにゴリゴリ業務ロジックを書いて動くものを作ることはできます。しかし、より良い設計という観点から言うと、業務ロジックはなるべくmodel側に寄せて、controllerの役割とmodelの役割を明確にし、複雑な業務ロジックをmodelの単体テストで担保できるようにするのがベターと言われています。もっと良い設計があるかもしれませんが、controllerに業務ロジックを書くエンジニアとmodelに委譲するエンジニアであれば、後者の方がスキルのあるエンジニアと言えると思います。

人間性とは、一緒に働こうと思うかどうかです。例えば、同じ会社に勤めていても、頭ごなしにあれやれこれやれ、このようにやれと言ってくる人とは一緒に働きたいと思わないでしょう。一方、「こんなことがやりたいんだけど、手伝って欲しい。。何かいいアイデアはないかな。一緒に考えて欲しい。」と言われるほうが、(少なくとも私にとっては)気分良く仕事ができます。人間性に関しては、個々人に大きく影響するので、私が働きたいと思う人が他の人とって違うかもしれませんので、個人差があるところだと思います。

 

そして、私にとって、尊敬できるかどうかは、「スキル」と「人間性」に大きく依っているのではないかと最近思い始めました。知識が豊富でも保守・運用性のことを考慮せずとりあえず動くものを作るというのは職業エンジニアとして失格だと思います。より良い設計というのは、保守・運用性の高いというのもその要素の一つに挙げられます。

「動くものを作る」というのは、勉強すればできることです。スキルも、勉強すれば向上することですが、動くものを作れたということに満足してしまう場合は、おざなりになってしまうところです。一歩高みを目指すエンジニアにとっては、動くだけに満足せず、どうすれば他の人でも保守しやすいコードになるか、自分以外でも読みやすいコードになるかというのを考えるのは、プロフェッショナルとして尊敬できる点でしょう。

 

ここで、もう一度スキルについて深掘りをしてみたいと思います。

現場では、とにかく早くリリースすることを求められることが多々あります。そのような状況では品質がないがしろにされる場合があります。スキルのあるエンジニアは、それでも、できる限り品質の担保に努めます。つまり、ここのテストコードは今は書く余裕がないけれども、テストがしやすいように、メソッドを少し細かく分け、役割を明確にしておこうとか、ビューに関係のあるコードだからモデルではなくプレゼンテーション層に入れようなど、そうした設計です。フレームワークやライブラリを作るのならともかく、わかりにくいメタプログラミングを多用しないといったことも大事かもしれません。if文を何度もネストしなければならない状態になったら、何かが間違っているかもと思って少し立ち止まって設計を見直すということもするでしょう。

そうした様々な設計を考慮しその上でかつ、超速ですべてのメリットデメリットを考慮してその時点での最適な設計を瞬時に導き出す。さらにその過程も何らかの形で素早く後世に伝えれるようにする。この速度もスキルのあるエンジニアと言えると思います。

本当にスキルのあるエンジニアなら、テストをも求められる短納期で書き切るでしょう。

 

知識は時間をかければ誰しもなんとかなると思います(動くものは作れる)。

しかし、スキルに関しては頭の回転の速さも求められるところです(私にはムリ…)。だからこそ、スキルがあるエンジニアを私は尊敬したくなるのだと思います。

人間性についても、一緒に働きたいかというのも重要な要素です。高慢な態度の人はやはり苦手です。

だから、私は、知識よりも「スキル」と「人間性」が大事だと思います。経験の少ないエンジニアは知識が少ないのはある意味やむを得ません。あらゆる言語に精通して、インフラもフロントエンドも詳しくなるなんていうのは1年で身につけるのはムリだからです。しかし、その中でも常に向上心を持ち、周りのことを考えてコードを書く。これを地道に継続できるエンジニアはたとえ知識が少なくても尊敬できます。

 

今回も、自分への戒めの意味を込めて、もっともっと自分を磨いていきたいという思いを込めて、書かせていただきました。

ここまで読んでいただき、ありがとうございました。

 

関連記事

smartenergy.hateblo.jp