24年新人研修グループ演習「YouTube風動画共有アプリ」
株式会社アクティブ・ワーク(以下、当社)では、例年4~6月末までの約3ヶ月の間、新人研修を行っております。新人研修では様々なカリキュラムがあり、研修の締めとして世の中にある著名なWebサービスを例題に、そのWebサービスを自分たちで1からプログラミングするグループ演習を行っております。
今回は、グループ演習の1つ「YouTube風動画共有アプリ」についてご紹介します。
開発背景
私たちは、YouTubeの擬似Webアプリケーション「mntube」を作成しました。アプリ名の由来は、アプリの名前を考える際に私たちは「命名ナンセンス」であるため、研修で使われる「mn(命名ナンセンス)」という言葉を使い「mntube」としました。
開発人数は7人で、これまでの研修で学んできたJava、HTML、CSS、JavaScript、SQLなどの技術を用いました。
アプリ概要
「mntube」は、動画共有サービスであるYouTubeを模したWebアプリケーションです。
主要な機能として以下があります。
・動画投稿
・動画閲覧
・ライブ配信
・プレミアム機能
チャンネルを作成すると、動画投稿、ライブ配信が可能になります。
アカウントなしでも動画の視聴はすることはできますが、アカウントを作成することで、動画やライブ配信に対してのコメント、いいねをすることができるようになります。また、プレミアムに入ることで、動画の広告を表示しないようにすることができます。
アプリの機能
アプリの機能一覧
・ログイン機能
・動画投稿
・動画再生
・再生リスト
・コメント
・ライブ配信
・ホーム画面
・検索機能
・マイページ
・チャンネル登録
・プレミアムメンバーシップ機能
・広告
・追加機能(コメントが動画再生で流れる)
開発環境
フロントエンド :Bootstrap/jQuery
バックエンド :Java8
データベース :Oracle Database
アプリケーションサーバー:Apache Tomcat
実行サーバー :CentOS
ソースコード管理 :GitHub
ローカル開発環境 :MacBook Air/Eclipse2024-03
設計書
画面遷移図(一部抜粋)
テーブル定義書(一部抜粋)
制作過程
作業人数 :7人
作業期間 :2024年6月3日(月)~2024年6月27日(水)
作業日数 :19日
日の作業時間:8時間
全体スケジュール
1週目(要件定義・詳細設計・実装)
まず、YouTubeを利用する上で必要な機能を洗い出しました。
その後、設計担当、DB担当、機能一覧、画面遷移図担当に分かれました。
次に、完成した機能一覧をもとにメンバーごとに機能の担当、スケジュールを決めました。自分のやるべきこと、スケジュールが明確になり作業を効率的に進めることができました。
1週目から実装に入るメンバーの詳細設計、画面遷移図を優先し、ヘッダー、ログイン機能のメンバーは実装に移りました。
2週目(実装)
要件定義、詳細設計が2週目の最初まで伸びましたが、終わり次第各自、実装に移りました。実装するにあたって、グループのルール事項を作成しSlackのスレッドなどを使用し、情報共有を多く行い、全員が共通認識を持ち実装を進めました。
3週目(実装・テスト)
最後の週には、残った実装と単体テスト、結合テストを行いました。
本番環境で動かないなどの不具合が起こり、何度も修正を重ねました。
振り返り
Keep(継続すること、良かったこと)
・Slackの活用
・SlackのCanvasを使った情報整理
・Slackのスレッドで情報を共有
・一時間タイマー
・実装の担当者分け
・迅速な情報共有
Problem(問題点、反省点)
・報告の遅延
・スケジュールに遅れが出そうな段階で相談しなかった
・遅れが出ても「なんとかしなきゃ」だけで報告しなかった
・遅れている工数の把握が出来ていない
・個人単位で何日遅れているかの報告のみだった
・グループ全体で何人日遅れているかまとめていなかった
Try(次回に向けて、改善点)
・報連相確を迅速に
・怪しいと思ったら実際に遅れが発生する前に相談
・実際に遅れが出たら即報告
・開発の進捗は工数で把握する
・グループ全体で何人日分の作業が終わったかまとめる
・各機能で何人日という単位で考える
苦労した点
・初めて扱う技術が多く、調査に時間を費やした
・実際にコードを書いてみると足りないものが出ることが多かった
・1週目の機能の洗い出し、詳細設計の詰めが甘く、実装週でも仕様の確認を頻繁に行った
まとめ
ほとんどのメンバーがアプリを作成したことがないグループでした。
その中、機能洗い出しでたくさんの機能が出てきた際、メンバー全員とても不安な気持ちになりました。しかし、各々が担当の機能を責任を持って取り組むことで、サーバーにデプロイして動作するものを作ることができた際には、大きな自信に変わりました。
今回のグループ演習では、情報共有を多く行うことが必須で求められたので、改めて、報連相確の大切さをメンバー全員が実感することになりました。この経験を配属後も忘れずに、活かしていきます。