はじめに
私は現在アプレンティスシップに参加中です。
その中でチーム開発をすることがありましたので、学んだことや今後生かしていけたらと思うことをまとめていきます。
チーム開発の流れ
約2週間でHTML/CSS/Ruby/SQLを使って、「自分たちの役に立つもの」をメンバー3人で作っていこうという課題でした。
全員初めてということもあり以下の記事を参考に要件定義から実装まで取り組んでいきました。
要件定義
どんなアプリを作ろうかというアイディア出しに始まり、
結果的に「お酒のアレンジレシピ投稿サービス」を作ろうとなりました。
そこから、以下のような必要な機能を列挙していき設計フェーズに移行しました。
- レビュー投稿
- レシピ投稿
- ユーザー登録/ログイン
- レシピ一覧
- レシピ詳細
設計
私は画面設計の一部とDB設計を担当しました。各設計は他のメンバーのレビューを行い問題がないかを確認しつつ作成していきました。
- デザイン
- 機能設計
- 画面設計(一部担当)
- DB設計(担当)
画面設計ではfigmaを使用し以下のような簡単なUIを作成しました。
DB設計ではmermaidを使用し最終的にはER図を作成しました。
実装
Notionでタスク管理を行い、タスクごとに優先度を決め、
最低限この機能がないと成り立たないよねといったものを優先的に進めていきました。
今後のチーム開発で意識したいこと
今回のチーム開発を通して成功したことや失敗したことさまざまありますが、特に以下を意識していけたらと考えています。
1. 共通の環境を構築する
メンバーの一人がRuby/MysqlのDocker環境を事前に準備いただき、実装にスムーズに入ることができました。
具体的な方法: Dockerのようなコンテナ技術を使用して、全員が同じ開発環境を共有できるようにする。また、Gitを使用して、コードの一貫性を保持する。
2. 〆切を決める
Notionでタスク管理はできていましたが、具体的な期限決めができていなかったため、成果物提出期限ギリギリになってタスクが完了していないという事態が発生してしまいました。
具体的な方法: プロジェクトのスコープに基づいてリアルな期限を設定し、定期的な進捗確認を行う。アジャイル開発の手法を取り入れ、短期間でのイテレーションを行うことも有効。