こんにちは、とまだです。
アドベントカレンダー、開発でチャレンジして、失敗・成功したことをシェアしようの 9 日目の記事をお届けします!
私がいまの現場に入ったとき、基本的には Ruby on Rails のバックエンド開発を担当していました。
ただ、よりリッチな UI/UX を提供するために Vue.js を使ったフロントエンド開発も必要となったものの、全くの初心者という状況でした。
そんな私が、**モブプログラミング(モブプロ)**を通じてフロントエンド開発を学んだ経験を共有したいと思います。
モブプロとの出会い
当然のことながら、Vue.js のコンポーネント設計や非同期処理は全くの未経験。
正直 JavaScript すら「全然分からん」という状況からのスタートでした。
そんな中、チームリーダーから毎日 1 時間ずつのモブプロを提案されました。
モブプロとは?
モブプロ(モブプログラミング)とは、複数のメンバーで集まって一つのコンピュータを共有し、一緒にコードを書く開発手法です。
最近ではリモートワークが増えているため、画面共有をしながら書くことも多いですね。
(実際、私はリモートでのモブプロが多かったです)
誰か 1 人がずっと書くわけではなく、15 分や 30 分ごとに交代しながら進めていくのが一般的です。
モブプロへのイメージ
正直、最初は 「自分が分からないことを晒すのは恥ずかしい」 という気持ちが強かったです。
しかし、実際にモブプロを始めてみると否定されることなく、むしろ「分からないことを共有できる環境」が広がっていました。
**「間違ったコードを書いた時こそ、学びがある」**という考え方が身についたのも、モブプロのおかげです。
モブプロで得られた 3 つの学び
1. 実務目線での考え方
自己学習では気づけなかった「実務ならではの考え方」を学べたのが、最も価値のある学びでした。
例えば、機能追加の際も「とりあえず動けばいい」という考えではなく、「将来の拡張性」「他の機能への影響」「パフォーマンスへの配慮」など、様々な観点で考える必要があります。
こういった観点は、本やオンラインリソースではなかなか学びづらいものですので、モブプロを通じて学べたことは非常に貴重です。
2. 設計の重要性
アプリケーションの規模が大きくなるにつれて、コードの見通しが悪くなりやすい傾向があります。
モブプロでは「考え方」を気軽にお互いに共有できるため、聞いているだけでも設計の観点を学ぶことができます。
- 処理の適切な粒度
- 共通処理の設計方針
- 保守性を意識したコードの書き方
モブのメリットは、やはり「なぜそのように設計するのか」という理由を、その場で説明してもらえることです。
後から実装結果を見ることももちろん大切ですが、単なる実装方法だけでなく、その背景にある考え方を学べたのはよかったです。
3. 実践的なデバッグ手法
地味なところですが、デバッグのやり方を学べるのもモブプロの魅力の一つです。
特に 1 人でデバッグするときには見落としがちな部分も、複数人で見ることで見つけやすくなります。
その際、いろんな観点だったり、デバッグツールの使い方を見聞きすることで、自分のデバッグスキルもだいぶ向上したかと思います。
これも、自分では学びにくいポイントなので、モブの良いところですね。
まとめ:モブプロは最高の学習機会
モブプロは単なる共同作業ではありません。
実践的なコードレビュー、暗黙知の共有、設計思想の理解が同時に得られる、最高の場だと思っています。
自分も最初は臆していましたが、慣れないときこそ得られるものが大きいので、ぜひチャレンジしてみてください。
最後まで読んでいただき、ありがとうございました!
他にもアドベントカレンダー記事を書いています!
他にも、2024 年のアドベントカレンダーに参加しています。
以下の記事でまとめているので、よければ他の記事も読んでいただけると嬉しいです!