学び・感想イベントまとめはじめに24卒としてサイボウズに内定をもらってから、フロントエンドエンジニアとして内定者アルバイトをしていました。期間は2023/10/1~2024/2/29までの5か月間。踏み込まずに感想ベースで個人ブログにだらだらとまとめました。早く働きたい!と思った動機として一応書きますが、本質ではないことも話しています。就活期間はその期間内でした。「まー、インターンも実務経験もないし、就活とか無理だし、帰国したら院進しようかな。過去問取り寄せなきゃ。私:「🫡」という流れで晴れて就活生活がスタートしました。(この時点で2023/1なので、今考えると24卒インターン経験なしとしては😱。当時はそんなことも知らない。Info留学中に日本企業の就活ができたのは、渡航国と日本との時差が2時間(サマータイム)しかなかった&ITエンジニアとして就活してたのでオンラインで内定承諾まで完結できたからです。Holidayだったので、就活に集中できる時間が確保できたこともラッキーな要因でした。それからは自己分析と企業研究を並行しながら、サポーターズに登録して、企業を提案してもらって、合いそうなとこを受けていく流れでした。(留学中まともに日本語を喋ってなくて、めちゃくちゃ思考力が落ちていた(外国語副作用)気がしたので、急いで日本人の友達を作ったり、面談や受ける企業数を増やして慣れていたという点で少し特殊な手法をとっていたかもです)とはいえ就活生としての技術力はほぼなかったので、いろんな企業が公開している技術試験をやったり、以前Vue.jsで作っていたアプリをReactに書き換えたりして、就活駆動開発していました。それから1か月半〜2か月、色々(住んでいた家を追い出される、新学期が始まるなど)ありましたが、就活を続け、2023/3初旬に第一志望だったサイボウズの内定を承諾して就活を終えました。してサイボウズなのかは自分のなかで諸説ありますが、パッとふわっと出てくるのは、なぜか面接が楽しくて、素の自分で話してるなと感じられたからです。実務経験が欲しいぞとはいえ、内定をもらってからの方が将来に対する不安が込み上げてきました。インターン経験・実務経験ないしはチーム開発経験も薄い私がこのまま来年から社会の波にのまれるのは非常に好ましくないと思いました。サイボウズでは、定期的に内定者が集まれるイベントがオン・オフラインで用意されています。そのなかで同じフロントエンド職能として内定をもらっている同期と話す機会があり、「内定者バイトとかないんかねー?」という話題になりました。そんな"ほざき"を人事の方に相談してみたところ、「現状では考えていないですが、検討してみます!」と議論の場に持っていってくださり、チームに受け入れ体制を整えてもらって、働くことができるようになりました。学生の希望を真摯に聞き入れてくださった人事の方やチームには感謝でいっぱいです。ジョインするたくさんの協力があって実現したサイボウズでの内定者アルバイトは2023/10/1~始まりました🌷サイボウズではさまざまなグループウェア製品のプロジェクトが進行しているのですが、私はkintoneというグループウェア製品の開発チームに配属されました。業務アプリをノーコードでつくれるサイボウズのクラウドサービスキントーンは、プログラミングの知識がなくても、ノーコードで業務のシステム化や効率化を実現するアプリがつくれるクラウドサービスです。散在するエクセルや、煩雑なメール、紙の書類の山、バラバラなシステムなど、業務を非効率にしている困りごとを解決できます。Toolsで書かれているkintoneのフロントエンド実装をReact+TypeScriptに刷新するチームへ配属されました。サイボウズエンジニアのブログサイボウズ株式会社、サイボウズ・ラボ株式会社のエンジニアが提供する技術ブログです。製品やサービスの開発、運用で得た技術情報やエンジニアの活動、採用情報などをお届けします。フロントエンドリアーキテクチャをプロジェクト(フロリア)として再構成してスタートさせました。フロリアという名前は社内での公募により決定しました。今回はプロジェクトで目指していることについて紹介します。話したスライドや動画も公開されているのでよければ見てください。これまでの取り組みについては下記の記事にて紹介しています。...https://blog.cybozu.io/entry/2022/02/04/171154フロリア内でもチームはさらに細分化されており、中でもkintone内でアプリを作成する画面(以下参照)の刷新をするReactoneチームで働くことになりました。アプリ作成画面kintoneのような大規模プロダクトの刷新でも、このようにページ単位でチームが細分化されているため、各チームがしっかりオーナーシップを持っており、技術選定やアーキテクチャ設計に対する議論を活発にしながら開発できるのはいいなと感じました。取り組んだこと私が内定者期間中に携わった具体的な刷新項目は以下でした。開発サイクルは木~水1週間を1Sprintとするスクラム開発で、大体以下のような感じでした。Projectsを使っていましたが、途中からZenHubを使用していました。Projectsと一緒なのですが、ZenHubでは消化SPに基づいてベロシティーが計測されたり消化PBIの変化がわかりやすかったり、データの可視化の面で優れているなと思いました。(稼働日的にスクラムイベントめちゃくちゃ参加できたわけではないですが......)役割とPBIの進め方チームはPG(3~4人)、QA(2人)、SM(1人)から構成されていて、それぞれがドメイン知識を活かしてPBI消化にコミットしており、とても贅沢な開発環境だったと思います。以下は取っていたPBI消化までのサイクルです。スプリントプランニングでPBIが決まるPBIに基づいてタスクを箇条書きし、Issueを作るIssueの機能実装をする(ペアやモブプロで実装する。機能の実装には必ず適切な種類と粒度のテストが伴うようになっています。毎回多くのことを学んだのですが、アルバイト期間を通して特に印象に残っている部分をピックアップします。先に述べたように、私はチーム開発の経験が薄かったので、最初はこうしたサイクルを覚えること、PRを出すときの振る舞いなどにとても不安がありました。(チーム開発に対する不安を解消するためにアルバイトをしたかったまである)最初の方に先輩PGの方にべったりペアプロしていただいたことで開発フローを掴むことができ、だんだんソロやモブプロできる時間が増えてきました。社内ドキュメントやADRが非常に充実しているため、ソロプロで困ったときはよく活用していました。レビュアーに伝わりやすいPRを出すために気をつけていたことは、PRのテンプレートを用意することと、セルフレビューを挟んでからレビューしてもらうことです。PRテンプレートは個人のリポジトリなら用意するようにしているのですが、社内リポジトリのテンプレートを新たに作るのもちょっと気がひけったので、私はChrome拡張機能を使用して以下のようなPRテンプレートのスニペットとして登録しています。PRのテンプレートがあることで、毎回均一な情報濃度のPRを作成できます。Testセルフレビューに関しては、実装できたら自分でコード差分を読まずにレビュアーをアサインしてしまっていました。そのため、コード差分がわかりにくそうな部分にはコメントをつけてからレビュー依頼するように心がけています。することで、無駄な差分やミスに気づけますし、実装中にした小さな意思決定を相手に伝えられるのでレビューコストの削減が期待できました。Reduxは面識が濃かったですし、StorybookやChromaticも個人的に使用していたので知識を活かせました。当初はテスト実装の経験が薄く、Integrationテスト項目1つPassするにも業務時間の半分近くかかったりしてました。実装するのかがわかっていなかったため、前述した「QAの方と自動テスト観点のすり合わせ」というプロセスやテスト設計のADRがとても勉強になりました。QAの方と自動テスト観点のすり合わせを行なうときは、QAの方が事前に用意してくれている各テスト項目に関して以下のような点を中心にQA<->PG間ですり合わせます。Memo抽象化やコード設計に関してはデザインパターンが大きく関与しており、すべてではないですが、Zennで書いたReactデザインパターンについての記事でまとめています。※TSで書けるIntegrationやBrowserテストは割と手がさくさく動くようになりましたが、Javaのコードを触ってSeleniumで動かすE2Eテストは今でも苦手です🤮イベント内定者同期とのイベントも含めて、たくさんの社内イベントの参加も経験させてもらいました。社内勉強会:Reactドキュメントを読む会23新卒の先輩方がやっていた社内勉強会に24卒内定者が途中から参加する形でした。内容はhttps://ja.react.dev/learnを回しで読んでいく形で、Reactに対する理解を深めることができました。ブログWeek社内で技術探求やブログを書く時間が設けられている週があり、その期間は業務としてブログ記事を書いていました。好きな内容で探求活動をして良かったので、私はReactにおけるデータフェッチ方法を調査して記事にまとめました。ブログなんて書くのでとても不安だったのですが、フロントエンドエキスパートチーム(FEE)の方たちから技術的な指摘や日本語面でのアドバイスをいただくことができ、心理的安全性の高さを感じました。Days開発に携わっているプロダクトが個人や他企業にどのような影響を与えているのかを知ることができました。刷新プロジェクトであまりユーザーからのフィードバックが得られない中、貴重なイベントだったと思います。メンバーが東京オフィスに集まって、LTやOSTを通して交流する機会でした。一方的に認知していたあんな方やこんな方と会えたり、直接話す機会をがあったり、終始Wowでした🫢まとめサイボウズで内定者アルバイトをした感想をまとめました。誰かに伝える目的<記憶の保存という感じの書き方でだらだらとなってしまいましたが、この記事がチーム開発に関する解像度を少しでもあげるものになれば幸いです。新人研修で他の同期と会えたり、開発本部の講座受けられるのも楽しみ!それまで、学生としての余生を楽しむ旅に出ようと思います。