こんにちは!2022年9月より株式会社クラウドワークスのエンジニアとして働いている得能です!
2023年2月末で入社から半年経過する節目にエンジニアブログを書かせていただくことになりました!
今日はクラウドワークスに入社してからの半年を振り返っていきます。また、
- 前職の有給休暇中に業務委託で働かせていただいた経験
- 大阪からリモートワークで東京のメンバーと仕事をした経験
- オフィス勤務から完全リモートワークに変わっての感想
など私ならではのエピソードも話していくので、転職する際の参考にしていただければと思います!
自己紹介
改めて、2022年9月から働いている得能です。富山県出身で現在は大阪からフルリモートワークで働いています。
クラウドワークスではcrowdworks.jpの不正利用の防止を目的とするチームで働いています。
前職では京都のベンチャー企業にて自社Webサービスの開発(Ruby on Rails)、情シス業務(Google Apps ScriptやPythonでスクリプト書いたり、Google WorkspaceやFileMakerで社内環境構築をしたりいろいろ)などをやっていました!
クラウドワークスに入社を決めた理由
転職したいなー、と思った時に、前職ではできないことが経験できる環境に変えたい、と思い - 大きなプロダクトや組織があること - サービスの価値を高める開発に注力できる環境であること
を転職先を選ぶ基準に設定していました。クラウドワークスはこれらの基準を満たしていたことに加えて以下の2点に魅力を感じて入社を決めました。
今まで経験したことのない組織文化に興味を持った
後述する「働いてみての感想・気づき」でも細かく触れていきますが、クラウドワークスの組織文化が自分が今まで経験したどの会社にもないものだったので興味を持ちました。 入社前の接点は面接や内定者面談だけでしたが、社員間の距離の近さ、楽しく働ける社風がずば抜けていました。
今後も変化が起きるであろう働き方の分野に間違いなく関われると感じた
コロナ禍を通じてリモートワーク導入が進むなど大きな変化があったことは記憶に新しいですが、今後も働き方の変化は進んでいくと考えていました。 副業プラットフォームを提供する企業として実績があり、かつ、それを軸として副業価値の提供手段の拡大、働き方をより良くするツールなどに投資をしているクラウドワークスで働くことで、今後も続くであろう働き方の変化の流れに必ず絡んでいくことができる、と考えました。
入社後の仕事内容
サービスウォークスルーで見つけた不具合の修正
入社後はまずサービスウォークスルー(ステージング環境でcrowdworks.jpを触りサービスを理解するオンボーディング活動の一環)を実施しました。一通りサービスを触りながら、サービスのいいところ、イケてないところなどをリストアップしていきます。エンジニアの場合は同時にどうコードが動いているのかを見ながら進めていきます。
ウォークスルー終了後は自分が見つけた課題点の修正実装を行いました。crowdworks.jpほど大きなプロダクトを扱うのは初めてだったので初リリース作業はめちゃくちゃ緊張しました(;・∀・)笑
提供終了予定の機能に関するコード削除のための調査・実装
サービスウォークスルー終了後はプロジェクトにjoinします! 私のクラウドワークスでの最初のプロジェクト業務は提供終了予定の機能に関するコード削除のための調査・実装でした。
crowdworks.jpの取引処理に深く根付いた機能だったので、crowdworks.jpでの取引のパターンや仕組みをちゃんと理解しないとなにもわからないですし、加えて、万が一修正に失敗するとお客様の取引に影響が出る可能性もありましたので、とにかくじっくり慎重にコードを読み進めました。(;・∀・)
この取り組みでは、リーディング8割、コード削除2割くらいであんまりコードは書いてないのですが、 crowdworks.jpについての理解やコードを読む力が身につきましたし、なにより、良いコードの書き方や設計について考える機会にもなりました。 別の実装タスクが回ってきてコードを書いたときにこの経験がめっちゃ生きてるなー、と感じたのでけっこう経験値溜まってると思います。( ̄ー ̄)
新規開発、リファクタリング、設計などを扱う書籍、学ぶ方法は世の中にたくさんありますが、機能の削除に触れられるコンテンツ、機会ってなかなかないんじゃないかなと思います。そんな貴重な経験ができる機会をいただけたのはかなり幸運だったかなと思っています。あざざます…!
その他…もりだくさん
その他にもcrowdworks.jpの利用体験をよくするための改善実装などたくさんの経験をさせていただきました!
働いてみての感想や気づき
働きやすいよう柔軟に対応してもらえた
1日でも早く働きたいと思い、前の職場から許可をいただいた上で、前職の有給休暇中から業務委託としてjoinさせていただきました。(なので正確には9月入社ではないんですよね) 働きたいという意欲を尊重いただき、柔軟に業務委託契約で対応してもらえたのは非常に助かりました。
ちなみに、業務委託期間中の稼働記録は弊社のサービスであるクラウドテックを使いますので、自社サービスの勉強になります(・∀・)
コード読むの大変
大変だろうなぁ、と思っていましたがやっぱり大変でした笑 crowdworks.jp立ち上げから約10年間いろんな方々の加筆、いろんな施策が積み重なっているのでボリュームがすごいのと、実装時期によって書き方に差異があったりするので読むだけでも大変です。
前職でのWebサービス開発ではrails newでプロジェクト生成時から携わることが多く、他の誰かが書いた超巨大コードに触れる業務経験がなかったのも苦労した要因かな、と思います。
毎日先輩との1on1のありがたみ
入社後しばらくはメンターとなる先輩と毎日1on1をする機会をいただいていましたので、毎日出てくる疑問点を確認したり、逆に先輩の方から気になったことやアドバイスなどをしていただきました。 自分は割とネガティブな人間なので不安ばかり漏らしていたかもしれません(笑)。嫌な顔ひとつせず質問、相談に乗ってくださった先輩に感謝しかありません。m(_ _;)m
ちなみにですが、クラウドワークスでは予定さえあいていれば役職など関係なく自由に1on1を設定してもよい文化があります。
「自然体で働ける会社」であること
今思うとめちゃくちゃ申し訳ないのですが、入社直後のクラウドワークスの印象は「ゆるい会社」でした。
と言うのも、自分はこれまでの社会人経験から、業務をうまく回していくためには人や組織をピリッと締め上げる必要があるといった考えを持っていたのですが、クラウドワークスはそんな常識の真逆を行っていたからです。(・・;)
「社員間の距離が近い」を謳っている組織でも、役職や年齢が違うとどうしても関係性に少し緊張感や距離感があるものです。しかし、クラウドワークスではそれをあまり感じません。 オンラインでの全社会議で役員が登壇した時に、コメント用に開かれているSlack上で社員から愛称で呼ばれるシーンがあるくらいに距離が近いです。
また、毎月行われる会議でのチームごとの成果発表の際に、(チームによりますが)資料にみんなが大好きなアニメ画像やネタ画像などが使われていました。今まで会議ではピリピリした感じを持ったことはあったものの、資料を見ておもしろい!!楽しい!!とは感じたのは初めての経験でした。
最初は今までの自分の常識と違いすぎたために、仕事ゆえの緊張感がある状態の対義語として「ゆるい会社」というレッテルを貼っていました。 しかし、クラウドワークスで働きながら仕事観について考えていくうちに、クラウドワークスは「自然体で働ける会社」なのだと考え直しました。
自分がこれまで必要と感じていたピリピリ感は、安定して成果を出す、だらける社員を出さないことを目的に多くの会社や人が採用したマネジメント手法から生まれた社風のひとつにすぎません。 クラウドワークスではそれよりも個々人がありのままの姿(=自然体)で働けるようにして力を最大限に発揮できることを重視して、それにあった社風を選択していると解釈しています。ありのままの自分で働ける会社、とても素晴らしいことではありませんか!
仮にこれで成果が出ていなければ「ゆるい会社」だと言われそうですが、成果が出て組織も機能しているので「自然体で働ける会社」という表現になるかと思います。 ただ、今の社風は自律的に働く、成果を出せるメンバーがいるからこそ機能しているものであるとも考えています。自分もその一員である以上、今の社風を維持できる働き、成果を出せるよう頑張っていきたいというお気持ちです。
人生初の完全フルリモートワークの感想
前職でも何度かリモートワークはやってはいたのですが、入社時からずっとの完全フルリモートワークは初体験でした。
出社するのと生産性は変わらない!!
どうなるかな…と思っていましたが、普通に稼働ができているので生産性なども問題なかったと思います!(後述しますが慣れるまでにはちょっと苦労しました) リモートワークに必要なツール(Slack、Google Meetなど)や文化(チャット文化、気軽に質問ができる社風など)が揃っているので、何ら不自由なく業務に取り組むことができました。
もちろん、直接顔を合わせて話ができる方が有利な場面もありますが、エンジニアの場合、自宅で自分好みの開発環境を構築できる、開発に集中しやすいといったメリットが大きいため、むしろ生産性はプラスかもしれません。 自宅のディスプレイを増やそうか…PCチェアをもっといいものに…と考える楽しみが増えたのも個人的には満足度高いです。
でも慣れるまでには少し苦労した!その理由…
オフィス勤務のときは気軽に世間話や質問をしに行けていたのですが、いざリモートワークになると「相手の時間を奪ってしまうのではないか」という感覚になってなかなか声をかけにくかったです。質問Welcome!!な雰囲気を作っていただいていたのにその点はちょっと申し訳なかったです。 これまで相手を理解するための情報として、無意識に対面で得られる情報(雰囲気や仕草が該当するのかな?)を参考にしていたのかもしれませんね。
これはあくまでも私個人の感覚なのですべての方には当てはまらないとは思いますが、一応参考情報として頭の片隅に置いていただければと思います!
チーム唯一の関西在住エンジニアとして働いてみて
実は開発チームの中で唯一関西在住エンジニアとして働いています。というか、crowdworks.jpの開発に携わってる社員の中でも唯一の関西メンバーですね(・・;) さてはて、どうなるかな…と思って入社しましたが問題なく働くことができました!
恵比寿本社に行く機会があるのでメンバーとちゃんと会える
社長の吉田からクラウドワークスの歴史やビジョンなどについて直接説明を受けるカルチャーブック説明会というイベントがあり、新入社員は全員必ず恵比寿本社に出社して参加する事になっているので、そのタイミングでチームメンバーや同期メンバーと顔を合わせることができます。私のときは夜にチームキックオフ会も開いていただきました。感謝ァ…m(_ _;)m
仕事終わりに飲みには行けないけど…
さすがに仕事終わりにいっしょに飲みに行くことはできません。私は飲む習慣がなかったので寂しさはなかったですが、どうしても飲みたくなったときはオンライン飲み会を誘ってみるのもいいかもしれません。気軽にお誘いができる社風、それがクラウドワークス(・∀・)
大阪オフィスがある!他部署の方と繋がれる!
実は大阪の心斎橋にクラウドワークスの大阪営業所があります。どうしても出社して働きたい…という場合はそちらに出社も可能です!
現在はcrowdworks.jpのメンバーはいないのですが、クラウドテックの営業メンバーが毎日出社して働いています。 他部署の方と関わりを持てる、他事業の話を聞けるのは逆にチャンスでもあります。クラウドテックのメンバーにはかなり優しく接していただきました、ありがとうございますm(_ _;)m
あと、椅子の座り心地がよかったです(・∀・)こういうのは地味に大事…
ということで、実は関西圏でも余裕で働けます!!
入社前に知りたかった、やっておけばよかったこと
ドメイン駆動設計(DDD)は少し学んでおいたほうがいいかも
ここで必要と感じている範囲はDDDの戦術的要素のみ、いわゆる軽量DDDができるくらいを指してます。特に純粋なRails Wayに沿っての開発しか経験したことがない方は学んでおいたほうがいいかと思います。
crowdworks.jpのコードの中ではdomain、context、repositoryといったワードがけっこう飛び交ってます。Rails Wayでの開発経験、理解だけでは設計の理解に苦労すると思います。 これらの考え方はDDDでなくても学べるとは思いますが、自分のこれまでの経験ではRuby on Railsでの開発経験からのステップアップとしてDDDを学んだことでこれらの知識がスゥーッと入ってきた感じだったので、学習の順序としてはいいのかな、と思いました。
DDDといえばエヴァンス本、IDDD本が有名ですが、最初に読むにはかなりハードルが高いのでドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本、またはドメイン駆動設計 モデリング/実装ガイドがおすすめです。
私は一応入社前にはドメイン駆動設計入門を簡単に読んではいたのですがもう少し勉強しておけばよかったなと思っています。
クレジットカード決済の仕組みについて知っておきたかった
クレジットカード決済処理に関するコードを確認することが度々あるのですが、そもそも決済の仕組みをあまりよく理解していなかったのでコードを理解するのにも苦労しました。
3Dセキュア、オーソリ、キャプチャなどの用語がわかる、ライブラリなどで実装経験があると不正利用対策チームでは即戦力になれます、いや、ほんとに。
簿記2級持ってるからお金まわりは余裕だぜ!(𓁹‿𓁹)と思って入社したら痛い目みたので是非参考にしてくださいm(_ _;)m
今後クラウドワークスで学んでいきたいこと
サービスを持続的に成長させていくことができる設計
crowdworks.jpのコードは約10年の歴史があるためどうしてもいくつかの技術的負債が存在しています。 前職では「とにかく早く作る、早く立ち上げる」ことを大切にしてコードを書いていましたが、技術的負債となっているコード、設計を目の当たりにした時に「早いだけではダメなんだ」と実感しました。
別チームの方で負債解消のために動いてくれていますが、その様子を見たり、自分でも設計を勉強したりして持続的な成長に耐えられる開発を実現するための知恵をつけたいと思います。
まわりを観察して組織がどう動いているのかを見たい
チームが目的を達成するためにどう動くか、動かすかといったマネジメント的なことにも興味があるので、組織の動きを観察してプロジェクトの成功に向けてどう動いていくのかを学びたいと思います。
(他社もそうなのかもしれませんが)クラウドワークスではプロジェクトチームの立ち上げから実行、達成の動きが比較的短いスパンで行われる感じなので、人の選定、開発開始までの動き、完成までのフローなどをたくさん見ることができそうでたくさん学べそうです。 ただ、フルリモートワークで働いているので、どのようにして観測していこうか…というのが今後の課題です(;・∀・)
まとめ
唯一の大阪在住、初めてのフルリモートワークなどいろいろありましたが、問題なく働くことができています。また、半年間で多くのことを経験、学ばせていただきました。クラウドワークスに転職して心の底から嬉しく感じています!
クラウドワークスのエンジニア職に少しでも興味がでてきた方はぜひお問い合わせください! また、私のように遠方から参画している者もおりますので、関東圏以外の方からのお問い合わせもお待ちしております!