【テックエキスパート】最終課題を終えて
本日最終課題発表が終わったので、記憶が鮮明なうちに思ったことを残しておこうと思います。
結局よかったの?わるかったの?
よかったです。有意義なカリキュラムでした。
個人開発では経験できないことがたくさんできたし、自分なりにうまくいくだろうと仮説を立ててやったことがうまくいったりもしました。
チーム内で離脱した人、離脱しそうになったけど復活した人、めっちゃスキルレベル高いのに自信が全然ない人
色々な人と一緒に一つのプロダクトを作ることの大変さが経験できたことが一番よかったことです。
最終課題でやったことなど
- 某フリーマーケットサイトのクローンを作成する
- 使用ツールはRails on Rails/Haml/JS/JQuery/AWS/Github/Trello/slack
- 期間は2.5ヶ月(夜間組み)
- チームメンバーは4人(開始1週間で1人脱落した)
うまくいったこと
チームメンバ全員でやらなければならない事を意識共有
必須タスクと応用タスクが決められているんですが、あらためて実際のサイトで商品を出品したり、購入したりしながら、チーム全員で自分が作るべきサイトのイメージ合わせを行いました。
さらにGoogleスライドを使ってタスク毎に作成するサイトの画面ハードコピーを貼り付けて、資料化していつでも見れるようにしました。
個人的にはこの資料化の作業をする中で作業の全体像が腹落ちした感じです。
タスクの詳細化
タスク管理はTrelloで実施することが推奨されていて、デフォルトで必須タスク、応用タスクが設定されているのですが、そのタスクをgoogleスプレッドシートで詳細化しました。
1つのタスクを数日で消化できるレベルまで詳細化することで、そのタスクがうまく消化できなかった時にリカバリーできるスピードを早めることができました。
また、タスクを細かくすることで、自分のタスクを終わらせた人が空いている他のタスクに取り組みやすい仕組みを作ることもできました。
日々やったことの情報共有
チームメンバーは割り振られたタスク毎に完了日を決定し、毎日作業進捗をslackで報告するルールにしました。アジャイル開発でいうところのデイリースクラムの代わりのイメージです。
報告内容は
- その日やったこと
- 明日やる予定のこと
- 困っていること
の3つとしました。
夜間組みは基本的にスクールにきて顔を合わせて作業をすることがなく、お互いの作業進捗状況が分かりにくいで、この日々進捗報告はとても重要でした。
完了予定日が近づいていても進捗が進んでいない時はみんなでリカバリー案を考えるし、困っていることがあればアドバイスしたり、週2回設定したスクールでの顔合わせミーティングで一緒に解決したりしました。
チームメンバー間の褒め合い
日々やったことの情報共有と並行してやったのが、「チームメンバー間の褒め合い」です。誰かが進捗報告したら、「最高」や「いいね」等の顔文字で反応することをルール化しました。
自分の報告に対して、反応がもらえたら嬉しいことはtwitterで経験済みだったのですが、やはりslackでも自分の報告にいいねがつくと嬉しいものでした。
- 進捗を報告する
- いいねがつく
- 嬉しい
- 明日も進捗報告できるように実装を頑張る
- 1に戻る
このサイクルをうまく作ることができたと思っています。
ちなみに私はtwitterにも進捗を報告して、2倍のいいねをもらってモチベーションを維持していました。
できる人ができるところをどんどん進めていく
チームメンバーには実装時間をしっかり確保できる人と、仕事が忙しくてなかなか時間が取れない人がいました。
全ての人に同じタスクを割り振るのではなく、時間を確保してタスクを進められる人がどんどん進める方式にすることで、結果的にチームとして最大の成果が得られたと思っています。
失敗したこと
できる人に難しいタスクが集中して、チームメンバーの成長機会が失われた
チームとしてもっとも効率的な成果を出したと思っていますが、その代償として作業時間を確保できる人にタスクが集中してしまいました。
チーム全体の経験値向上を考えるならば、タスクを消化できる人がどんどんこなしていくやり方は良くないかもしれません。
詳細にタスクに必要な稼働を見積もる
チーム開発の役割分担を行う時に、「難易度」と「作業量」からタスクの稼働量を計算したんですが、結果的に意味がありませんでした。
理由は初学者がタスクの稼働量を見積もっても精度が大したことないから。
精度の低い方法をあれこれ考えるより、とにかく目の前のタスクを全力でこなす方が効率的だと感じました。