CROOZ TECH BLOG

~読んだらわかるSHOPLISTの裏側~

CROOZ TECH BLOGとはクルーズ株式会社の開発チームが技術について共有するブログです
開発の中での発見や知識を広めてオモシロカッコイイ〇〇をツクリます。

SHOPLISTの新卒エンジニアが新卒研修を振り返ってみた

こんにちは。2021年4月にCROOZ SHOPLIST株式会社に入社した新卒のRYOBALです。

元々、自分自身がファッション系ECサイトをよく利用しておりその中でSHOPLISTというサービスを知って、より多くの人にサービスを使ってもらいたいと思い入社し、現在、サーバサイドエンジニアとして主に社内管理ツールのシステム改修を行っております。

今回はCROOZ SHOPLIST株式会社に入社して約1年になりますが、入社時の3ヶ月間の開発研修についてお話ししたいと思います。

マーケティング希望だった僕が開発未経験からのスタートで様々な格闘をしながら研修をしていたので、開発未経験・経験者の方どちらもお楽しみできる内容だと思います。

開発未経験の新卒が開発研修。わからないことだらけの毎日。

CROOZ SHOPLIST株式会社では開発の知識を身につけようと入社前からSQL基本情報技術者試験の勉強を行います。入社後の4月以降は新卒メンバーの適性を見て、今年は7名が開発部署に配属されました。7名中6名が開発全くの未経験からのスタートだったので、新卒自身も「まさか自分が開発部署に配属されると思わなかった」と困惑気味。。

入社前から開発に関する研修を行っていたとはいえ、実際に入社してからはわからないことだらけの連続でここからは怒涛の開発研修のスタート。また、開発までの習得目標は下記の内容で、これを実際のアプリ開発などを行いながら習得していく流れで進んで行きました。

基本情報処理技術者模試午前(8割正答)

Linux操作(基本操作コマンドの習得、Shellスクリプト作成)

③GIt Bash(鍵作成、CLONE、PULL、PUSH、コンフリクト解消)

PHP言語(クラス実装まで)

SQL(SHOPLISTサイトでのデータ抽出)

 

基本情報技術者試験の学習と毎日のテスト

4月に入社以降、最初の研修内容は基本情報技術者試験の学習と過去問のテスト。

エンジニアの方であればこの試験のことをご存知かと思いますが、簡単に言うとITエンジニアが共通して理解しておくべき基本的な知識を体系的に学習することができる資格です。その中でも午前問題と午後問題に分かれており、午前問題をまずは学習。学習することで、コンピュータやシステムが動作する仕組みからデータベース、ネットワークなどエンジニアとして必要だよね。という知識を頭に入れておこうという目的です。

「たかが普通の資格の勉強でしょ」と思う方もいるかもしれませんが、これがなかなか大変。。

というのも、基本技術者試験の午前問題の全体の8割程の点数を3回連続で取れるまでは研修期間中毎日過去問を解いてテストを行うのです。資格の合格ラインは約6割と言われているので、そのさらに上に行くというなかなかハードすぎた内容。

そもそもPCやスマートフォンは毎日触っているけど、コンピューターの内部とはなんてこれまで知ろうともしなかったので「CPUって何それ」「ロールフォワードとか聞いたこともない」みたいな状態からのスタートでした。初めて過去問を解いたときは全体の3割も解けず、いきなり心が折れかけたのを覚えています(笑)

最初の1週間は全体の大体3割、たまに4割の点数を取ることしかできず。。。

苦しかった。。。。(笑)

 

ですが、毎日やっていくと自分の中で、得意な範囲と苦手な範囲がわかってくるので重点的に学習する内容も次第にわかっていきます。

苦戦しながらも徐々に点数が伸びていき、1ヶ月半後くらいには全メンバーが6割の点数を3回連続取ることができていました!

振り返ってみると毎日毎日大変でしたが、1ヶ月半で基本的なITの知識が身についたと感じるので、非常に充実した時間でした。

この知識は配属後、エンジニアとしてやっていく上で基礎となる必要な知識で、SHOPLISTというサービスを支える上でもサーバーやDBなどの知識は役立ちます。これはエンジニアに限らず、営業やマーケティング系の部署で働く場合でも「知っておくだけでサービスの見え方が変わるな」と思った研修の一つでした!

苦戦しながら開発したブログサイト

基本情報技術者試験の学習と並行しながら、シェルスクリプトを使ってファイルの作成などコマンドを使って基礎的な学習やPHPを使ってジャンケンゲームや問い合わせフォームなどの開発をしました。

また、実際に書いたコードはGitLabと呼ばれるバージョン管理ツールを使って上司に確認してもらうなど実際に開発の現場で使われているツールを使いながら日々学んでいきました。

そのような学習を約1ヶ月間行い、いよいよ本格的なアプリ開発としてブログサイトの開発へ。PHPやBootstrapを使っての開発です。機能としては会員登録やログイン、記事の投稿、記事に対する返信の投稿、編集機能などが盛り沢山。

また、開発を進めるにあたって、依頼者にあたる上司に実際にどんなサイトを開発したいのかをヒアリングし、求められた要求に対し、実装の内容や納期も考えるという実際にエンジニアの業務を行なっていく上で必要となる流れを経験することができました。

実際に依頼者にヒアリングをしている時には「依頼者が何を求めているか考えて発言してる?」「提案ベースで話して」などとコミュニケーションを取る上で必要なことが足りていないと指摘を受けたことも。。

エンジニアの仕事はただ言われたことを開発するだけではないと身に染みて実感した瞬間でした。

要求を聞き、ヒアリングした後は実際に要件定義書を作成し、画面設計、データ設計、URL設計、ER図の作成など開発を実現するために上流工程の部分を行い、上流工程を終えると次は開発やテストなど下流工程に着手します。

実際にコードを書いていきながら、必要な機能を一つ一つ実装させていき完成に近づけていく。

開発を進めていく上で最も大変だと感じたのは納期を見据えながら開発をしていく難しさです。開発前から納期日を逆算し開発の予定を決めていましたが、実際はそんなにスムーズに開発が進んでいくものではありません。

ブログのログイン機能や記事の編集機能の実装にエラーが出て、ググってもなかなか上手く動かない。予定よりもどんどん遅れが生じて、納期が迫ってくる。。

今思えば、そもそも納期の見積もりが甘かったり、実装の調べ方も全然できていないなど原因は様々ありますが「開発の現場ってこんなに大変なんだな」と実感したことを今でも覚えています。

実際の現場では見積もり時に想定していなかったような問題にたびたび直面します。その時のためにも「このくらいであればタスクが終わるだろう」と楽観的に見積もりをするのではなく、バッファを持たせた場合も考えて見積もりをすることが大事です。

試行錯誤しながらも無事にブログサイトが完成し、入社して約2ヶ月足らずで自分一人の力で「ブログサイトを開発するなんて凄い(笑)」と我ながら思い、自信にもなりました。 

チームで取り組んだECサイト開発

ブログ機能が完成した次は4人チームで書籍のECサイトの開発です。初めてのチーム開発で、個人で開発するよりも楽しく難しさもありました。開発の流れは前回同様、依頼者へのヒアリング、要件定義書の作成、開発・テストへの流れで進めていきます。

個人開発とは違い、メンバー同士でチャットで密にコミュニケーションをとりながらタスクを行なっていく必要があります。

例えば、ソースコードにコメントの記載がなく何の処理をしているのかわからない、Gitでのコンフリクトが起きているのにもかかわらず解消せずに開発を進めてしまうといったような問題が起きてしまう。。

これらの問題は個人開発であれば起きませんが、チーム開発をする上では起こりうる問題です。

一方で、メンバー同士でコードレビューをすることで自分とは違ったロジックを使って実装をしているところを見て参考にするなどチーム開発でしか学べないこともたくさんありました。チーム開発を経験したことで、配属後の業務にもスムーズに合流することができたといったようなメリットもあり、研修時代にチーム開発に取り組めるのは非常に良かったと感じています。

また、弊社はSHOPLISTというファッション通販サイトを開発しているので、同じEC開発をこの時に経験できたこともその後に役立ちました。ログインした後のUIはどうするのか、商品の注文ボタンを押してからの流れはどうなるのか、実際のSHOPLISTと比較しながらDB設計を自分たちで考え、開発を進めていきました。ECサイトって一般ユーザーからすると「商品を選択→注文」といったようにシンプルに見えますが、実際はいろいろな機能が入っていてかなり複雑。。そのようなこともこの期間に知ることができたのは良い経験だったと思います。

 

まとめ

この開発研修を実際に経験できたのはこれから仕事をする上で、非常に役立つ内容だったなと感じています。今回お話しした内容はあくまで一部で細かなところを話すと他にもいろいろな学習や開発を経験してきました。期間は3ヶ月弱でしたが、その時間は非常に密な時間で学びがたくさんありました。IT企業として開発サイド・ビジネスサイド問わず、ITに関する知識があればコミュニケーションをスムーズに取ることができ、業務にも活かせると実感しました。

今後もエンジニアとして経験したことや役に立ったことを記事にして発信していくので楽しみにしてください。それでは、また次回のブログで。BYE☆