はてなキーワード: Githubとは
友人のベンチャー経営者から、界隈では有名なエンジニアが社内にいるものの、半年以上仕事をしている様子がないのだがどうしたら良いかと相談を受けた(普通のエンジニアは仕事した分だけGitHubの画面が緑になるらしい?が、真っ白のままだそうだ)
ベンチャーなので人の入れ替わりも多いが、入社から退社までその人を見たことがない人もいるレベルで幽霊社員化しているらしい
もしクビにするとブログやSNSにどう書かれるかわからないとか、エンジニア界隈で変な悪評が立つのを嫌がって会社としてもクビにできないとのこと
だが、スターエンジニアと一緒に仕事をできると思って入社してきた人にとっては期待はずれで、社内の士気は下がり切っていると聞いて頭を抱えてしまった
その場で良いアドバイスさえもできなかったが、どうするのが正解なんだろうか
例えばInstagramやFacebookに近しいものとか。
インフラはできればAWSで作る。Firebase(NoSQL)で作ってAWS(RDS)に移行するなどできればもはや完璧。
フロントはWebでもモバイルでもいいけど、WebであればReact, Vue、モバイルであればFlutter, Swiftを使う。
WebであればSSL化、モバイルであればApp Storeに掲載までは必須。実績として見れられるものがあることが大事。
ここまでが最短で半年くらい。
あとはこれを材料にフリーランスを探せば良い。やったことないけどココナラを挟むという人もいるらしい。
これだけの実績があれば月単価50万なら案件ゴロゴロ見つかる。
いきなり60(年720)は見つからなくとも、50スタートで経験積めば60はすぐにいく。
なんだかんだ人が足りないというところは山ほどある。
社内もやってるSEだけどわかる
それらに加えて、
自社の業界、お客の業界の法改正とかも同じように法令読んだり大きめなニュースがあれば確認して、
セキュリティやコンプラ系のニュースがあれば役員に訊かれる前に資料集めて(某中古車屋のLINE対策とかも聞かれたりする知るか)、
あとは税務年金保険関係のニュースもざっと目を通して毎年の作業や計画に支障がないか確認して、
それら全部システムに絡めてレポートして、要件定義から見積りからスケジュールに落とし込んでコーディングもクラウドインフラの作業もほとんど担当に自分の名前を書きこんで、
テストも組んでリリースしてCI組んでコードいじってGithubにいくつか色付けて派遣の予算を計画に落とし込んでQAに答えて、
社内のエンドユーザからはやれWindows動かんMac動かんLinuxての家でやってみたいおうちのPCにWiFiつなげたい変な請求の画面でた空調服いくらすんの家のドアフォンこわれた車動かしといて、に全部対応して
ってのやってる
各分野ではそれぞれ数年に一度くらいかも知れんけど、一人の人間が同時に関わっている分野がいくつもあるわけで、それらの掛け算で結局はもっと頻繁に新しいことに対応していく必要があるでしょ。
たとえばGitHub自体の変化はそれほどでもなくても、まさかGitHubだけを使って仕事をしている人がいるわけじゃないだろうし、それは言語にせよ何にせよ同じなわけで。
言語が PHP → Perl → Ruby → Python と変わるのと、 SVN → GitHub の変化と、AWSとかのクラウド環境の変化と、Dockerなどの仮想環境の変化と、OSやエディタの変化と、そういうのが並行して起こっているわけで。たとえば C/C++ をずっとやっている人だって規格や処理系自体の変化についていかなくちゃいけないし。
法改正を開発フローに例えるならば、「SVNでのコード管理は来年から処分対象になります。年内にGithubに移行するように。」とお達しが出るようなもの。
それくらいなら別によくあるというか。
とかもあったな。
法改正と大きく違うところは
緊急性と知らないといけない程度の問題
法改正は
「今までのやり方が違法になりました。(インボイス制度、金商法改正、税法改正...)新しいやり方に移行しないと行政処分受けますよ。」
という空気感なところ。
「次のプロジェクトからはGitにしてみよう、ネットに情報上がってきたしだんだんマスターしていってね。」
で良いけど法改正だとそうは行かない。
IT技術に関しては最低限は概要の知識さえあれば大丈夫だけど、
法改正を開発フローに例えるならば、「SVNでのコード管理は来年から処分対象になります。年内にGithubに移行するように。」とお達しが出るようなもの。
キャッチアップに対する緊急性と具体的に知らないといけない程度が違う。
最近は最前線から離れててあんまり追えてないけど、現役のときの2008年くらいから10年くらいの間で、仕事のやり方や設計の考え方が大きく変わったIT技術要素で、いまぱっと思い浮かぶのはこんな感じかな。
分野にもよるし、調査して試作した結果自分の業務には採用しなかった技術とかもある。流行ると思って使えるようになったけど流行らなかった技術を入れるとたぶんもっとある。
あと、新機種が出てOSが新しくなったり、ミドルウェアの新バージョン対応、テスト手法の進化もけっこうカロリー高いけどここには書いてない。
「自分はフロントエンド専門でReactしかやらない」みたいに分野を絞れば大分減るけど、その技術が何年持つかわからないから普通はリスクヘッジのために他の技術も齧らざるを得ないし、バックエンドとかの人と議論するのに結局他分野の知識もそれなりに必要。
NoSQL(memcached, Redis, Cassandra)
クラウドアーキテクチャ、XaaS(AWS, Google Cloud, MicrosoftAzure)
CI/CD(Travis CI, CircleCI, Jenkins)
トランスパイラ(Browserify, webpack, CoffeeScript, TypeScript)
型システム(Rust, TypeScript, Haskell)
オーケストレーション(Ansible, Kubernetes, Terraform)
機械学習(Python, MATLAB, 線形代数等数学知識)
SPA(React, AngularJS, Ember.js, Vue.js)
3Dゲームエンジン(Unreal Engine無償化、Unity5)の他分野への普及
GraphQL
機械学習ライブラリ(Tensorflow, PyTorch, Chainer)
Jupyter Notebook
NFT