はじめに
アプレンティスというエンジニアになるための実習に4期生として参加しています。
カリキュラムの中で2回のチーム開発があって、今回はその2回目のチーム開発が終わったので、その振り返りの記事を書きました。
作ったもの
今回のテーマは「ワクワクするもの」でした。
チームで「どうしたらユーザーにワクワクしてもらえるか?」何度も話し合いました。
「休みの日いつも同じでつまんないな」と思ったことはないですか?
サイトは情報量多すぎるし、SNSは疲れるし、「もうちょっとシンプルになんかアイデア出してくれるのないかな?」
そんな人向けのアプリです。
今のところは時間指定でアイデアがランダムで出てくるようになっていますが、「MBTI診断の性格ごとにアイデアを出す」とかも考えていました。
やったこと
おもに環境構築とバックエンドを担当しました。
バックエンドは超シンプルで大したことはやってないです。
Dockerで環境構築したのがいちばん学びが大きかったです。
- アイデア出しでたくさんアイデア考えた。自分が考えたのは自分の書いたコードを説明する練習用のアプリ。チーム内投票で最下位だったので不採用になった😂
- Dockerで環境構築した。docker-composeでrailsコンテナとMySQLコンテナ立ち上げた
- devcotainer使って環境構築した
- 早く終わったら他のチームメンバーの担当を巻き取って行った(フロントのビューにCSS当てる)
- プレゼン前の動作確認で発見したバグを修正した(本来飛ばしたいページに遷移しないので、Javascriptで前のページのドロップダウンメニューで選択した項目ごとに遷移先を変える処理を追加した)
- メインの機能である、休日の過ごし方アイデアを取得する処理を書いた(ideasテーブルからランダムに取得)
よかったこと
- 他の人が実装したところで理解できないところはわかるまで聞いた。自分の理解が合っているか確認して、足りないところや間違っているところを教えてもらった
- Dockerでの環境構築で書いたコードをチームメンバーに説明して、READMEにドキュメントを残して共有した
- コンテナ内でエラーが起きたときにdocker logsでログ見て解決できた
- Railsのコントローラに自分でメソッドをつくって機能させることができた。ビューからコントローラにデータを受け渡せることもわかった
もっとやれたら良かったこと
- プロジェクトの進捗管理を他のメンバーに頼ってしまった
- プレゼンが近づいてきて焦ってくると、やや他のメンバーに対して口調がキツくなってしまったので、もっとソフトな伝え方ができればよかった
- 自分が書いたimportmapの部分やdevcontainerで生じたエラーについて聞かれたときに十分な説明ができなかった
- 既存のrailsに途中からBoostrapを導入しようとしたが、どうしてもエラーが解決できず結局rails newのオプションで作り直してうまくいくも、Docker環境のエラーが解決できず断念した。環境構築のスコープにCSS, Javascriptが反映されるところまで含めるべきだった
- エラーが起きたときにGitHubのissueにあげたが、正直あまり機能してなかった
課題
- 特にimportmapのところで、そう設定すれば一応Javascriptが動くものの、なんでそうなるのか、何をしているのか説明できない=理解できてない
- 調べて記事を見つけてきて、そこに書いてあるコードを用いて一応動くが説明できないのがまだまだある。おおよそ何してるのかはわかっても、ひとつひとつが何してるのかがわかってないから、次同じことやるときに何も見ないで書けない。チームメンバーに聞かれたとき説明で詰まる
- 何も見ないで書けるコードが少ない。理解してないのもあるが、他の記事や公式ドキュメント見ないと安心できない
振り返り
1回目のチーム開発よりたくさんコミュニケーション取れたのがよかったです。
前回のチームでは必要最小限の時間だけ会議してましたが、今回は雑談もたくさんして、そのおかげか納得いかないところや理解できてないところは流さず何回も聞きました。
Dockerのところは自分が書いたところを説明しました。
雑談したほうが関係性もより深まるし、チームとしての一体感も高まるなと感じました。