見出し画像

【ユカシカド 社員インタビュー #5】実務未経験で入社したエンジニアがアプリ開発プロジェクトで要件定義・実装設計を担うまでの成長ストーリー

誰でも手軽に栄養改善ができる世界を目指して、様々なプロダクト・サービスで実現しているユカシカドには、様々なスキルやバックグラウンドを持つメンバーが集まっています。
社員インタビュー企画では、メンバーたちがどのような想いでユカシカドにジョインし、日々どのような想いで働き、事業や組織の成長に携わっているかをお届けしていきます。

櫻井直也 Sakurai Naoya
茨城県出身。大学を卒業後、大手機械メーカーでディーゼルエンジンの設計に携わる。5年ほど勤めた後に退職し、フリーで活動しながらプログラミングスクールでの学習期間を経て、2018年12月にユカシカドの2人目のソフトウェアエンジニアとして参画。入社してから1年で栄養改善アプリ開発プロジェクトで要件定義・設計を担う。

本日はユカシカドに二人目のエンジニアとして入社された櫻井さんにお話を伺っていきます。ユカシカドに入社する前はどのような仕事をしていたのですか?

大学では理工学部で学び、卒業後は大手農業機械メーカーにて5年ほどディーゼルエンジンの設計を担当していました。

私が設計していたエンジンは世界中に供給されていたので、グローバルに携わる仕事をするやりがいはあったのですが、いつからか「ココで定年まで働き続けるのか?」と自分の生き方を見つめ直すようになりました。

今考えると無謀だったと振り返りますが(笑)、とりあえず勢いで会社を辞めました。当時は何かプランがあったわけではなく、エンジニアという選択肢もなかったですね。

しばらくの間、フリーの立場で知人のイベントの手伝い等をしながら、とにかく多くのヒトに会って色んな話を聞いて、自分が進むべき道を模索していました。

あるとき、仮想通貨・ブロックチェーンの話を聞いて、衝撃を受けました。
自分の中では、馬車からエンジン搭載の車が走るようになった、インターネットが登場した、等のパラダイムの変化に匹敵する衝撃だと思っています(笑)

それがきっかけでプログラミングに興味を持ち、これからの時代に身につけておくべきスキルであり、食べていくのには困らないだろうと思い、プログラミングスクールに通い始めました。

なるほど。そうしてエンジニアとしての一歩を踏み出したのですね。

元々理工学部出身でエンジン設計の仕事をしていたこともあって、感覚的にプログラミングは自分に向いているんじゃないかなと思っていました。少なくとも不向きとは思っていなかったですね。

プログラミングスクールでは、自分でひたすらコードを書いたり、チームで議論して開発を進めていくことに面白みを感じていました。

プログラミングスクール卒業後は、自分でサービスを開発しながら転職活動を行っていました。結果、ToC向けの自社サービスを展開している企業、SES企業、そしてユカシカドから内定を頂くことができ、ゼロからの開発経験が積めること、雰囲気が自分に合っていそうな感じがしたので、ユカシカドに入社を決めました。

櫻井さんご自身が転職活動で苦労したことや、ご自身の経験から現在転職活動中の方々にアドバイスをするとしたら何かありますか?

そうですね、「結局は実践ありき」だと思いました。

そうはいっても、私もそうでしたが、実務未経験の状態で就業先を探している方々にとっては、その実践の機会を求めて転職活動を行っていると思うので、アドバイスとなると中々難しいのですが。

ただ、実務未経験で転職活動中であっても、実践に準ずる経験は自分で出来ると思っています。

私の場合は、自分でサービスを開発してリリースして100人程度のヒトに使ってもらうことができたことが大きな経験になりました。そうやってGitHubを充実させていくと、企業の人事や採用担当のエンジニアの方々の目に留まりやすくなると思います。

実際に、私はGitHubのサービスコミット数が比較的多かったこともあって、実務未経験だけどプログラミングには時間を使っているはず、という評価を頂けました。

あと、これは今だから言えることですが、「オブジェクト指向プログラミング」を習得する努力をすることですね。

私の場合は、ユカシカドに入社して最初の3ヶ月で基礎を徹底的に叩き込まれて、入社から2年が経過した今でも実践を通じて習得を継続しており、ようやく身についてきた感覚があります。

プログラミングの学習を始めた初期段階から、オブジェクト指向プログラミングを学習することを強くオススメしたいです。

参考)オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
https://www.amazon.co.jp/dp/B01L8SEVYI/ref=cm_sw_em_r_mt_dp_HR3XP3MFMXCV1FRPAR60

私自身、自社の採用活動に携わる中で、オブジェクト指向プログラミングの学習に努めている候補者の方々はまだまだ少ないなという印象ですが、実際にサービス開発を実践していく上では必須であると身に沁みて感じています。

弊社に限らず、何かしら自社サービスを保有している企業でソフトウェアエンジニアとして仕事をしたいのであれば、身につけておいて損はありません。

今時点で、プログラミングの学習をスタートされている方や、実務未経験で転職活動をしている方にこそ、オブジェクト指向プログラミングの習得を志してほしいです。

ありがとうございます。実践に準ずる経験を何かしらやってみること、同時にプログラミングの原理・原則の理解に努めること、この2つは転職活動ではもちろん、その後キャリアを築いていくうえでも大きなアドバンテージになりそうですね。

それでは次に、ユカシカドに入社してからのストーリーを教えてください。

画像1

先ほどもお話しましたが、入社して最初の3ヶ月はオブジェクト指向プログラミングに則ってアプリを作ってみるという課題をCTOの寺田さんが準備してくれていて、ひたすらその課題を行っていました。

当時は、オブジェクト指向プログラミングをまったく理解できていないところからのスタートだったので、そもそも寺田さんが何を言っているのかが分からない、という状態でした。

分からないことは寺田さんに聞けば教えてくれるのですが、毎回聞いてばかりだったので、正直、「聞きにくい」と思うことはありましたし、実際に「さっきそれ教えたやん(笑)」と言われたことも何度もありました。

分かるまで聞くしかないので聞き続ける、実際に自分でコードを書いてみる、ということを繰り返していました。とにかく必死でした。

ユカシカド流「導入研修」ですね。内容についてもう少し詳しく教えていただけますか?

例えば、「PORO(Plain Old Ruby Object)で自動販売機のモデリングを実装する」という課題を行いました。

プログラミングスクール等ではRailsというフレームワークを用いて開発するのですが、プログラミング言語のみで自動販売機でできることをソフトウェアで実装してみましょう、という課題です。

「200円入れてオレンジジュースのボタンを押すと、自動販売機内に十何種類ある飲料の中から120円のオレンジジュースが選択されて商品が出てくる、その後に80円のお釣りが出てくる」といったプログラムを書く様なイメージです。

このようなテーマの課題を7パターン程度行いました。

参考)こちらの課題を社内で実施させていただいてます。

分かりやすくご説明いただきありがとうございます。プログラミング言語のみで実装する難しさはありましたか?

ありましたね。それまではpure rubyでの開発を行ったことがなかったので、メンタルモデルがなかったのと、どうすればこのプログラムが動作するのかが全く分かりませんでした。

自分で分かる範囲で実装してみて、寺田さんに見せて、寺田さんが実装したものを見てフィードバックをしてもらう、ということを繰り返し行っていました。

ペアプロといって、2人で一つのパソコンを使ってコーディングしていき、なぜそのコードを書いたのかを共有する、という手法です。

この手法は、私の後に入社した実務未経験のエンジニアが同じ課題を行う際にも実施していて、現在は私が教える側の立場になっています。

教える立場になったということは、櫻井さんご自身がオブジェクト指向プログラミングをはじめ本質的且つ実践的なスキルを身につけることができたということだと思います。

そうですね。ありがたいことにたくさんのフィードバックを受けることができたので、自分には何が足りないのかを分析し、逃げずに向き合って最後までやりきることはできたと思います。

また、自分の場合は、導入研修を終えていくつか実装に携わった後に、アプリ開発のプロジェクトに携われたことが大きかったですね。確か、入社して1年後くらいだったと思います。

どんな役割でどのようにプロジェクトを進めていったのでしょうか。

主にサーバーサイドを担当し、要件定義や実装設計を任せてもらっていました。

まずは、事業サイドのアプリプロジェクトリーダーに、実現したいことやそのための動作についてヒアリングをしていき、要件をドキュメント化していきました。

次に、シーケンス図、モデル図、DB図を書いていき、それを寺田さんとディスカッションして設計を固めていきました。

このプロセスにおいては、オブジェクト指向を理解していないとそもそも歯が立たないのですが、入社後の課題とその後の実装経験に加えて、自分で勉強する習慣が身についていたので、なんとかやりきることができたと思います。

画像2

入社して1年で大役を任されて、やりきった経験は自信になりますね。
ユカシカドでエンジニアとして働く魅力について教えていただけますか?

これまでお話してきた通り、導入研修を通じてオブジェクト指向を学んで、それを実践に繋げることができることですね。あとは、自分が興味がある技術を取り入れることも可能です。

実際に、現在動いているプロジェクトで、今まで使ったことのない言語とフレームワークを使ってみたいと提案しました。

既存のサービスのフロントエンドでは、Vue.js、Nuxt.jsを使っているのですが、将来的な開発の在り方を見据えて、新しい機能の開発においてReact.js、Next.jsを使用したいと提案しました。

CTOの寺田さんも経験がないことだったので、自分自身で調べて、それをチームに共有して、実装・メンテナンスしていくという一連の経験は、責任の重さは感じますがその分やりがいも大きいですね。

櫻井さんの成長の軌跡は、実務未経験の方々にとって、勇気が湧き出てくる、奮い立つストーリーだと思います。
最後に、実務未経験からソフトウェアエンジニアを目指す上で大切なスタンスを教えてください。

疑問に思ったことをそのままにせず、なるべく早く解決できるように積極的にコミュニケーションを行っていくことだと思います。

おそらく、自分のように実務未経験な状態で開発実務をスタートすると、分からないことやもやもやすることががたくさん出てくると思います。

分からないから、どう言葉にすればよいのか悩むこともあると思うのですが、コミュニケーションを重ねていくことで、少しずつ言語化できるようになっていきます。

上司、先輩など他のメンバーも、過去に同じような壁にぶつかったことがあるはずなので、とにかくコミュニケーションを取っていくことできっと解決に向けて踏み出せると思います。

自分は後輩に対して、自分が苦しんだ経験も踏まえてそのようなスタンスで接しています。

ですので、これから仲間になったいただく方には、遠慮なくどんどんコミュニケーションしてきてほしいです!

貴重なお話ありがとうございました!

ユカシカドでは、ミッションの実現に向けて、一緒に駆け抜けてくれる仲間を募集しています。
https://en-gage.net/yukashikad_recruit/

この記事が気に入ったらサポートをしてみませんか?