ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと流れ着いたソフトウェアエンジニアのブログ

エンジニアのタイプはスピード重視派と慎重派とかじゃなく、できる奴とできない奴だけじゃね?

エンジニアのタイプを表現する時にスピード重視派とか慎重派とかいう表現がしっくりこない。結局はできるか、できないか、だけの差しかないな、という話。

こちらのスタートアップではまっさらのゼロ状態から「明日までに完成させてくれ!」というむちゃな要求がたまにある。投資家との話し合いで「こんなのあったらいいなー」からイキナリ「うちにあるから、明日来いよ。プロトタイプを見せてあげるから(実はまだなにも無い)」と約束してきたりするのだ。そんな大口を叩いてきた結果「おい、頼む!明日までにやってくれ!」となる。

以前はこのイキナリ系仕事が嫌いだったが、いくつかこなすうちにコツが掴めてきて、今ではむしろ好きな部類に入ってきた。

で、先日もそんな企画があってそれに対処した後で感じたのが上記の感想。

その企画は内容と規模的に3人構成で明日までに完成できる、となった。私はAWSのサーバーとインフラまわり、バックエンドとAPIの設計を行うことになった。
問題はフロントエンドだ。フロントエンドの機能は大きく2つに分けられる。とても1人では明日までに完成できそうにないので、2人に割り振って実行することになった。担当したその2人をここではAとBとする。

プロジェクトマネージャー曰く、Aは慎重派でしっかりテストコード書いてちゃんとデバッグして時間がかかっても丁寧な仕事をする慎重派。
Bはスピード重視で多少のバグはあってもちゃっちゃと素早く仕事をこなすスピード重視派。

エンジニア目線で言うとAとの仕事の方が断然に楽だった。これは全てのエンジニアに共通することだと思う。だれも雑な仕事を好む奴はいない。どんなに早くやっても、バグを残してサッサと家に帰られて、その後に問題を発見した時の腹立たしさは強烈だ。普段から慎重派のAとの仕事はいいな、と感じていた。
ところがプロジェクトマネージャーの立場からすれば多少荒削りでもプロジェクトが目に見えて完了していくBのスピードを好んでしまう気持ちも分かる。だいたい細かいバグやコード品質にまで目を光らせなければ、総じて「早くやってくれる」というのは頼りになるのだ。

とにかくそのプロジェクトマネージャーはAとBに「ジャバ・ザ・ハットリ(私のこと)は午後の4時ぐらいにはサーバーが立ち上がってAPIも完成すると言っている。それに合わせてフロントエンドを完成させて、一通りのテストぐらいはできるようにしてくれ。」と言った。

午後4時になって、3人のエンジニアが集まった。慎重派のAの機能はほぼ完成していた。しかしスピード重視派のはずのBの機能はまだ半分ぐらいしかできていなかった。
コード品質はAのはほぼ手直しの必要無しでよくできていた。
一方Bの方はバグが連発して、ほぼ動かなかった。その後はAがBの担当を手伝ってなんとかプロトタイプを完成させた。

チームでやってることなので、誰もいちいちBを責めたりはしない。しかし誰の目から見ても、その技術力の差は明らかだった。

Aのことを「慎重派」とか言っても、それはAがそう判断したから、慎重にしているだけだ。テストコードは必要だし、コード品質を保つために多少の時間を要しても書いていたのだ。「明日までにやってくれ」と言われたら、当然ギアチェンジして最速で完了させてしまう。
Bはスピード重視派とかではなく、単にしっかりオブジェクト思考設計を考慮した質の高いコードを書くスキルが足りてなかっただけだ。往々にして深く考えてない方がザーっと雑なコード書いて、完成が早い。しかしその質はそれ相応でしかない。
だからBの場合は「明日までにやってくれ」と言われても余計にあせるだけで、いつもの雑な仕事にプラスして雑になっただけの結果だった。

結局はエンジニアのタイプなんてのはそんなにある訳じゃなく、あるのはできる奴とできない奴、ただそれだけだなと身も蓋もない感想を抱いてしまった。

できない奴にはなりたくないのでしっかり技術を身につけとこ、と改めて思った次第。
 
 
tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com