チーム開発:2回目の経験
こんにちは、jjj0331です。今回はチーム開発についての記事を投稿します。
プロジェクトの概要や課題、そしてその感想を共有しますので、ぜひ参考にしてください。
チーム開発の概要
4人のチームメンバーで「ワクワクするものを開発せよ」というお題に対して、アイディア出しから要件定義、設計、実装、そして最終発表まで行いました。
アプリ名:JourneyJunction - 旅の地図をみんなでシェア
最終的に「JourneyJunction - 旅の地図をみんなでシェア」というアプリを開発しました。このアプリの目的は、同じ趣味を持つユーザー同士が旅行プランを共有できることです。各ユーザーが趣味の旅行プランを投稿し、他のユーザーがそれを参照することができるアプリを開発しました。
開発工程
アイディア出し
「ワクワクするものを開発せよ」というお題に対して、チームメンバー内で各々が考えるワクワクするものをどんどん出していきました。新しい知識を習得する、海外のことを知る、ゲームなどの様々な要素が集まり、いくつかのアプリのアイディアが出ました。
【課題】
ワクワクするものの案はたくさん出ましたがそれらを組み合わせてアプリにしようとした際に、
次のアイディアが決まらず、時間がかかりました。
また、リモート会議でも沈黙する時間が多くなりました
【解決策】
Miroというアプリを使用して、各メンバーが考えていることをどんどん書いていきました。リモート会議で発言するよりハードルが低くなり、各メンバーがアイディアのどこに魅力を感じているのか分かりました。
要件定義
旅行先を共有するアプリということで、以下のような機能を定義しました:
・基本的なログイン機能
・旅行先リストの投稿およびCRUD処理
・旅行先リストの検索機能
・お気に入りの旅行先を登録する機能
・Google APIを用いたおすすめ旅行先の表示
Railsのみで開発することや、アプリの実装時間から必要最低限の機能のみを要件定義で決めました。
【よかったこと】
各メンバーのPCにRailsの環境が整っていたため、Dockerなどを使用せずGitHubでコードだけを共有するような開発手段を取りました。Dockerの勉強にもなるのでDockerを取り入れてもよかったのですが、アイディア出しで予定が遅れていたので、GitHubでコードを共有するだけにしました。結果として、スムーズに開発に入ることができたので良かったです。
設計
ER図
【課題】:ER図の認識を合わせるのに苦労しました
【解決策】:スプレットシートにデータのイメージを入れ説明しました。ER図だけでは伝えづらい各テーブルのデータのイメージを共有できてよかったです。
画面デザイン(画面遷移図)
Figmaを使用して画面のイメージを共有したかったのですが、Figmaを学習する時間もなかったので、画面デザインや画面遷移については詳細は決めませんでした。
実装
実装では、バックエンドを担当しました。
Railsで複数テーブルのリレーションを作成する方法や、一度に複数レコードを作成するアクションを作成しました。
【課題1】:テーブルのバリデーションでおかしなデータの登録を防ぐことができなかったです。
「Todolist」テーブルの「緯度」「経度」に関してはバリデーションを実装したかったです。
ダミーで適当なデータを入れていたためGoogleAPIで動作確認する際にエラーが発生しました。
エラー原因は特定できませんでしたが、存在しない「緯度」「経度」のデータが原因だと思います。
※ちなみにこのエラーは、ダミーデータをすべて削除すると解消できました。
【課題2】:RailsでControllerクラスを作成する際に、アプリの画面遷移の詳細を決めていなかったので、実装がストップしてしまいました。
【解決方法2】:とりあえず、自分のイメージでControllerクラスを作成し、フロントエンドチームに何ができるようになったのかを示しました。
最終的には、フロントエンドチームがうまいこと実装してくれました。
まとめ
チーム開発をすると一人では開発できないようなアプリを開発することができるので楽しかったです。私自身は実装の部分で大きく貢献はできなかったので、今後の行動として、技術力の向上を目的に各メンバーのコードの内容を確認して不明な個所があれば確認していこうと思います。
チーム開発を通して、気軽に質問できる環境は整ったので学習の機会を逃さないようにしたいです。