自社サービスの会社に転職して4ヶ月の所感

初めましてワイサイです。

SIerから自社サービスを運営している会社(いわゆるWeb系企業)に2019年3月入社しました。転職して4ヶ月が経って色々と思うことがあるので気持ちの整理も兼ねてこの記事を書こうと思います。

成長のためにも今後定期的に目標や成長具合の確認、技術的な部分もQiitaに載せるようなものでもないものはこちらに記載していこうかなと思っています。

ちなみにQiitaアカウントはこちらになります。

 

転職理由

それまではSIerにいたわけですが、ユーザー企業の言う通りに開発するしかなくシステムに対してこうした方が良いのでは?と感じることがあっても改善出来なかったり、実装がよくないからリファクタリングしようと思ってもユーザーからお金が出るわけもなく対応出来ないなどの葛藤がありました。*1

また、技術的な要素でもプログラミングはオフショアが行うレベルの低いものという意識が根付いてしまっていて、全員PMを目指そうという考え方になっていました。 私自身将来的にPMになることは問題ないかなと思っているのですが、そのためにはある程度の技術力がないといけないと考えているので違和感を強く感じていました。

実際、コーディングのバグが多かったり可読性が低かったりして、開発に時間がかかったり手戻りが発生したりということがあり、このままではやりたいことが実現出来ない。エンジニアとして成長出来ないと感じて、自分が企画段階から口を出せてコーディングにも関われる成長できる環境へ転職しようと考えた結果、今のWeb系企業へ転職しました。

転職してからの成果

転職してからこの4ヶ月でやったことと技術的に経験出来たことをざっくりと。

以前の会社ではコーディングする機会が0だったので、1日の大半をコーディング出来る環境というのは大きいかなと思っています。 家でしかコーディング出来ていないと技術的な成長スピードが遅くなってしまうので、業務としてコーディング出来るというのは転職してよかった点だと思っています。 あとは以前まではオンプレ環境だったので、AWSを普通に使っている環境というのは成長出来る良い機会かなと思います。 クラウドの利点が実際に利用することで見えてきてオンプレでは出来なかったことややりにくかったことが出来るようになって、アプリケーションとして可能性が広がるなぁと感じました。 今後バックエンドエンジニアとして成長していくには、ここの理解は必須かなと思いました。

最近について

強い不安感

最近強い不安を感じています。 具体的には以下2つの観点で、当初4ヶ月くらいの自分に期待していたレベルに達していないと感じるからです。

  • 技術的な成長レベル
  • 中心人物になれていない

どちらの点においても定量的で具体的な目標値はありませんでしたが、漠然とした不安感が段々と出てきて最近ちょっと辛いです。 なのでここの不安を解消するために、具体的にどういう状況なのか、どう改善していけば良いのかをまとめておきたいなぁと思ってこの記事を書いています。

技術面での不安感 

上記二つのうちエンジニアとしては特に技術面での不安感の方が重要だと思うのでこちらから。

転職理由を改めて考えたいのですが、技術的に成長したいと思って転職してきました。 以前の環境では、Javaは6でフレームワークは独自のものでかつ、DI/AOPもなく、POJOでもないフレームワークにベッタベタでテストコードも書いていないような環境でした。

現在はJava8ですがラムダも一切使っていない、フレームワークSeasar2単体テストも書いていないという状況です。

環境だけだと若干現在の方が良い気もしますが、各人のスキル的には以前の環境の方が能力のある方が何人かはいたと思います。 今の現場だとトランザクションもまともに考えられてなかったり、SQLインジェクション出来てしまうようなロジックになっていたりなど正直エンジニアとして疑うスキルの方が多数でそこがすごく気になっています。

スキル面については、Web系企業の方は全員高いと考えていたので、転職したら尊敬出来る人のもと色々と教えていただこうと思っていました。ですのでこのような状態であることがかなりショックでした。*2

またそういう方々が書いたコードですので、可読性や拡張性が低いコードがそこら中に蔓延しています。 共通ロジックをスーパークラスで書いていて、しかもスーパークラスの中でサブクラスによって処理を変えるようなロジックもあったりとこれぞスパゲッティコード!!という状態になっていて笑えます。

その他、APIがフロントをガッチガチに意識されていたり、WebサーバにPHPを利用してAPIで返却した値を色々加工しまくっていたり、DBが正規化されていなかったりと気になるところは盛りだくさんです。

こういう状況ですので、新任者がキャッチアップに苦労したり、ちょっとした修正をするだけでも影響が大きくなりすぎていて対応に時間がかかったりとしている残念な環境になっています。

私がスーパーエンジニアであればそういった状況であってもすぐにキャッチアップして、改善する方向性についてすぐに決めて進んでいっていると思うのですが、残念ながら私にはそこまでのスキルがないので、躓いてしまって思っている以上にコードをかけていないと悩んでいるという状況です。

中心人物になれていない不安感

もう一つは中心人物になれていないという不安感についてです。 上にも書いたように今いるメンバーのスキル面があまりよくない状況なので、その方々が色々決めると技術課題を蓄積していくということから改善するためにも色々と口を出したいのですが、それが出来ていないというストレスがあります。

その理由としては、やはり目に見える成果をみんながわかる形で出していないこと、中途採用がすぐに活躍できる環境がないこと、最後は現状社員ではなく協力会社の方が中心で開発してしまっていることかなと思います。

目に見える成果を出していないというのは自分自身のスキル不足が原因だとは思っています。スキルがあれば渡されたチケットを予定よりも速く完了させてどんどん新しい課題を進めるということが出来たはずですが、それが出来ていないので・・・ ただこういった現場なので、可読性とか拡張性とか意識したオブジェクト指向なコーディグをするというよりは、手続き型な再利用出来ないような(同じようなロジックが至るところにあるような)コーディングを適当にコピーして書いている方が速くて評価されている感が若干あるので、自分だけのせいとも言えないのかなと思います。

中途採用がすぐに活躍出来る環境にないことというのは、どちらかというとのんびりした会社かつ、後述しますが社員の立場が低いので、中途採用であっても即座に中心にはなりにくいのかなと思います。 機会があるたびに自分から色々と口を出したりしていますが、あまり聞いてくれないのと、結局重要な打ち合わせに呼ばれないとか色々あるので、こちらもモチベーションが下がって余計言えなくなっているという感じです。 ここはなんとかしないといけないと思うので、上司と相談ですかね・・・

最後は協力会社の方が中心と言う話ですが、最近まで全ての開発を協力会社さんにお願いしていた状況で、今いる社員も新入社員から協力会社さんに教えていただいたような方なので、社員の立場が低く、技術的なことはすべて協力会社さんが決めているみたいな感じになっています。 ここは会社としても問題だとは多分思っていて、だからこそ私とか中途採用の人を採用してどうにかしようとしているのだとは思います。

今後どうするかどうしたいか

技術は自分で身につける

技術面ですが、他のすごい人から教えてもらうというのは難しそうなので自分で身につけていくしかないと思います。*3 ただし今のままの環境だと成長スピードがかなり遅いと思うので、色々と環境を変えていきたいと思います。

入社してから今のAPIを作り変えることを進言してきたんですが、入れ替えようって話が進み出したので中心となって大改革したいと思っています。

これが進めば技術的にも比較的新しいものを取り入れられるし、自分としても技術選定から立ち上げという重要なフェーズに関われるので成長できるかなと思っています。 *4

ただそこで得られる知識は浅く広くという部分だと思うので、深さをどこかで身につけないといけないなと感じています。 具体的には、デザインパターンなどを身につけて保守性の高いコードを理解したいです。 業務で身につけたかったのですが、独学になってしまうので、OSSを読んで身につける方法に切り替えたいと思います。

また、既存の部分についてはなるべく関わらないようにした方がいいかもしれません。 幸か不幸か協力会社の方々で保守していただいているので、新しく作る部分から関わっていった方が精神衛生的に良いと思うので。 それで許されるならですが、、、

中心人物になるのは諦める

正確にいうと諦めるというかタイミングを待つといった感じでしょうか。 新しくAPIサーバの作り変えがあるはずなので、一旦は既存の部分は無視して無理に関わらなくて良いかなと思います。 一人で変えられることは限られるし、私自身新しい部分に力を入れていきたいので、しょうがないと思うしかないです。

おそらく色々成果を出し続けて入ればそのうち中心人物にはなってくるでしょうし、気長に待とうかなという感じです。

なので周りの雑音を聴かないようにするという今までの経験だとあまりないことをしなきゃいけないのがストレスになりそうですが頑張ります。 難しそうであればまたその時に考えようと思います。

今は技術力を身につける方が優先で、他の人のお手伝いをしている場合ではないことを意識します。

まとめ

入社して4ヶ月が経って余裕が出てきたためか、色々と考えることが多くなりました。 入社前に考えていたよりも自分の成長スピードが遅くて焦っていましたが、自分ができることを一つ一つ解決して成長していこうと思うので、今は焦らずできるところからやっていこうと思います。

あとは見ないフリ聴いていないフリをして雑音を消そうと思います。雑音を聞くことは今回の転職目的とは異なるはずなので、気にしないように意識しようと思います。

また定期的に振り返りをして今年1年間での成長度合いを重要視していこうと思います。 今回は定量的な部分は書きませんでしたが、思う部分はあるので、次回とかにまとめられれば。

*1:ユーザー企業に提案することは出来ますが、利用者の状況が見えにくかったりするので確度の高い提案が出来ないなどの問題で改善しにくいのかなと思います

*2:正直なんのために転職したんだっけ?って考えることがままあります

*3:ただしAWSなどは詳しい方がいらっしゃるので教えてもらいたい

*4:ここに今いる協力会社の方が大きく口を出してきて、思うように進まないようであれば個人としての成長が見えなかったり、会社としての成長もないと思うので、転職も考えようかなと思っています