はじめに
私は、株式会社ユーブルが提供している「APPRENTICE」というエンジニア内定直結のサービスを受講しています。未経験というだけでエンジニアの転職が困難で、未経験というだけでエンジニアとしての未来の扉が閉ざされてしまう。
ここでは実務経験を積みながら、就職活動が可能。
とても魅力的だと感じ、受講させていただいております。
この「APPRENTICE」では学習プロジェクトとしてチーム開発があります。
その体験が非常に貴重なものになったので記憶が鮮明なうちに記録に残します。
はじめてのチーム開発
3人1チームとなり、今まで学習したプログラミング言語を使用しテーマに沿ったアプリケーションを実装する。
Rails, Laravel, React などのフレームワークは使わない。
ベースとなる技術は HTML/CSS/JavaScript/MySQL/Ruby or PHP を使用する。
そして出来た制作物をプレゼンする。プレゼン時間は5分。プレゼンは Zoom の画面共有で、スライドとデモを使用し、デモはローカル上で制作物を実際に動かして見せる。その後メンターからのフィードバックがある。
受講生からの評価が最も高いチームに Best Student Award を授与!
メンターからの評価が最も高いチームに Best Award を授与!
目指せ!Award受賞!!
アプリケーションの目的やコンセプト
開発テーマは『自分たちの役に立つものを開発せよ』
各チームごとにアイデア決め、スライド作成、要件定義、設計、タスク出し、環境構築、実装、プレゼン準備、プレゼンを行う。
議論の結果、私たちのチームでは『LIQ+RECIPE(リクレシピ)』というアプリケーションを作成することに決定しました!!
-
開発に至った背景や動機
現代サラリーマンの唯一のオアシスである晩酌が危機的状況である!
毎日同じお酒をのんでおり、慢性的なマンネリ化が深刻になっている!
アレンジしようにも、レシピをまとめているアプリケーションが存在しない!
この課題をクリアにすれば晩酌の時間をより良いものに出来る!
チームの構成と役割分担
チームは私とHさんとSさんの三人チーム構成
-
協力やコミュニケーションの方法
Discordを使用し、週に1~2回のチーム会を行い進捗確認やすり合わせを行なった。
今回使用した技術やツール
環境の一貫性と再現性:Docker
アイデア決め、スライド作成、要件定義、機能設計:Figma
タスク管理:Notion
コード管理:Github
フロントエンド言語:HTML,CSS,JavaScript
バックエンド言語:Ruby
データベース:MySQL
遭遇した課題や問題、それをどのように解決したか
課題と問題点
①自分が技術面でチームメンバーより劣っている。実際アウトプットしようとすると手が止まってしまう(個人)
②実装の工数見積もりが甘かった。チームメンバーがどこの機能を実装するのか。は明確でしたがいつまでに実装するのかをコミットしていなかった。リカバリー案も無かった。(個人とチーム)
③発表時間ギリギリまで実装作業をして機能テストは10分ほどでプレゼンは事前すり合わせ出来ず、ぶっつけ本番になってしまった。(個人チーム)
どのように解決したのか
①すぐに技術力は上げられないので、技術以外の部分で最大限チームに還元出来る事は何か?を主軸にし、行動や発信を行いました。
-
具体的な行動
プレゼン資料作成やプレゼン発表などをやります!と、進んで手を上げた。
中小企業に対し、法人営業をしていた過去があり、プレゼン資料作成と発表の経験はあったので貢献出来るのはここだ!と思い行動しました。 -
具体的な発信
開発や実装だけの話だと、どうしても会話が弾まない。
まずはチーム内の方々が、どんなことに関心があるのかなどを掘り出して雑談をする機会を自分から発信していきました。その結果、チーム内の方と仲良く開発出来ました。
チーム解散し、お互いそれぞれの道に進んだとしても交流が出来る仲になれたんじゃないかなと思います。
②開発終盤に間に合わない事は発覚したので、修正が大変困難だった。開発でなぜ見積りが必要なのか、出来なかった場合のリカバリー案、進捗を管理するプロジェクトマネージャーが管理するのか身を持って知ることが出来た。
プレゼンでは既に出来ている主要な機能の紹介に絞り、見た目(UI)だけでも完成していく事に切り替え今後の実装予定に回しました。
③プレゼン10分までに実装出来た部分を把握し、プレゼンを行いました。
自分で言う事ではないですが・・・割と口は回るのと、機転はきかせることは出来る方なので、不自然なく発表は出来たと思います。
プロジェクトを通じて学んだことや個人的な成長。
-
チームとしての経験から得られた教訓
①タスク出し、実装の作業見積りをし、コミットする。
②間に合わなかった場合のリカバリー案も事前に考えておく。
③今までの社会人経験を活かして、プロジェクトマネージャーを目指してみたい!と思いました。
④チームメンバーとの交流はとても大切!
⑤発生ベースで開発しない!期間や納期は絶対守る!
⑥技術力をもっと高めたい。環境開発やバックエンドはほぼチームメンバー任せになってしまった。
-
プロジェクトの成果とフィードバック
Best Student AwardとBest Awardは惜しくも逃してしまいましたが、
7チームが参加し2位という結果でした!
メンタ―からのフィードバックでは、「お酒飲むので凄く刺さった!」「UIがとても綺麗に出来ている」「話に惹き込まれた」等の高評価をいただきましたが、「技術面での説明が無い」の指摘がありました。
出来た機能を最大限良く見せようとしか頭に無かったので、ここは今後修正していこう!と感じました。
完成したアプリケーションの機能や特徴。
-
機能や特徴
お酒のアレンジレシピの閲覧、投稿、検索が可能
会員登録不要で利用することが出来る
レシピ検索は、ベースのお酒、味や風味、キーワードから検索出来る
会員登録することで、自分オリジナルのレシピを投稿することが出来る
投稿されたレシピに対するレビューを投稿することが出来る -
今後の計画やアップデート
ユーザーの嗜好に合わせたおすすめレシピの表示 Google Discoverの様な機能
おつまみの投稿機能と、アレンジレシピとの紐づけ機能
レシピのお気に入り機能
特集ページの設置(例:家飲み、キャンプ、ノンアルコールなど)
商品名からの検索機能
チームメンバーの方々へ
技術面で負担がとても多かったと思います。色々と分からない所をアドバイスいただいたりと本当に助かりました!
チーム3「堅揚げポテト」の皆様ありがとうございました!
もし今後就職し、それぞれの道に進んだとしてもこの交流は継続していければと思っています!
- まとめ
何か正解なのかを模索し、どういう形でアウトプットするのか、自分達でゼロからイチを作っていくことの難しさと楽しさを感じることが出来ました。個人の独学レベルでは体験できなかったと思います。
まだまだエンジニアとしてはレベルが低いですが精進して参ります!