見出し画像

社内転職をしたので2018年度下半期ふりかえり

2018年度の下半期は社内転職をしてからいろいろなことがあったので、ふりかえらないのは勿体ない。と思った。
一日使ってふりかえりをして書こう。



社内転職をした

自分から希望を出して(いろいろあったが)、大規模なアプリ開発からインフラのクラウドネイティブな領域に移籍した。
前にいたチームも素晴らしいチームだった。本当に好きだった。

どんな理由だったかちゃんと整理して思い出そう。

新しい技術に触れる機会が減った
一番の理由。
巨大なシステムの開発には時間がかかるし、同じことの繰り返しになりがちになる。
同じJavaでの開発を続けていく中でもいろいろなプラクティスは試す価値があるし、心躍るものだけれど、純粋に「新しい技術」に触れたかった。

「コンテナ」を学んだ方がよさそうだと感じていた
しきりに「コンテナ」を耳にするし、アプリケーションの開発をこの先もするのであれば「コンテナ」はどうやら身に着けておいた方がよさそうだ、と思っていた。
正直、当時はKubernetesは名前しか知らなかったし、クラウドネイティブもSREもなんもわかってなかった。(今もワカラナイ)

自分に立場があっていないと思った
ほとんどアプリを書けない自分が「社員だから」「中堅の年次だから」みたいな理由だけで、新人さんやパートナーさんに指示を出したりするリーダーのような立場になっていた。
私は「コードを書いたことがない」人にはリーダーやマネジメントをして欲しくないと思っている。
このままではいつか自分が同じような存在になりそうだと感じたので、これ以上いるべきではないと思った。
SIerだから、難しいのかもしれないけれど。

これは「自分が嫌だから」という理由。

若い人の感性の成長の妨げになると思った
↑のように新人さんや若い人が、ロクにアプリを書けない自分の指示やレビューに接するのは、その人たちの成長に良くない影響を与えると感じた。

↑と似てるが、これは「第三者のため」という理由。(たぶん)

インフラに比べれば、アプリはまだ独学の余地があると思った
ほとんど書けないとは言っても少しは書いていたわけで、仮に離れてもアプリケーションはまだ「学び方マッタクワカラナイ」とまではいかないので、なんとかなるかなと思った。
独学と言っても最近はWebに情報が溢れているし、対話を求めるなら社外の勉強会に行けば第三者の感性を得ることができそうだと希望的観測を持っていた。



移籍後の主な出来事

10~11月
 ・移籍した
 ・Docker、Kubernetesなどの新しい技術に出会う
 ・メンバーが普通に登壇してる環境が初めてでビビる
 ・アウトプットしようと思ってQiitaにメモを書き始める
12月
 ・JapanConteinerDaysに参加してワクワクする
 ・下期の目標が思いつかず、ハンズオンやりまーすって言ってしまう
 ・外部で登壇してみない?と言われ、やってみますって言ってしまう
 ・個人開発できる人になりたくて、とりあえずgithubに草を生やし始める
1月
 ・チームにドラッカー風エクササイズを持ち込んでみる
 ・勉強会やってみない?と言われ、やってみますって言ってしまう
 ・Node.jsでお天気アプリでも作ってみる
 ・pythonに入門し始める
 ・Webの記事書かない?と言われ、さすがに溢れそうなので断る
2月
 ・初めて在宅勤務した
 ・ハンズオンやるよ~って業務連絡を書いて手が震える
 ・登壇するよ~って業務連絡を書いて手が震える
 ・外部イベントに登壇する
3月
 ・勉強会を開く
 ・ハンズオンを開く
 ・Webの記事を書いてみる(チームで分担した)
 ・社外のエンジニアのコミュニティの活動に初めて参加してみた



心に残ったことを詳細にふりかえる(技術)

Docker
一番面白い。
コンテナ?聞いたことある(笑)みたいな感じだったので、Dockerを使えばアプリが一瞬で上がってビビった。
とは言え最初は便利な面しか見えていなかったけど、Dockerだけで済ませるには巨大システムの場合そうはいかなそう。
なので、Kubernetes学ばざるを得ない気はしている。

使うだけなら簡単だけど、コンテナランタイムとか中身のことも追ってみようと思う。
面白いし、上位ランタイムがkubeletと通信することだけ考えても、いずれは学ぶ必要が出てきそう。

コンテナ自身のことも追ってみようと思ってLXCの勉強も始めてみたが、想像以上にガチなインフラの話ばかり出てきてちょっと苦労している。
どうしよう。

Kubernetes
一番ワカラナイ。
まず入門の敷居が高いと思う。

クラスタ、マスターノード、ワーカーノード、API、Kubelet、そして主要なオブジェクトたち、Pod、Deployment、Route、Ingress、ReplicaSet、Svc、…今までと全く世界が違うので、受け入れるのがとても疲れる。

高度に抽象化されたインフラの上でアプリを動かすのは快感だけど、その中身がいろいろ頑張ってるのは、当たり前だけど難しいなあという感想。

どう考えてもKubernetesを自社で運用するような業務は発生しないと思う。
けど、Kubernetesのことある程度知っておかないとEKSも、GKEも、AKSも、Openshiftも、「なんだかよくわからないけど触れるよ」って感じになっちゃう気がしてそれは嫌なので勉強している。
面白いし。

学習コスト高いのはみんな言ってるけど、学んで損は無いと思ってる。
学習しやすいように更に抽象化された何かが出てくるとしたら、それってもうマネージドサービスなんじゃないかな?と思うので。

パブリッククラウド、マネージドサービスたち
はじめはGCPのComputeEngineから入った。(無料枠につられて)
本当にボタンポチーでサーバが上がって、ものの数分でシステム組めるようになっててビビった。
もう、データセンターに行かなくていいんだ。

ただ、これらを使って何も起きない状態で運用するだけならこの先の時代は正直「誰でもいい」になりかねない気はするので、マネージドされてる元のことも少しは知っておこうと思った。

今は、実際の需要量を考えるにAWSの方が先なのかなあと思ってそちらを触っている。
Azureは全く触ってない。

OpenShift
簡単なアプリなら、Redhatオフィシャルのイメージからコンテナ、Pod作ってからは「create route」1クリックで済むのは驚きを通り越して絶句した。嘘。声出た。

Pod増減とかRouteとか、1クリックでできちゃうから「大したことしてないんじゃないの?」って感覚がマヒしてくる。
でも、本当に運用する人の気持ちになったら、そう思えるツールは良いツールなのかも。
そうじゃないかも。わからん。

あと、UIがカッコイイ。

Python
何か新しく言語を覚えるならPythonなのかな~と思って手を付けた。
最初は「未だに2系と3系のアプリが混在して溢れてるのか~…」と思って良いイメージが無かったが、やってるうちに好きになってきた。

JavaとJavaScriptしか触ってこなかった故かもしれないが、はじめは
 ・特別な工夫をしなくてもコードが短く書ける
 ・インデントが死ぬほど大事
 ・真偽の判定になんでも突っ込める(注意は必要だが)
みたいなところに戸惑ったと同時に面白く感じた。

続けていくうちに、基本的な処理(スライスとか)をはじめに、文字の操作の強さを実感して好きになってきた。

スクレイピングしてみたいと思ったのでそこ辺りをコードを書いてみよう。



心に残ったことを詳細にふりかえる(技術以外)

チームに思ういろいろなこと
自分で社内転職してきたとは言え、最初は心細かった。
優秀な人たちばかりなので、声を掛けることもエネルギーを使った。
どんなチームでも慣れるまで多少必要なのは仕方ない。

でも、
 ・「やってみよう」という姿勢を阻害しない、後押ししてくれる
 ・求めれば真摯にアドバイスをくれる
 ・あくまで「何が正しいか」ではなく「個人の意見」をくれる
 ・レビューやMTGの目的を見失わない
こういったリスペクトが根底にあるメンバーばかりで、とても助けられた。
本当に感謝でいっぱい。ありがとう。

みんなスキルが高いので教わってばかりだが、4月以降は自分でもチームに貢献していきたい。
そのことは「次にやっていきたいこと」に書く。

勉強会とか、ハンズオンとか
めっちゃ楽しかった。
最初は「無茶やろ…」と思ったけど、なんとかなった。
資料作ってたりする中で「あれ?これってどうなんだっけ?」ってなって自分の勉強にもなるし。
あと、仲間が増えるし。

外部のイベントに登壇した
めっちゃ楽しかった。
最初は「いや絶対無理だろ…」と思ったけど、なんとかなった。
「自分が面白いと思ったことなんでもいいよ」って言われたので、本当に細かいネタを話してみた。
刺さる人がいたかわからないのでどっちかというと自己満足だけど。

社外のエンジニアのコミュニティのイベントに参加してみた
だいぶ勇気を必要としたが、最近はイベントへの参加手続きも楽になってることもあって踏み出した。
いざ参加してみたら面白くて、今後もいろんなところに行ってみる。
同じ領域の仕事をしてても全く違う観点を持ってる人もいるし、逆に「あるある~」みたいな話もできるし。

あと、勉強会とかに行けば下手したら2時間で、自分が一日独学するより多くの知見を得られる。
特に、ハンズオン。

勉強会をやってくれる人たちはみんな神様なのかな。
ありがとうございます。



次にやっていきたいこと(技術)

Kubernetes
体系的にも基礎的な部分を学ぶ。クラスタ組む練習をもう少ししてから、Kubernetes the hard wayやる。(ヤバそうだからやめた方がいいかな…)

他は、何が流行って何が廃れるのかわからないので…。

Docker
もう少し進んで、中身の理解をいっぱいする。
具体的にはDockerEngineAPI、コンテナランタイム。
OCI。CRI。

Podman
たぶん使えるようにしておいた方がいい気はする。
ランタイムとか仕組みは違うけど、操作としては今のところDockerの主要コマンドをサポートしてるし、わかりやすい。

gVisor
ランタイムをわざわざここに挙げるかはともかく、話を聞いてる限りでは流行る要素しかなさそう。

ゲストカーネルみたいな形で?
仮想マシン並の分離性があって?
そのうえ速い?

Openshift
SIerのようなスタイルでKubernetesを取り入れるならこれなのだろうか。
Kubernetesと並行して、公式のトレーニングページとかをやっていく。

Openshiftは、UIがカッコイイのでいじってて楽しい。
あと、Podの増減が一瞬でできて、何かを成したような気分に浸れる。

パブリッククラウド
まずはAWSにする。
EC2、ECS、EKS、Fargate。(EC2と、ECSはもう触ってはいるけど)
アプリはコンテナイメージさえあれば、ECSやEKSでポチポチやって手軽に立てられるようにしよう。
次点は、GCPで。

Python
Pythonに限らないけど…毎日、無意味でないコミットをすることを目標にしよう。
とりあえず、自分の興味あるサイトとかでスクレイピング掛けられるようにしてみよう。
アプリケーションの方は、一つのことをやってるうちにまた別の「やりたいこと」が出てくるから、これくらい決めとけば困らない気がする。



次にやっていきたいこと(技術以外)

チームふりかえりを立ち上げよう
今のチームのメンバーはスキルが高くリスペクトしている&教わることばかりだけど、知識や感情を共有する、ということにはそこまで注力していないと思っている。

まずは定期的なチームふりかえりを立ち上げたいと思っている。
そこでいろいろな共有ができると良いし、そこでの話からActionとして別の場や取り組みが生まれれば、それはそれで素晴らしいと思う。

幸い、「ふりかえりをやりたい」と言ったら二つ返事でOKを貰えた。
ただし、まずは「なぜふりかえりをやりたいか?」を共有してから始めることにしよう。

新しく来る人がいたら、安心感を提供する
新しい人が来るのか知らないが、もし来た時はその人が安心できるような振る舞いを心がける。
十分、心理的安全性は高いと思うが、新しく来る場合はある程度心細いと思うので。
 ・「ふりかえり」のような不安材料を吐き出せる仕組みを作っておく
 ・「わからない」と言えることを示す
 ・こちらから迷惑でない程度に雑談を仕掛ける(やりすぎかも)

リスペクトと、アサーティブなコミュニケーションを心がける
雑談するにも議論するにも、まずは相手の意見を聞き、理解してから、自分の意見を述べること。
時に対立することがあっても、批判ではなく「私はこう思う」という主張をすること。
自分の伝えたいことが齟齬無く伝わるように努力すること。時間が掛かってもいい、と思う。
「ありがとう」を忘れないこと。

書いたには書いたけど、今の自分にはまだまだ出来ていないので、少しでもそうなれるように頑張る。
↑の自分の理想に向けて、努力することが大事。
さらに雑談のしやすさも両立したい。難しい。

自分に対して「やりたいこと・学びたい技術」を抑制しない
自分が「これ触ってみたいな」と思ったら、できる限りすぐにそうさせてあげること。
そうでないと、いつまで経っても手が付けられない、ことが多い。

「アレを先に片付けておこう…」とか思ったら「今、この瞬間にすべきか?」を自分に問うて、答えがNoならやりたいことをやる。
「やりたい」と思ったその瞬間の感性を大事にしてあげる。

もちろん、全てにおいてそうするわけにはいかないと思う。
でも、学ぶことが楽しくなってきたばかりなので、まだしばらくは自分を解放することを大事にしたい。
その方が楽しく学び続けられると思う。



その他の雑感

ふりかえりしてると多少なりとも「自分の成長」が実感できる。
クソ雑魚エンジニアだけど、無駄に自信出てくる。
でも、それはそれで新しいことを始めるために必要なものだと思ってる。

書いてて、思った以上にコンテナ好きみたい。
どっちかというと、コンテナを本番運用するためにいろいろ考えるより、コンテナだけ探求する方が好きだけど…それだと、たぶんダメだよって言われそう。



最後に

新しい環境に来たのでそのことを中心に書いていますが、前のチームもとてもとても良いチームでした。
本当にいろいろなことを教わりました。

今のチームからはたくさんのスペクタクルな体験をもらって最高です。
これからも楽しませてください。
今後は私も貢献したいと思います。

前にいたチームのメンバーと、今のチームのメンバー両方に感謝。

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