「チームで開発ってどこから始めればいいの?」「役割分担が曖昧でいつも後半バタバタする…」
そんな悩み、すごくよくわかります。プログラミングを一通り学んだあと、いざチーム開発となると「個人学習との違い」に戸惑う人が続出するんです。実はこれ、現場の新人エンジニアにも共通する”あるある”な壁。
今回は、1チーム5名・10日間・テーマ「みんなの役に立つWebシステム」というプロジェクト型演習を例に、ステップバイステップの進め方とつまずきやすいポイント&対策をまるっとまとめました。
この記事を読めば、演習をスムーズに進めるための全体像と実践的なコツが身につきます。チームリーダーになる人も、メンバーとして参加する人も、ぜひ最後まで読んでみてください!
目次
- 前提知識:演習に入る前に確認しておこう
- 10日間の全体スケジュール概要
- STEP 1|Day1〜2:チーム結成 & 要件定義
- STEP 2|Day3〜4:設計フェーズ(UML・DB・画面設計)
- STEP 3|Day5〜7:実装フェーズ(Java Servlet × DB連携)
- STEP 4|Day8〜9:テスト & デバッグ
- STEP 5|Day10:最終発表 & 振り返り
- よくあるつまずきポイントと対策
- まとめ
前提知識:演習に入る前に確認しておこう
この演習は「プログラミング学習の集大成」として位置づけられています。スムーズに進めるには、以下の知識が身についていることが前提です。
- Java言語の基礎(クラス・継承・例外処理など)
- Webの仕組み(HTTP、リクエスト/レスポンス、HTML/CSS)
- Java Servlet / JSP(MVCの概念、フォーム送受信)
- データベース基礎(MySQL、基本的なSQL:SELECT・INSERT・UPDATE・DELETE)
- JDBCによるDB接続(Javaからのデータベース操作)
- UMLの基礎(ユースケース図・クラス図・シーケンス図の読み書き)
「全部完璧!」でなくてもOK。ただ、「全然わからない」状態だと演習中に手が止まりやすいので、不安な分野は事前に復習しておくと安心です。
10日間の全体スケジュール概要
| 期間 | フェーズ | 主な作業 |
|---|---|---|
| Day 1〜2 | 🚀 キックオフ・要件定義 | チーム結成、テーマ設定、ユーザストーリー作成、要件定義書作成 |
| Day 3〜4 | 🎨 設計 | UML設計、DB設計(ER図)、画面設計・遷移図 |
| Day 5〜7 | 💻 実装 | Java Servlet実装、DB連携、画面(JSP/HTML)作成 |
| Day 8〜9 | 🔍 テスト・修正 | テスト仕様書作成、単体・結合テスト、バグ修正 |
| Day 10 | 🎤 発表・振り返り | デモ発表、質疑応答、KPT振り返り |
STEP 1|Day1〜2:チーム結成 & 要件定義
🎯 このフェーズのゴール
「何を作るか」と「誰がどの役割を担うか」をチーム全員で合意すること。
具体的な手順
- 役割分担を決める:プロジェクトリーダー(PM)、DB担当、フロントエンド担当、バックエンド担当、テスト担当などを決める。5名なら1人が複数役割を兼務することも自然。
- テーマをブレインストーミング:「みんなの役に立つWebシステム」というテーマで、アイデアを出し合う。例:図書管理システム、タスク管理ツール、食堂メニュー掲示システムなど。
- ターゲットユーザーを決める:「誰のために」を明確にすることで、機能の優先度が決めやすくなる。
- ユーザストーリーを書く:「○○として、△△したい、なぜなら□□だから」という形式でユーザの要求を洗い出す。
- 要件定義書にまとめる:機能一覧、画面一覧、制約条件(使用技術、対応ブラウザなど)を文書化する。
⚠️ ここでよくあるつまずき
「機能が多すぎて10日間では終わらない」問題が頻発します。機能を考えるのは楽しいですが、「MVP(Minimum Viable Product)思考」で”最小限でも動くもの”を優先しましょう。最初から盛り込みすぎると後半で必ず詰まります。
STEP 2|Day3〜4:設計フェーズ(UML・DB・画面設計)
🎯 このフェーズのゴール
実装前に「設計図」を描き、チーム全員が同じイメージを持った状態にすること。
具体的な手順
- ユースケース図を作成:アクター(ユーザ)がシステムに対して何をするかを図示。全員で確認することで「認識のズレ」をこの段階で解消できる。
- クラス図を作成:データの構造と関係性を定義。JavaのクラスやDBテーブルの設計につながる。
- ER図(テーブル設計)を作成:エンティティ(テーブル)と関連(リレーション)を設計。主キー・外部キー・データ型も明記する。
- 画面遷移図を作成:どの画面からどの画面に遷移するかを図で示す。URLも一緒に設計しておくとServletのマッピングがスムーズ。
- シーケンス図を作成(できれば):ブラウザ→Servlet→DB→Servletという一連の処理フローを可視化する。実装時の道標になる。
⚠️ ここでよくあるつまずき
「設計が雑なまま実装に進んでしまう」パターンが一番多いです。「早く作りたい!」という気持ちはわかりますが、後から設計変更をすると手戻りが膨大になります。設計に時間をかけるのは”遠回り”ではなく”近道”です。
STEP 3|Day5〜7:実装フェーズ(Java Servlet × DB連携)
🎯 このフェーズのゴール
設計書に基づいて動くシステムを構築すること。
具体的な手順
- 開発環境を統一する:Eclipse(またはIntelliJ IDEA)、Tomcat、MySQLのバージョンを全員で揃える。「自分のPCでは動く」問題を防ぐために最初が肝心。
- DBを先に作る:ER図をもとにMySQLでテーブルを作成。CREATE TABLE文はチームで共有・管理する。
- 共通部品から実装する:DB接続クラス(DBUtil)、セッション管理など、全員が使う共通クラスを先に作ると後の作業が楽になる。
- Servletを機能単位で実装:1Servlet = 1機能を基本に、doGet / doPost を使い分ける。設計のシーケンス図が道標になる。
- JSPで画面を作成:EL式・JSTLを活用してServletから受け取ったデータを表示する。デザインはシンプルでOK。まず動かすことを優先。
- Gitなどでバージョン管理(推奨):最低限でもファイルのバックアップを取る習慣をつける。上書き事故がチームの士気を大きく下げる。
⚠️ ここでよくあるつまずき
- DB接続エラー:JDBCドライバの設定ミス、ポート番号・パスワードの打ち間違いが多い。接続テスト用のシンプルなクラスを最初に作って確認しよう。
- 文字コードの問題:フォームで日本語を送信すると文字化けすることがある。
request.setCharacterEncoding("UTF-8")をdoPostの先頭に忘れずに。 - 作業の重複・衝突:誰が何をやっているか不明になりがち。毎朝10分の「朝会(スタンドアップ)」で今日やることを共有するだけで大幅に改善できる。
STEP 4|Day8〜9:テスト & デバッグ
🎯 このフェーズのゴール
作ったシステムにバグがないか確認し、品質を担保すること。
具体的な手順
- テスト仕様書を作成する:テスト項目、入力値、期待する結果、実際の結果、OK/NGを記録する表を用意する。「なんとなくテストした」では抜け漏れが生じる。
- 単体テスト(コンポーネントテスト):各Servletや処理ロジックを個別に動作確認する。特に境界値(入力の最大・最小、空文字など)を意識してテストする。
- 結合テスト:複数の機能をまたいだ操作フロー(例:ログイン→データ登録→一覧表示→ログアウト)を実際に試す。
- バグ管理と修正:発見したバグはリストに記録し、担当者を割り振って修正する。修正後は必ず再テストを実施。
⚠️ ここでよくあるつまずき
「テスト仕様書を書かずに感覚でテストしてしまう」のが最大の落とし穴。テスト担当者とバグ修正者が別になると「どんな操作で起きたバグか」の情報共有が曖昧になり、修正に時間がかかります。記録することがチームテストの基本中の基本です。
STEP 5|Day10:最終発表 & 振り返り
🎯 このフェーズのゴール
成果を他者に伝え、学びを言語化すること。
具体的な手順
- デモ発表の準備:実際にシステムを動かしながら発表する。「何の課題を解決するか」「どんな機能があるか」「工夫した点」を簡潔に伝えられるように準備する。
- スライドまたはREADMEを用意:口頭だけでなく、画面を見せることで伝わり方が格段にアップする。
- KPT振り返りを実施:Keep(よかったこと)、Problem(困ったこと)、Try(次に試すこと)の3つで演習全体を振り返る。個人だけでなくチームとして振り返ることが大切。
⚠️ ここでよくあるつまずき
「完成度が低いから発表できない…」と感じる人もいますが、完成していなくても発表に価値はあります。どこまで進んだか、何が難しかったかを伝えること自体が学習の証。発表を恐れずに挑みましょう!
よくあるつまずきポイントと対策【総まとめ】
| つまずきポイント | 対策 |
|---|---|
| 機能を詰め込みすぎる | MVP思考で「最低限動くもの」を先に完成させる |
| 役割分担が曖昧 | Day1に担当領域と担当Servletを明確に決めて文書化する |
| 設計が雑なまま実装に進む | ER図・画面遷移図・シーケンス図をチーム全員で確認してから着手 |
| DB接続エラーが解決できない | 接続テストクラスを最初に作り、全員で動作確認してから開発開始 |
| 作業の重複・衝突が起きる | 毎朝スタンドアップ(10分)で今日の作業を共有する |
| テストが感覚的になる | テスト仕様書を作成し、全テストを記録・管理する |
| 後半に時間切れになる | Day4終了時点で「実装に入れる状態かどうか」をチェックポイントに設ける |
まとめ
今回は「1チーム5名・10日間のプロジェクト型演習」の進め方を、全5ステップでお届けしました。
- Day1〜2:チーム結成・役割分担・要件定義でチームの方向を揃える
- Day3〜4:UML・DB・画面設計で実装の「地図」を作る
- Day5〜7:Java Servlet × DBで機能を実装する
- Day8〜9:テスト仕様書を使って品質を担保する
- Day10:発表とKPTで学びを言語化する
プロジェクト型演習の最大の価値は、「技術を使って問題を解く体験」と「チームで動く経験」の2つを同時に積めることです。うまくいかない日もあると思いますが、それも含めて現場で活きる”生きた学び”になります。
「みんなの役に立つWebシステム」というテーマに、ぜひ本気で向き合ってみてください。きっとその10日間が、あなたのエンジニアとしての大きな一歩になるはずです!
応援しています!💪
