2019-01-02

向いていないならSEを辞めよう

お前は絶望的にプログラミングに向いてないから諦めて刺身にタンポポ乗せる仕事でもやってろ がバズってるようで、私もかねてから考えてることをちょっと発信してみようと思う。匿名での投稿にはなるが、私は日本国外大手企業フルスタックエンジニアをしている。

私の主観では世の中の人の99.9%はプログラミングに向いていない。もしかしたら、9をもうひとつ増やしてもいいかもしれない。それくらいプログラミングに向いている人は希少だと思う。
ある程度数学の素養があったりする人の方がプログラミングに向いているというけど、理系でもプログラミングが苦手な人は多くいる。どういった人がプログラミングに向いているのか、もしくは向いていないのかという点については、この投稿では特に言及しない。

この投稿プログラミングに向いていないのにやらざるを得ない環境にいて無理をしている人に向けて書いている。

自分高校時代の友人が仕事プログラミングを始めたけど、ボロボロになって仕事を変えるという姿をいくつか見てきた。以前の職場にも、経験者として入ってきてはいるが、向いてないなあと思うような人物を何人か見てきている。また、大学在籍時にTAとしてプログラミングを教えた経験上、向いていない学生というのも多く見てきた。この記事では、そういった人たちがプログラミングを諦めて他の道へ早く進めるように、私の意見を書き連ねていこうと思う。

こういった人々がプログラマとして多く採用されている環境では、本当に優秀なプログラマというのが少ないので、以下に書き連ねるような問題点はあまり可視化されてこない。ただ、こういう人が集まってプロジェクトを進めている環境では、プログラマとしての仕事は全員にとって辛いもののように思える。仕事は難解だが、納期関係残業が多くなり、精神を擦り減らしながら仕事を進める。反して、プログラミングに向いている人にとってプログラムを書く仕事というのは、美しいプログラムを書くことで自己肯定感を得ることができるという点で天職なのである

私の経験

プログラミングに向いている人は、簡潔なコードを短時間で仕上げてくる。読んでいて疑問に思いそうなところに対しては適切にコメントがなされていて、システムデザインも適切である

対して、向いていない人は時間をかけて煩雑コードを仕上げてくる。本人も「動けばいいや」程度の意識しか無い(私の推測だが、時間がかかっているので次の段階へ進むことしか考えられていない)ので、コードは読みにくく、洗練されていない。

こういった傾向は私が観測してきた範囲内でのことでしかないのかもしれないが、おおよそ一般的に当てはまると考えている。これを前提にこの先の内容を書いていくので、納得などをできない方はここで読むのをやめてほしい。それでは、向いていない人のもたらす問題点について書いていこうと思う。



生産性10倍以上違う

向いている人のコードシンプルであるがゆえに、バグが入り込みにくく、コードレビューもすんなりと終わる。対して、向いていない人はコードを仕上げるまでに時間がかかるだけでなく完成度も低いので、レビュー段階でコメントが付きやすく、多くの修正必要になってくる。また、コード自体煩雑になる傾向が多く、そういった部分にバグが混入しやすい。

向いている人にとっては早く問題なく終わる仕事が、向いていない人にとっては時間がかかり、不確実な結果を出すことになりがちである

他人に任せた仕事アウトプットを見て、自分実装していたらもっと上手く速く出来ると思うことは稀ではない。実際にバグが混入して対応する可能性、コードレビューにかかる工数、そういった点を考慮すると、生産性10倍以上違うのではないかと思う。

周囲との兼ね合い


正直に言うと、プログラミングに向いていない人が書いてくるコードは見ていて辛い。仕事場合、そういった人の書いてきたコード100%美しい状態に達していなくてもマージせざるを得ない場合もある。私は整ったコードだけをマージしたいのだが、コードレビュー時間がかかるほどマージコンフリクトが発生しやすく、他の変更との競合も発生しうること、また全体の納期の兼ね合いやタスク依存性を考えて、早くマージせざるを得ないという状況になりやすい。

こうしてコードベースが汚くなっていく。

簡単に言うと、向いている人の場合は「成果9:技術負債1」程度で変更を加えていくのに対し、向いていない人は「成果7:技術負債3」程度の変更が最初コミットされ、この段階での技術負債割合を減らすためにコードレビューをじっくりしていく程の余裕が無い場合が多いということだ。もちろん、これはプロジェクトの内容に依存するということは言うまでもない。

そして、途中から入ってきた優秀な人材コードを見て萎えるのである。「いや、僕もその辺のコードはあまり良くないとは思っているんだけど、事情があってね」なんてことを苦笑いしながら、説明とも言えない説明をすることになる。

向いている人がコードを書けない

向いていない人がプロジェクトで多くなってくると地獄である本来、簡潔で完璧コードを書ける人がコードレビューをする側へと回らざるを得ない状況になってしまうからである本来コードを書くことに専念した場合に、向いていない人と比べて10倍の生産性を発揮する人材が、数人の向いていない人を管理することに忙殺されてしまうのである

結果として、プロジェクト全体での生産性は落ちる。

まとめ

しかしたらあなたの周囲にはいいかもしれない「デキるプログラマー」に任せれば、あなた仕事は一瞬でより美しく完成させられます。出来ない人は精神と肉体を擦り減らしながらプログラムを書いている傍ら、本当に出来る人たちは楽しみながら完璧コードを仕上げていきます

無理してそこで働く必要はあるか?向いていないのであれば、新しい仕事を探した方が身のためだ。特に1020年先のキャリアを考える上で、あなたの輝ける未来は今のレール上には無いのではないか。今は目の前の仕事忙殺されているかもしれないが、これを機に考え直してほしい。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん