クラウド ワークス施策チームの神山です。クラウド ワークスでは主にRuby とJavaScript を書いています。
3月でちょうど一年経ったので、入社前と比較して実際どうだったかを書きました。
目次
入社するまでの経歴
主なトピックス
10年規模のサービスは大変
大型な機能開発の連続
Vue.js, ドメイン 駆動設計, スクラム に触れた
チーム開発の有り難みを感じる日々
フルフレ ックス、フルリモートという働きやすい環境
人が良い
逆に就職して大変だったこと
まとめ
入社するまでの経歴
現在僕は27歳でエンジニアは約6年やっています。
新卒時はWEBメディアを主軸とする設立二期目のスタートアップで自社サービスの開発に従事していました。開発は主にRuby (Ruby on Rails )を使って行い、フロントエンドの一部をReactで書いていました。
そこで丸二年働いたあとフリーランス エンジニアとなりました。案件を受注して納品するような、いわゆる請負契約の仕事がほとんどでした。フリーランス の期間も主にRuby とJavaScript を使った開発をしておりました。3年ほどフリーランス をして、昨年の2021年3月にクラウド ワークスに入社しました。
フリーランス から就職を決めた理由は簡単に言うと技術力をつけたかったからです。これまでは個人で学ぶばかりでレビューされたり相談したりする環境がなかったことが起因しています。
主なトピックス
10年規模のサービスは大変
crowdworks.jp は開始して10年になる巨大サービスです。そのようなサービスを触るのはなかなか大変でした。まず大きすぎて全てを理解できません。機能修繕をしていると現仕様の把握から始めますが、コードベースが巨大すぎて理解にかなりの時間を要します。
また昔に作られた機能だと仕様を把握している人がいなかったりドキュメントが残っていなかったりするので、誰も知らない仕様があったり意図の読めないコードがあります。謎すぎて触れるのに勇気が必要になることも。他にもテストが完全に整備されていないので、気づかぬうちにバグが起きていたりしました。
負債も大分溜まっており、コード一行追加するにも結構な時間を要したりします。リファクタリング を行うにも依存関係が多すぎて片手間にはできません。
入社当時「全貌を知るには数年はかかる」ということを言われましたが、その意味を一年かけてやっと理解できました。
辛いことばかり書きましたが、この規模のサービスだからこそ学べることもあります。例えば負債をどう減らすかや負債にならないコードの書き方は深く身につきました。コードを書く力がつくのはとてもありがたいです。また沢山のユーザーがいるからこそ機能を作ったときの反響が大きく、それがやりがいにもつながっています。プログラミング以外にもWEBサービス のノウハウが沢山知れるのは非常に有り難いです。
大型な機能開発の連続
配属されたのは主にユーザー向けの機能開発や改善を行う施策チームで、今もこのチームに所属しています。この一年で僕が関わった施策は以下の3つでした。3つのリリースを見届けていたら一年経ちました。
blog.crowdworks.jp
blog.crowdworks.jp
blog.crowdworks.jp
今までの環境だと時間がかかっても一ヶ月でリリースされるので、このスピード感は慣れるまで大変でした。もちろん時間がかかるのには理由があります。
一つは今までと比べて設計をかなり丁寧にやっています。スタートアップとかだとスピードを意識するあまり設計がおざなりになっていたりもしましたが、クラウド ワークスではスピードと正確性のバランスだと正確性に比重がより集まっていると思えます。このバランスは事業のフェーズなどにもよるのでどちらが良いという話ではないですが、サービスがある程度余裕がある状態だとじっくり物事を考えられてとても良いですね。
他には上で書いたようにサービスが巨大すぎたり負債が溜まっているので必要以上に時間がかかることも大きいです。
Vue.js, ドメイン 駆動設計, スクラム に触れた
クラウド ワークスに来て新しく触れた技術です。新しいものに触れるのはそれだけで楽しいです。プライベートでもできますが、ユーザーが沢山いるサービスで実際に試せるのは滾るものがあります。
Vue.jsに関しては学ぶにはかなり質の高い環境があります。ちなみにこの前Vue3に移行されました!
engineer.crowdworks.jp
僕は正直まだまだ書けるとは言えないレベルですが、情熱を持った人が多いので書くのが楽しいです。JavaScript まわりは変化が早いですが、そこをキャッチアップして仕事で使えるのはとても良きです。
ドメイン 駆動設計(以下、DDD)に関しては一人で学ぶにはとても大変な分野なので、詳しい人がいるのは非常に有り難いです。またRails を使っているモノリス アプリをどうしていくかの議論も日々行われておりとても勉強になっています。DDDを効果的に使える場面に立ち会えるのは貴重ですね。
また「ドメイン 駆動設計 モデリング /実装ガイド」を使ってチームで勉強会もしたりしました。とてもわかり易い本なのでおすすめです。
booth.pm
スクラム に関しては元々興味はありましたが環境がなかったので、ようやく経験できました。また今チームで「SCRUM BOOT CAMP THE BOOK」という本の輪読会をやっており、日々改善に取り組んでいます。
SCRUM BOOT CAMP THE BOOK | 西村 直人, 永瀬 美穂, 吉羽 龍太郎 |本 | 通販 | Amazon
いろいろと新しいことを学べた反面、Ruby やRails に関してはそこまで成長していない感じがしています。すでに6年書いているので、これ以上の力を手に入れるにはどうしたらいいか悩んでいます。とりあえず本を読んだりしています。スペシャ リストみたいな人にレビューされたいですね。
チーム開発の有り難みを感じる日々
僕が就職を志した理由を上で書きましたが、レビューされる環境や知恵を借りられる環境が手に入ったのはとても嬉しいです。施策チームはエンジニアが3~6人ほどで構成されており、常に誰かにレビューされる環境にあります。そのため日々誰かの指摘や、より良くなるためのチップスが貰えて成長を感じています。
またペアプロ やモブプロ文化もあるので、学ぶにはとても良い環境が揃っています。他にも先程あげた「SCRUM BOOT CAMP THE BOOK」の輪読会のように、いろんな読書会がチームで開かれているのもいいですね。
また組織全体でも勉強会があったり、違う領域のエンジニアリングの話が聞けたり、積み重なったドキュメントがあったりと働いていて楽しいです。しかもそれぞれの領域に強い人がおり何かあれば相談できるのでとても助かっています。
フルフレ ックス、フルリモートという働きやすい環境
クラウド ワークスではコアタイム なしのフルフレ ックス、フルリモート環境があり大変重宝しております。
というのも僕はクラウド ワークスで働きながら、個人でも開発案件を受けたりシェアハウスの経営や社団法人の運営なども行っています。平日に役所にいかないと行けなかったり、トラブルがあったときに時間を割けたりと時間と場所に融通がきかないと働くのが不可能でした。さらに会社全体で副業をとても強く推奨しているので、個人の活動で忙しいときに引け目を感じることがないのも助かっています。
人が良い
入社の決め手は面接で話した人たちの印象でした。落ち着いている人が多く、接しやすい印象を持っていました。入社してもそれは変わらず、皆さん非常に落ち着いていてとても仕事しやすい環境です。またエンジニアに限らず優秀な人ばかりいます。優秀な人達と働くといい影響をもらえるし、ストレスがないのでとても楽しいです。
逆に就職して大変だったこと
フリーランス 時代に比べてエンジニア収入は減った
正社員の給与とフリーランス の報酬を比べるのは不毛ですが、結構差があるので少し悲しくなりました。もちろんそれを知った上で入っているので後悔はないです。ただ稼ぐなら圧倒的にフリーランス ですね。
月160時間という縛り
フリーランス だと働く時間は自由に設定できますが、会社員だと月160時間働くことになります。三度の飯より仕事が大好きな人間なのでそれ自体に不満はないのですが、個人の仕事が忙しいときに大変です。また深夜や土日稼働は原則禁止になっています。労働基準法 やコミュニケーションコストを考慮した内容だとは思いますが、平日日中に個人の仕事をしたくてもそう自由にはできません。
フルフレ ックスフルリモート環境なだけでも有り難いので特にネガティブな感情ではなく、もっと自由になってくれたら嬉しいという感情です。
同期的なコミュニケーションが多い
同期的なコミュニケーションが多い印象です。Slackを使ったテキストコミュニケーションが基本となっていますが、Google Meetなどを使って同期的に話す場面もちょくちょくあります。本当に必要ならいいのですが、そうでないことも多々あります。かくいう僕もわりとやっちゃいますが。
同期的コミュニケーションは無料と思われがちなので、リスクをつけていきたいです。ここが整うとフルフレ フルリモ環境がより使いやすくなりそうです。非同期コミュニケーションの立ち回りを意識していきたいです。
まとめ
入社してとてもよかったです。
また共に働けるメンバーもまだまだ募集しているので、よかったらご応募ください!!!
herp.careers