テックエキスパートチーム開発課題日記#1(DB設計編)
スクールを検討している人
テックエキスパートの最終課題には"チーム開発"があるって聞くけど実際どんな感じで進んでいるのか知りたい 。あと、実際の担当個所の話も聞いてみたい。

上記の疑問に回答していきます。

本記事の内容
  • チーム開発がどんな感じで進んでいるのかが分かる
  • 担当個所の簡単なご紹介

この記事を書いているぼくは、プログラミングスクール(テックエキスパート名古屋)の最終課題であるチーム開発を 7月20日から 進めておりまして、どんな感じで進んでいる解説していきます。

さっそく、はじめます。

なにをどれくらいで開発するの?

以下の通りです。

  • あるECサイトのクローンサイト
  • 10週間
  • 5人体制(女性2人、男性3人)
  • 全員夜間週末コース
  • 2週間に1回スクリプトレビュー

ぼく達は夜間週末コースでして基本的に平日に開発しつつ、週末には教室でミーティングで進捗や課題を共有していく感じです。

どんなスキルを使っていくの?

以下の通りです。

  • Ruby on Rails
  • Java script/jquery
  • Ajax/json
  • HTML/CSS(haml表記)
  • AWS

上記の通りでして、いままでにカリキュラムで積み上げてきたスキルを活かして開発していきます。

開発ツールは何を使っているの?

以下の通りです。

  • Trello(タスク管理ツール)
  • Slack(コミュニケーションツール)
  • GitHub(ソース変更管理ツール)
  • Visual Studio Code(エディター)

上記の通りでして、基本的には無料公開されているツールを使用して開発しています。

Slackはテックエキスパート側が管理しているワークスペースを使用しチーム開発専用のチャネルでチームメンバとはコミュニケーションしています。

チーム開発の課題

チーム開発キックオフから1週間経過しましたが以下の状況です。

  • メンバーの進捗が不明
  • メンバーと会える日が不明
  • 各メンバのタスクがいつ完了予定が不明
  • コミュニケーションに無駄がありすぎる

順に解説していきます。

メンバーの進捗が不明

キックオフ後に各自タスクをTrelloで割り振りしました。1週間ほど経過しても特に状況連絡もない状態でして、 メンバーがいつタスクを終わらせようとしているのか全く分からない状況です。

各メンバのタスクがいつ完了予定が不明

作業中のタスクに期限がないので、メンバーはどこに向かって作業しているのか不明な状態がすでに1週間ほど経過しています。

メンバーと会える日が不明

キックオフ後にミーティングはプログラミングスクール教室で土曜日の午前中にするとチームメンバーでとりきめました。

が、一週目の土曜日にSlackで「土曜日はミーティングいけません」 や"音信不通"など。

このチームは一体何なんだ?という印象でした。

コミュニケーションに無駄がありすぎる

Slack内でコミュニケーションを見ていると、生産性がない会話が続いています。

例えば、リーダが「土曜日のミーティングは集まれる人が少ないので夜にミーティングやりたいです。どうですか?」とSlackで投稿したレスは以下の通りでした。

「私は何時でもいいんですが、他の方はどうなんですかね」、「夜だと何時ぐらいになりますか?」

上記の通りでして、何も決まらない会話が続いていました。

回答するのであれば、「ぼくは何時から何時であればミーティング可能です」と返信する方がコミュニケーションが進みますね。

上記の課題に対して対策をして様子をみつつチーム開発を進めていきます。

効果があった対策は別途報告します。

ぼくの担当個所と進め方

ぼくが最初に担当したのはDB設計でした。

進め方は以下の通りです。

  • 各画面の情報をピックアップ
  • 情報のカテゴリ別に整理
  • エンティティの抽出と定義
  • 正規化

決済や取引情報を使ったECサイトのDB設計は経験はなかったですが、何とか上記のステップからエンティティの定義とER図を作成しました。

エンティティの定義

以下の通りです。

ER図 version.1

以下の通りです。

特徴は商品エンティティ、商品出品の状態エンティティ、商品の取引状態エンティティを定義しテーブルを分けています。

理由は以下の通りです。

  • 負荷分散:1番負荷がかかる商品出品テーブルを独立させた
  • 商品取引を一意のidで特定できるようした

ここでの解説は長くなってしまうので割愛します^^

一旦作成したER図をチームメンバに共有したところ、何の反応もなかったです。

どうも複雑なテーブル構成だったようです。確かに少し複雑ではあります。

ER図 version.2

という事ですこし簡略化したテーブル構成に変更しました。

特徴は商品エンティティ、商品の出品状態(出品、取引)エンティティを定義しテーブルを分けています。

以下の通りです。

ER図 version.2のテーブル構成がすっきりしているのが分かるかと思います。

ここでも解説は省きます。

結局、ER図 version.2で進める事にし現在はレビュー依頼中です。

さいごに

今回はぼくが担当しているDB設計を中心にチーム開発がどんな感じで進んでいるのかを解説しました。

今後もチーム開発は進んでいくのでその都度、開発状況をお伝えしていければと思います。

今回は短いですが以上になります。

関連記事