generalistからspecialistへ

一点集中化計画

エンジニアが行動に出る時

シェークスピア氏は言った。転職するかしないか、それが問題だ。 (生きるか死ぬか、それが問題だ。live or die, that’s the question)

この数ヶ月、その事ばかり考える。

倒れて行く戦士達。私と同じ日に入社した同僚は先月転職を表明した。 更にその先月、最も有能なエンジニアが胃腸炎と共に退職した。 私自身も以前から企業のカジュアル面談を複数受けている。

1年前、入社した瞬間に、いかにこの会社がまずいかはすぐに分かった。 バージョン管理しない、自動テストしない、一番歴が長い先輩のIDEがdream weaver。

面接の時githubで管理してるって言ってませんでした?と聞くと、やる予定であってやっているとは言ってない、と。

やるだけやったか

入社当日に退職を決意した訳だが、、否定するだけなら簡単である。 どんな環境でも一定、学ぶべき事柄、自身が活躍するスポットはあるはずで。

自分にできる事は何か。何をすべきか。 現状の分析から入った。

会社は受託メインで売上ているが、自社サービスが少数あり、全売上の2割を占める。社長はどんどん新サービスをリリースしたいとの意向がある。

しかし現状の数字を踏まえるに、サービスの売上のほとんどが、ある1つのアプリに偏っている。

この場合取るべき戦略は確定している。自社サービスに関しては、その1つに全リソースを投下するという事。

だが社長は新しい事をどんどんやりたがる。0 => 1が自分の仕事である、と公言しているように。そして失敗の検証はしない(ここが致命的)。

その新サービスも3種類ぐらいアイデアがあるらしく、同時進行で進めて欲しいと言う。


やばい人だと直感するには十分である。

私は問うた。その3つの内で一番自信があるのはどれなのかと。無論優先順位を付ける為である。 社長答えて曰く「全部」

私「競合はどこで、自社のはどこが優っていて、売れると確信している根拠とかをざっくり教えて下さい」

社長「....そこまで考えてない」

、、

念押しするが、これはマジで開発させようとしている直前の状態での会話である。

今までこれでやって来たらしい。言い返す社員はいなかった。いや、反論を唱える、憂える戦士は去って行った、と表現する方が正しい。

華麗なる丸投げ

私が入社当初に任された仕事は、、その新サービスの改善だった。 開発を進めているアプリがすでにあり、しかも暗礁に乗り上げていると言う。

事情を聞いた私はとにかく辛かった。 しょうもなすぎて、、と言えば他人を貶める気がしてすまない気持ちになるが、、

遠い目になりながら、一部を説明すると、

  • 社長のjust idea状態(<= 重要 = 超危険)のアプリをとにかく早く開発したい。が、社内にリソースはない。最近よく聞くオフショア開発なら安くできるし最高!と思ったらしい。
  • そもそも「仕様」がない。なので「とりあえず作っておいて」で進めたらしい(何を)
  • 後から追加される仕様。依頼したマレーシアの会社のスキルも高くないと発覚するというダブルパンチ
  • 結局頓挫。バグだらけだが無理やりそれらしくさせて納品させた。しかも社長は「完成してないから」という理由で約束の半分の料金しか払わなかった

すさまじい。しかもこの外注先の会社は出る所に出たようで、社長は結局残りの半分を1年後に払っている。

この頓挫したプロジェクトが私の初仕事となった。

人はコードで酔えるか

このプロジェクトのコード解析に入る。フロントはember、frameworkはlaravel。

最初はvueで開発すると言ってたのが、途中でemberに変わったらしい。 (それにOKする弊社もどうかと思うが)

、、

開始5分で吐きそうになる。

controllerはコピペ の連続、共通化は皆無。一部挙動を変更したが、それをコピペ 先全部に反映し切れてない事によるバグ。

ルールがない命名規則、プロジェクト内は不要ファイルやマジックナンバーで溢れかえって、、

1つのメソッドが500行以上というのが一番きつい。しかもその半分は「コメントアウト」という、、

依頼側の指示が破滅的であったかもしれないが、開発者の手元も狂っていたのではないか。

2つが掛け合わさるとこのような相乗効果が生まれるのか、、という絶好の例である。

勝算を確認

私はこのアプリの改善を任された。それはいい。私は開発してそれを売りたいと思う。

しかし「売れるアプリ」を開発したい。マーケティング会社でセールスを数年やって来たので、いくらか売上も気になる所。

しかしこのアプリの挙動を確認して最初に思った事は「こんなの売れる訳ない」

他社が普通にやってて、下手したら無料でできる事を、自社は月額何万も取ってしかも超低機能。速攻会議開いた。開発はやめるべき。もしくはキラー機能のideaはないのかと。

周囲はこのアプリのウリは○○です、と言うが、、いやそんなの他社がやってますけど、、しかも大企業が低価格で。

たくさん同じような商品が並んでて、そこからウチの商品を選ぶ理由はなんですか??

一斉に静まり返る社内、、

スパイラル into hell

すでに開発に入ってしまっているから、リリースしないと勿体ない。 もうこれまでに外注もして、社内エンジニアも数人が参画して1年経つ。

しかし即やめるべきである。単なるサンクコスト。 経営者の力量が分かる判断の一つ。 止血するのか。出血を続けるのか。

別にエンジニアとしては、開発を任されたのだから、ただ仕事をすればいいとも考えられる。

しかし、明らかに売れない(と私は思う)商品を、開発する気にはとてもなれない。

商品が売れなければ会社は儲からない => 儲からなければ開発環境が改善しない、給料が増えない => 採用にお金掛けられない、いい人材が集まらない

売上は全ての職種に直結する。

真っ裸の王様

何よりタチが悪いのは、自身を有名起業家になぞらえている点である。

イーロン、ベゾス、ジョブズ。みんな型破りだ。俺が破天荒なのも同じだ、と。

女性社員と飲みに行った時に「将来経費でロケット買うからな」との発言、 そしてそれを聞いた社員は「何の為に」というつっこみが喉元まで出たという証言もある。

他にも、、

酔って格闘家に喧嘩売って、ボコボコにされたり、 路上で寝て財布無くしたり、 ホテルの備品盗んで部下に返しに行かせたり(本人は「借りた」と主張)。

社長という名刺があるから何とか人は話を聞いてくれる。

井の中の蛙が、お山の大将と悪魔合体した。

そんな感じ。

、、、

別にそれでもいい。

めちゃくちゃ怖い社長よりも、ダメな社長の方が仕事しやすいって面もあると思うから、、

だけど、、

以下の4つをgoodな順に並べた時、どんな順になると思う?

A: 優秀、ハイパフォーマー B: 普通 C: 仕事しない D: 全然仕事できないけど行動しまくる

焦点はC、D。どちらがマシか。

、、

正解は断然C。Dは他人に迷惑掛けるからだ。パフォーマーの足を引っ張る。何もしない方が遥かにマシ。

、、

こんな話はゴマンとある。 書き切れないから、もうここからブレット(箇条書き)にする

自分なら以下のような時、どう行動するかを考えながら読んで欲しい。

蟹工船への乗船リスト

  • 採用ではコードを見ない
    • 理由: エンジニアなんて誰でも同じだと思っているから
    • 証拠: 未経験でも1ヶ月研修したら1人で仕事できると思っているし、それ前提で予定組んでる
  • ITは基本無料だと思っている
    • 理由: 現に世間は無料アプリで溢れているじゃないか
    • 証拠: セキュリティソフトやIDE導入などを進言すると、まず最初に「それは無料か」を聞かれる
  • パフォーマンスの概念がない
    • 理由: そんなの目に見えないよ。それより即効果が出て売上が上がるの、何かない?
    • 証拠: エンジニアに終始話しかけてくる。電話も出るよう促す。リモート禁止。成果を労働時間で測る
    • 証拠: 支給PCはメモリ8GB。基本3年以上前の中古。安さが全て
    • 証拠: また海外に外注しようとしてる。安さが全て。外注管理を計算に入れてない?そんなの気持ちでカバー!
    • 証拠: 採用メディアがマイナビ。安いから!
    • 証拠: 仕事の効率をテーマに、第1 ~ 第4領域の話をするも、全く通じず
  • 開発を知らない開発会社
    • 理由: プログラマなんて誰でもできると思ってるから。ちょっと勉強したらすぐできるようになると思ってるから
    • 証拠: phpの会社なのにC#の案件取って来る。「何でも一緒でしょ?」
  • ブレる
    • 理由: 自分でも自分が何してるか分かってない。短期記憶が2秒
    • 証拠: コロナで手ピカジェル販売がメインに。業種変わった。開発関係なし

ボトルネック

TOC的に言うと、会社の障害は間違いなく彼である。この結論が出た時、私は目を覆った。

開発環境がどれだけ悪くても、未経験の人材ばかりでも、改善の努力はして来た。

すなわち自動テスト導入を促し、勉強会を開き、reviewの文化を取り入れ、評価制度を作って、、

しかし、、、彼がボトルネックと分かった今、どうする事ができよう。 私は社長を変更できない。彼を排除するのが最適解だと分かっていても。 全ての問題の発生源は彼なのである。

ビジネスの格言「会社は社長で全て決まる」は真理である。例えどれだけ社員が優秀だとしても。

メモリやHDDがどれだけ高性能でも、CPUがダメなら、ダメなのである。

再掲: やるだけやったか

しかし彼と会社を全否定する気にはなれない。

これまでそれなりに生き残って来た訳で、今年で8期目になる。 彼の仕事の取り方、進め方、決断で今までやって来たのだろう。

古株の社員もいる。固定された得意先もある。

彼らからしたら、新しく入って来た奴が、

「なんかパフォーマンスとかcircleCIとか、ポモドーロとかメモリ16GBじゃないとかありえんとか言うとる」

って感じなんだろう。

、、、

誰も、何も悪くない。

価値観が、違った。

その一言でまとめたい。


※自身の投稿をback up する目的でここに保存しています。 qiita