初めてのチーム開発
1.はじめに
はじめまして、私はWEBエンジニアを目指す24歳の社会人です
今回は、2023年10月より参加させていただいている、アプレンティスシップにて、初めてのチーム開発を経験することが出来たため、振り返りをしていきたいと思います。
2.何をつくったか
私たちのチームでは、オフラインwebページマネージャーというアプリを開発しました。
なぜこのアプリに決まったのかについては、今回の開発テーマが 「自分たちの役に立つもの」ということから色々案を出した結果、実際に私が直面した困りごととして、Wi-Fiの接続が不安定になり、Githubを閲覧できず、アプレンティスの課題がわからなくなってしまった、という些細なできごとから、「ならオフラインでも閲覧できるようにするアプリを作ろう!」となったのがきっかけです。
実際の悩みからアイデアが決まるという貴重な経験にもなりました。
3.開発までの具体的なスケジュール
チーム開発は開発2ヶ月前から顔合わせを行い、週に2度のミーティングを行うという流れで開発が進んでいきました。
今回のアプリ開発、具体的には開発したアプリをプレゼンする日程(12月3日)までのスケジュールについてはNotionを使用して、下記のようにまとめました。
11/03(土):アイデア決定【全員】、ざっくり担当者決め【全員】
スライド作成(デモストーリーを意識、大枠でOK、アピールポイントまとめ、この段階では最悪絵がなくてもok)【Aさん】
Githubリモートリポジトリの用意【Bさん】
11/08(水):スライド確認【全員】、要件定義【全員】、画面遷移図作成【全員→私】
Githubリモートリポジトリへの接続確認【全員】
画面遷移図作成の続き【私】
11/11(土):画面遷移図確認【全員】、タスク切り出し【全員】、担当者単位でタスク時間見積もり【全員】、担当者割り振り【全員】
ガントチャート作成【Bさん】(早めに)
11/15(水):ガントチャートの確認【全員】
ワイヤーフレーム作成【誰か】
11/18(土):設計と環境の確認【全員】
11/22(水):予備日
11/25(土):
プログラミング【全員】
プレゼン資料作成【Aさん】
4.アプリの機能
アプリの機能は一言でWebページをオフライン環境でも管理・閲覧ができる、というものです。
具体的には、Githubのアプレンティスのリポジトリの閲覧、Zenn記事・Qiita記事のダウンロード・閲覧ができるアプリです。
5.チーム開発を振り返って(良かった点)
(1)初めにスケジュールをたてることができた。毎回のスケジュールを立てることで具体的にタスクの見積りを考えることや、毎回のミーティングで滞りなく進行することができた。
(2)画面共有しながら相談することで、一人で悩む時間よりもスムーズに問題を解決できた。とくに環境構築のさいのエラーについてはほんとにわからないことだらけだったので、エラーを自分だけで解決しようとしてたら何倍もの時間を無駄にしてたと感じました。
(3)最後に自分なりに技術的な挑戦ができたことです。チームメンバーの補助もあり、自分のタスクが終わった後、JavaScriptを用いたページネーションの実装を試みました。この経験は、試行錯誤を経て、自身のスキルと学習への意欲を深める機会となりました。
6.チーム開発を振り返って(悪かった点と対策)
(1) 必要な技術が何かが不透明なまま進めてしまった。初めに、ガントチャートで個人のタスク振り分けをした際に、必要な言語、実装する内容(保存ページのHTML作成、Zenn記事を表示するなど)実装までの期間などを決めていきました。しかし実際にとりかかろうとした際に、実際には何をするべきかわからないという感じで手が止まってしまい、結果チームメンバーの負担を大きくしてしまう結果になりました。
(1対策) そのため漠然として内容だけでなく、もっと深くこの実装にはこの技術が必要になってくるといったプロジェクト開始時に必要な技術要件を明確に話し合いをしていく必要があると感じました。まだまだ初心者のうえに、チーム開発の期間も短い点を年頭に入れ、少しでも詰まってしまうという時間を減らすことでより効率的に満足のいく開発ができるのではと思います。
(2) 相談不足。期間が短いのに一人で考え込んで時間を費やしてしまいました。1つ目とつながりますが、自分が任せられたタスクに責任をもって一人で挑戦したいという思いもあり、試行錯誤をしていましたが、チームメンバーに負担させる結果になったことは、自分のコミュニケーション不足であることを痛感しました。
(2対策) ミーティング以外でも相談する場を設ける。日頃から会話することで相談できる環境にする。ディスコードでのチームとのつながりはもちろんありましたが、実際にミーティング以外での使用がなかったため、躊躇してしまうことがあったので、日頃から会話があるような環境にしていければと思いました。
(3) 1つ目、2つ目ともつながりますが、単純にアプリの機能への理解が不足していることが挙げられます。ダウンロードといっても実際にはどのような仕組みで行われているのか、保存したものを管理するのがどのような仕組みなのか、ピンと来ないまま取り組んでしまったため、何の技術が必要なのか想像もできず、手が止まり時間を費やしてしまいました。
(3対策) そのため、1つ目、2つ目同様に、相談や綿密な計画にするなどを心がけていきたいと思います。
7.さいごに
まず、無事にプレゼンまで終えることができて良かったです。一緒に開発に取り組んだチームメンバーにも感謝の気持ちでいっぱいです。
私個人としては至らない点が多く反省ばかりですが、チームとして計画をたてて完成までに至ることができて、この経験は本当に貴重な機会になりました。
今回の反省点をいかして、また次回のチーム開発では少しでもチームメンバーに貢献していきたいと強く思います。