ベンチャーに生息する「ベイビーGeek」の生態を知る

警告:
この文書はQiitaに投稿されていた「SIerに生息する「おじさんSE」の生態を知る」のパロディです。
https://megalodon.jp/2019-0911-1119-59/https://qiita.com:443/kyojinogasawara/items/fbc63f1f66b7b7a929bd
(オリジナルは削除されていたので、リンクはウェブ魚拓)
冗談を冗談と理解できない人は、読むことを禁止します。

ここでいうベイビーGeekとは、主にベンチャーに生息する、
・30歳未満で
・レガシーな技術を知らない
・モダンな技術しか知らない
・いきなりコーディングをしており、設計をしない
・現状に不満しかない(常に何かキャリアアップしたくて転職したがっている)
人たちを指す。
決して単に若手のエンジニアを一括りにしているわけではない。
「ベイビーGeek」より良い呼び方があれば、ぜひご提案いただきたい。

第1章 ベイビーGeekの仕事内容

ベイビーGeekは、設計をすることはほぼ無い。
これは現場にもよるので、全く無いというわけではないが、
多くのベイビーGeekは設計はしない。
ではベイビーGeekは何をやっているのかというと、
・思いついた機能をいきなり実装
・テストコードで軽く単体テスト
・気楽にデプロイ
大抵はこの3つになる。
99.9%は自称アジャイルという名のカウボーイコーディングである。
ベイビーGeekはコーディングを担当し、
リファクタリングは数少ないハッカーが担当する。
こういった役割分担が決まっていることが多い。

第2章 ベイビーGeekのスキル

ベイビーGeekが存在するプロジェクトというのは、BtoCのWeb系が多い。
ベンチャー社長が立ち上げたサービスで、新しい技術よりは、社長が最初に使った技術を用いる。
そのため、今までの知見でなんとなく仕事ができてしまう。
ベイビーGeekが現場で求められるスキルとは、たったこれだけしかない。
・ふわっとしたバックログからコードを書いたことのある経験
・テストコードを書いたことのある経験
・最低限のSlack能力
業務知識は今作っているサービスのことだけ知っていればいいし、
1回一連の作業を経験してしまえば、あとはもう、特に勉強をしなくても、
それっぽい仕事をすることは容易である。
アーキテクチャ設計については、大昔に0からサービスを立ち上げてからしばらくご無沙汰か、ちょっとした規模になったベンチャーでキャリアを始めた人であれば、そもそもアーキテクチャについて考えたことがないという人までいる。

第3章 ベイビーGeekを取り巻くテクノロジー技術・知識

【端末】
・端末管理が雑で、与えられた端末はだいたいどこぞの勉強会やカンファレンスでもらったステッカーまみれになる
・OSはMacOSがほとんどで、デュアルディスプレイは4〜5割くらいという印象。スペックは基本的に良い。
 ベイビーGeekはこれでも不満を持つ人が多い。
 なぜなら自宅にもっと良いスペックのPCがあるからだ。

【環境】
・大抵はデザイナーズインテリアという名の滅多に使われない卓球台orハンモックが連なった場所で働く。
端末は無造作にデスク上に放置されている場合が多い。
・インターネット接続は基本的に認められているケースが多く、業務に関係ないSNSへの投稿すら、会社の端末か、自分のスマホですることになる。ベイビーGeekはネットサーフィンできないと死ぬくらいの影響だが、SEにとってはそこまでではない。セキュリティレベルが低い職場だと、怪しいプロキシが立っている場合も…

【プログラム言語】
JavaScript、Ruby、Python、R、Scala、kotlin、swift、golang
知っていてこの辺りまでとなる。
JavaやC#は文法くらいならわかるという人が多く、
COBOL、C++、C、PHP、Perl、Objective-C、.NETあたりは存在価値がわからない人が多い。
なお、JavaScriptを知っていても、ECMAのバージョンや採用しているフレームワークの違いでマサカリを投げ合っている世界である。
また、ベイビーGeekは直接触ることは少ないが、古いバージョンで安定させることを良しとせず、RailsでいうならばGrapeでうまく動いているAPIを、Rails5がリリースされた翌日に全部APIモードで書き直してしまったりする。せいぜい20コミットしかないような怪しい個人の作ったGemまで使うプロジェクトも多く見られる。

【バージョン管理】
大正義GitHubやGitLabの外部サービスで、Gitリポジトリを社内で管理するのは流石に廃れてきた。
Git以外のSCMに関しては、
・知っているし使ったことがある人が2割
・知ってるけど使ったことない人が4割
・何それ?という人が4割
くらいだと思われる。
意外に、Git以外の分散系SCM(MercurialやPerforce Helix)などを知らない人が多い。
また、Gitを使っていても、適切なブランチ管理ができておらず、コンフリクト地獄になっているプロジェクトが多い。
git-flowとgithub-flowで良し悪しを決めるつもりはないが、
分散型で複数人でSCMを使うことの危なさををわからない人が多いのが現状。

【データベース】
ベンチャーはOSS万歳なのでほとんどがMySQLを使っている。
CUIツールとしては、Vimカスタマイズ、Emacs系、VSCodeの3強か。
ベイビーGeekはORマッパーでデータベース処理をコーディングすることがほとんどなため、
SQLは意外と苦手。といっても緊急メンテナンス時に必要に迫られて簡単なDELETE文くらいなら書ける。
ちなみにメンテナンス時に直接DBを更新するときに、バックアップを取ったり、トランザクションをかけて実行結果を確認するという技術を知らないこともある。
商用DBも稀に使われるが、さすがにOracleを知らない人は少ない。
残念なことにSQLServerを含めてOracleよりマイナーなものはほぼ誰も知らない。
NOSQLについては安易に手を出して火だるまになっていることも少なくない。

【APサーバー】
Rubyが人気な兼ね合いでRuby on Railsが人気。
とはいってもこの辺りの選定はスタートアップ時のテックリーダーの専権なので、
NodeやPlay frameworkあたりも普通に見かける。
ベイビーGeekはフレームワークの名前くらいしか知らない。

【オンプレミス/クラウド】
ベイビーGeekは、そもそもオンプレミスでネットワーク設計をしたことがないし
クラウドも普段使っているけどクラウドが何を隠蔽してくれているか知らない。
IaaSの恩恵に預かっているだけで、それ以外は全くわからず、
スイッチ、ルーター、ファイヤーウォールの違いがわからない人も存在する。
そんなわけないだろと思われるかもしれないが本当にいる。
9割方はクラウドだが、そもそもクラウドベンダーに転職するケースも出てきているので、
そういう会社に転職されたベイビーGeekは必死にマスタリングTCPシリーズを読んで、なんとなく理解する。
なお関係ないが専用線やVPNの概念についてもさっぱり分かっていない人が多く、
突っ込まれたらボロが出るので突っ込まないようにしてあげよう。

【コミュニケーション】
Slackが圧倒している。ベイビーGeekの仕事はSlack抜きに語れない。
Slackの使われる用途は本当に幅広く、代表的なものを挙げると
・新機能に関する会話
・単体テストの成否を告げるbotの発言
・バックログ
・手順
・会議のメモ
・勤怠連絡(「今日、遅刻しま〜す」など)
・退職のご挨拶
・その他、プライベートなもの
などとなる。
まさに「神Slack」状態。
しかし、これだけSlackが好きなのにSlack botを書ける人は多くない。
botを使いこなすベイビーGeekは生産性が高いと評価される。
botといえば、イケてるベンチャーのプロジェクトだと、ブランチの作成から、自動テストの結果、デプロイの成否まで通知してくれるbotを見かけることがある。
大抵の場合は最初に作成した人はすでに会社を去っており、中途半端なメンテ状態で放置されている。
そのためちょっと構成を変更すると動かなくなることがあり結局レガシー化していることが多い。
先ほどバージョン管理にGitが使われていると書いたが、
それはあくまでも完成した成果物のみであり、
ベイビーGeekのファイルサーバの個人フォルダには「a.rb」のようなファイルが
大量に転がっている。

【テキストエディタ】
Vimが人気。
VimはSSHと相性がよくカスタマイズ機能も強力なので、
ベンチャー三種の神器(Slack、Vim、オンラインサービス)に数えられる。
基本的にベイビーGeekの生息するベンチャーのプロジェクトではOSにWindowsを使わせてもらえないことがほとんどなのだが、VimはMacでも入っているので安心。
その他だと、Atom、VSCode、Emacsなどが使われる。

【ドキュメント】
もっとも多いのが意外にもExcel。なんだかんだで便利なものは使われてしまう。
大手ベンチャーだとGoogle Driveなどをビジネスプランで使っているところもある
その他便利なOSSを使う人もいるが、結局他の人がそのOSSを持っていないので、PDFに出力してWikiやExcelに貼りつけるみたいな事になる。

他でいえば、KeyNoteは会議資料や夢を書くものとして需要があり、
Pagesはそもそも一度も起動されたことがない。
UMLソフトはastshが好まれるが、そもそもUML設計をしない。

【IDE】
RubyやAndroid案件が多いので、JetBrains製の製品が使われることが多い。
大抵社内のWikiやSlackなどに、ダウンロードURLが書かれている
最近だとCloud9などのクラウドIDEを使うところも。
html、css、JavaScript、シェルは、お気に入りのテキストエディタで書いている人も多い。

【その他】
ベイビーGeekが愛するその他のツール類
・SSH
・colordiff
・調整さん
・携帯のカメラやスクショ

第4章 ベイビーGeekと勉強

ベイビーGeekはあまりコーディング技術以外の勉強をしない。
ウォーターフォールはもちろん、アジャイル宣言やスクラムも知らないし、ネットワーク技術系の記事も読まない。
(たまたまググって引っかかることはあるが、常時活用したりはしない)
プロジェクト管理=ウォーターフォールと思っているし、「アジャイルサムライ」も全く読まない。
それは前述の通り、ベイビーGeekの仕事に必要のないものだからだ。
ただし、ベイビーGeekの中にも、具体的な行動は起こしていないものの、クラウド基盤と機械学習系でイケてる転職できたらいいなと漠然と思っている人は存在する。
そういう人は、ネットワーク本やオライリー本を読んだりして、コーディング系でなくても、勉強する場合もある。
なんとなく今生活できてるからいいや、と思っている人は、
本当に一切勉強しない。

第5章 ベイビーGeekと給与・勤怠

ベイビーGeekは比較的低い給与に甘んじていることが多い。
ベンチャーにおいては格付けランクが「創業者>すごい成果を出した中途採用の人>それ以外」であり、コードを書かせてもSIから転職したできる技術者以下だったりする場合が往々にしてあるのだが、この格付けシステムと、それまでの成果もあるためそれなりの給与となる。
別に生きていくことに困っているわけではないため、十分だと考えて努力をしない。雇う側からしたら、手は動かすけどし品質は悪い、そのためエキスパートの時間をとるタチの悪い要員なので、本音は転職してくれないかなと思われている人も少なくないだろう。
ベイビーGeekの勤怠は比較的ふまじめである。
前述したように、スキルに自意識過剰なので、勤怠なんて大したことないと思っているからだ。
だがここでいう大したことないとはあくまで自己評価の話であり、昼休憩を勝手に延長して午後一の会議に来ない、ダラダラコーディングするなど時間管理が上手い訳ではない。なんでもない日に休みますなどと連絡してくるため、フリーダム精神には溢れていると言える。

第6章 壮年性ベイビーGeek

冒頭でベイビーGeekは30歳未満と書いたが、周りにベイビーGeekしかいないなら、社内の実力者もベイビーGeekに染め上げられてしまう可能性がある。
特に、SI系出身の実力のある技術者にはは気をつけたほうがよい。
知らず知らずのうちに洗脳される可能性があるからだ。

第7章 ベンチャーとベイビーGeekの今後

ここまで長々と読んでくれた人で、ベンチャーやベイビーGeekを知らない、見たことないという人は、「なんで社会で働いてるのにこんなに非常識なの?」と思うかもしれない。
しかし、ベイビーGeekは社会通念を知らなくても、持っているスキルでなんとなく仕事ができてしまうし、お金もそれなりに貰えてしまうのだ。
だから組織で働くためのルールを守ろうとしない。
「SIer崩壊」というセミナーが開かれたのが3.11地震の前日で、
それから随分とベンチャーは持てはやされてきた。最近はGoogleで大手ベンチャー名で検索すると、「某大手ベンチャーを退職しました」など不穏かつ羨ましい記事が出てくる。
ただ、多くのベイビーGeekは今でも生き残っている。
GAFAなど外資の全盛の時期を迎え、ちょっと前の新技術がドッグイヤーで置き換わることも見込まれる中、今いるベンチャーのビジネスモデルが成り立たなくなる可能性が低くないことは確かだが、多くのベイビーGeekは、やばいと思いつつも「なんとかなるんじゃないか」「潰れても次に転職すればいいや」と希望的観測の元に仕事を続けている。
そんなベイビーGeekに、あなたはなりたいだろうか。

この記事が気に入ったらサポートをしてみませんか?