僕は「フィヨルドブートキャンプ」というプログラミングを学ぶサービスに参加している。そこではチーム開発(Rails)の課題がある。GitHubを使用し、実際にサービスとして運営されているEラーニングシステムを開発する。
今回、チーム開発課題を終えたので振り返る。
やったこと
具体的にはこちら。
取り組んだ作業をざっくりいうと、以下のとおり。
- かんたんな文言修正
- 既存の機能にあらたに機能を追加
- ゼロから新機能を追加
どのように進めたか
- まず実装後のイメージをすり合わせる
- ポモドーロ・テクニックを使ってタスクを進める
まず実装後のイメージをすり合わせる
「どんなものを作ったらいいか」を早めに確認するようにしていた。
今までの仕事の経験から、仕事が遅れる理由のひとつは「出戻り」だと思っている。せっかく仕事をしても、上長に「うーん、これ思ってたんと違うわぁ」と言われたら時間のムダだ。
「こんなものを作ろうと思ってますが、どうですか?イメージとはあっていますか?」と、Issueにアサインされた時に確認するようにしていた。
ポモドーロ・テクニックを使ってタスクを進める
チーム開発に限ったことではないが、普段からポモドーロテクニックを使ってタスクを進めている。
ポモドーロを使うことで、以下のメリットがあると考えている。
- 強制的に休憩が始まるので、ずっと同じ部分で悩んでいた場合にすぐ気づける
- ズルズルと迷路に迷わず、「これ質問したほうが早いやん!」という考えを持つことができる
- 作業時間が可視化されるので、「自分これだけやったんだな〜」とモチベーションアップにつながる
- 過集中を防ぐ
どれくらいの期間かかったのか
チーム開発課題は3ヶ月で終えた。期間は人それぞれで、1ヶ月で終わる人もいれば、3〜4ヶ月かかる人もいる。
実は、期間中に第2子が生まれ、育児をしながらの開発となった。「まぁ2人目だし、ある程度慣れてるし、なんとかなるっしょ」と思っていたが、全然なんとかならなかった😇
まず、作業時間があきらかに減った。抱っこをしながらスタンディングデスクで開発することもしばしば。赤ちゃんがギャン泣きして、自分の開発が思うように進まないときは、正直しんどかった。
しかし、「もしかして、これが終わったら自分は鋼のメンタルを手に入れちゃうんじゃないの・・・?😎」と考えるようにした。終わった今、鋼メンタルではないが、自分の中で「困難」を「チャレンジ」に咀嚼できたかなとは思う。
どんなことに苦労したか
初めてのチーム開発だったので、いろいろ苦労した。具体的には次のとおり。
これらに関しては学びが多いため、個別記事で振り返っている。
k-koh.hatenablog.com k-koh.hatenablog.com
今後は外部APIの利用やテストについても振り返りの記事を書く予定です。
わからないときにどうしたか
「あ、自分は今詰まってるな〜」とわかったときは、大きく分けて以下のことをした。
- まず基本に立ち返る
- 一人で悩まず、すぐに質問&相談する
まず基本に立ち返る
いろいろ勉強してきたとはいえ、まだRailsでの開発経験は少ない。基礎知識の不足が理由で詰まっている場合も多かった。
そんな場合、以下の書籍をよく読み返していた。
- 「プロを目指す人のRuby入門」
- 「現場で使える Ruby on Rails 5速習実践ガイド」
- 「独習 Ruby on Rails」
一人で悩まず、すぐに質問&相談する
詰まりそうになったら、メンターさんや先輩エンジニアにガンガン質問していた。
フィヨルドブートキャンプでは、毎日ビデオチャットで質問できる時間帯がある。育児で参加できない以外、積極的に参加した。新機能を開発中のときは、ほぼ毎日参加して質問していた。
僕の強みは「何がわからないのかわかりません」と言えることです(ドヤァ)
— Kota Kanazawa (@KanazawaKoh) 2020年8月10日
学び
チーム開発課題を通して、多くのことを学んだ。
なにより、実際に運営されているサービスを開発するため、「これは仕事なんだ・・・!」と気合が入る。テストもしっかり書かなければいけない。
当然、メンターさんのレビューも他の課題より厳しめになる。「レビュー ⇔ 修正」を何度も繰り返したこともあった。
感想
プログラマとして仕事を進めるための「総合的な基礎」が身についたと感じている。育児と並行してできたのも自信につながった。