「技術を持っている」と言う事と「技術を使っている」と言う事の違い

エンジニアの世界では

よく、○○の技術を持っている、経験しているから大丈夫だろう、と言う想定の上で採用活動をする。

だけど、技術を持っている、と言うのは、現在進行形ではない場合もあり、その場合は作業者としては使えるけど、開発チームのリーディングには向かない可能性が高い。

何を言いたいかと言うと、技術の鮮度の問題で

例えば、Rubyであれば、Rubyの最新バージョンが現在2.4で、Railsが5です、と言う時にRuby経験あり。Ruby1.8、Rails2やってました。といった人が来てもある程度は作業は出来るかもしれないけど

Railsの2から5になるまでにどんな変更が入っていて、それによってどんなコーディングをしたらいいのかと言うのが理解出来ていないので、採用をしても最新環境をキャッチアップするまである程度時間がかかる。

と言う話と、過去にRailsをやっていて、なんらかの別のプロジェクトに入り、疎遠になった状態の場合、またRailsをやる環境へ戻ってくるまでの間に、
Railsの最新のキャッチアップが出来ていない=Railsに対するモチベーションが低い
という事が言える。

これが技術を持っている、と言う表現。

技術を使っている

と言うのはそのままで、今現在その技術を使って何かしらやっています、という事。

仕事上のメインのプロジェクトで使っていなくても、常にキャッチアップしており

いつでも使えます、鮮度保ってます、という状態。

少人数のチームで採用をする場合、

特にこの、技術鮮度が新鮮な、「技術を使っている」人材を選ぶ事が重要。

プロダクトには共感があり熱意があるけれど、採用している技術要素についての熱意がなければ

そのプロダクトはエンジニアリングがうまく回らなくなっていく可能性が高い。

若手を採用する場合にも、ポテンシャルの中に、技術要素に対する熱意が持てる人材であるか?というのを含める必要がある。

リソースに余裕があれば、別の技術要素を選定して、といった話もあるかもしれないが、それは別の機会に。

 

野良猫と飼い猫(エンジニアの話)

エンジニアの世界での野良猫と飼い猫の話

どちらが幸せなのか?と言うのは人によってそれぞれだとは思うのだけど、
と言う断り書きをしつつ、ちょっとエンジニアを猫という生き物にたとえてみる。

野良猫(フリーランス・ベンチャー・起業・独立系)

エンジニアの世界だと野良猫はフリーランスや、ベンチャーに勤める、いわゆる大企業ではないところで働くエンジニアだと思っている。

ポイントは

  • 自由(リモートOK)
  • 挑戦が出来る(言語選定・技術選定etc)
  • うまく立ち回ればすごく贅沢が出来る

当然、リスクは多い

  • 車に轢かれることもある(大手競合に目を付けられてフルボッコにされる)
  • ご飯に有り付けないこともある(赤字)
  • 行き倒れる事も多々ある(倒産)

環境としては

mac指定とかはあったりするけれど

それ以外は、プロダクトにコミット出来るのであればなんでも構わない、といった環境が多い。

 

飼い猫(中〜大企業・大手)

飼い猫はエンジニアの世界で例えると、中〜大企業や、大手、Sierなど。

こちらの場合のポイントは

  • 家の中は快適
  • ご飯病院通い完備(保険、福利厚生)
  • 大きな挑戦は出来ない
  • 遊びたくて走り回ったりすると怒られる
  • じわじわと去勢される
    最悪、家に入るときに去勢される(社畜化)
  • 変なタイミングでおやつもらえたりするから、太る(怠ける)

こちらの環境としては

割とwindows指定が多く、さらに開発環境も固定され(java, eclipse only など)、新技術要素を検証するにもネットワークにプロキシがかかっており流行りのサービスや技術を試すためにいらぬ努力をしなければいけない。部門外の技術要素検証とかしようとすると、な、それってどこに必要なんですか?と聞かれる。結果、平のエンジニアは作業員として飼いならされていく。

飼い猫が家の外に飛び出す時

最初から飼い猫の場合、外の世界を知らないので、自分の周りの環境が自分の中の全てだと言う認識のまま生活する事が多い。

飼い猫が突然外に飛び出したくなる理由は、
挑戦して見たい事が出来た・リモートワークって楽そうだけど・起業って憧れる〜・などなど

でも、今のまま、ここにいては何も出来ない。環境を変えなければ!と思い立ち、外の世界に飛び出したりするわけだけど

リスクがあることはあまり意識していない場合があったりする。

リスクを知らないのと、野良猫の世界の厳しさを知らずに飛び出すものだから

野良猫流の立ち回りが出来ずに苦労することになる。

フリーランスは当然繋がりがなければ仕事を探すのにも苦労するだろうし

起業はそもそも会社の運営もしなければいけないので大変。

ベンチャーもリスクは付きまとう。

野良猫を拾った場合(スカウトして社員化)

逆に野良猫をいい子だから、という感じで飼い猫にしようとすると

家の中で退屈すぎてその猫にとっては死ぬほどつまらない人生になるかもしれない。

それが性に合う猫もいるかもしれない。

常に扉とか窓の前で外に出してよ〜と鳴き続けるしかない。

カーテン(プロキシ)がかかってたりしたら、外も見れなくて、
もう飼い主の言う事を聞いてる事がなくなる。

全てがこれに当てはまるわけでは無く・・・

当然飼い猫でも野良っぽくやらせてもらえるところもあるし

その逆もあったりするし

一概にこの2種類でまとめきれるものではないと言うのは理解しているつもり。

今は、そこそこの規模の家(企業)で、野良っぽくても良いよ、と言うところがちらほら出てきた。

これは、半飼い猫のように、たまに家に帰ってきて飼い主と遊び、またどこかへ出かけて外で遊び、と言うように

両者のいいとこ取りが出来る環境も少しではあるが出来つつあるように思う。

願わくば、そのような良い環境に自分も収まりたいと思うばかりである。

まとめ?

最近、両者の環境にほぼ同時に触れる機会があり

その事で、より自分がどちら向きかを肌で感じた。

新技術要素の検証とかは家でやれよ、とか言う意見がありそうだし、プロキシはセキュリティのために仕方ない、とか各言語ごとの特性があるゆえ、特性に合わせた環境を採用している、といった話とか十分承知の上で、それでも描いて見たくて書いてる次第。

野良猫寄りの人間から見た、エンジニアの世界の話。

 

 

gooseをdockerイメージにした話

gooseというgoで書かれたDBマイグレーションツールがあり、これだけを含んだDockerイメージを作った。
hub.docker.comにアップしてあるので
でという感じで実行出来る。