- Published on
エンジニアのタイプはスピード重視派と慎重派とかじゃなく、できる奴とできない奴だけじゃね?
- Authors
- ジャバ・ザ・ハットリ
エンジニアのタイプを表現する時にスピード重視派とか慎重派とかいう表現がしっくりこない。結局はできるか、できないか、だけの差しかないな、という話。
こちらのスタートアップではまっさらのゼロ状態から「明日までに完成させてくれ!」というむちゃな要求がたまにある。投資家との話し合いで「こんなのあったらいいなー」からイキナリ「うちにあるから、明日来いよ。プロトタイプを見せてあげるから(実はまだなにも無い)」と約束してきたりするのだ。そんな大口を叩いてきた結果「おい、頼む!明日までにやってくれ!」となる。
以前はこのイキナリ系仕事が嫌いだったが、いくつかこなすうちにコツが掴めてきて、今ではむしろ好きな部類に入ってきた。
で、先日もそんな企画があってそれに対処した後で感じたのが上記の感想。
その企画は内容と規模的に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 の場合は「明日までにやってくれ」と言われても余計にあせるだけで、いつもの雑な仕事にプラスして雑になっただけの結果だった。
結局はエンジニアのタイプなんてのはそんなにある訳じゃなく、あるのはできる奴とできない奴、ただそれだけだなと身も蓋もない感想を抱いてしまった。
できない奴にはなりたくないのでしっかり技術を身につけとこ、と改めて思った次第。