Classi開発者ブログ

教育プラットフォーム「Classi」を開発・運営するClassi株式会社の開発者ブログです。

がっつりペアプロ・モブプロを通して学んだこと

こんにちは!Classiでモバイルエンジニアをしています、インディこと楠瀬大志(id:indiamela)です。
2023年3月15日、iOS版/Android版ホームアプリにてマルチアカウント機能が使用できるようになりました!

Classiホームアプリとは

「Classiホームアプリ」は、Classiを利用する生徒、先生、保護者向けのアプリです。Classiに届いた最新情報をプッシュ通知で受け取ることができます。ブラウザでClassiにアクセスしなくても、ご自身宛のメッセージや所属する校内グループの連絡を受け取れるので、タイミングを逃しません。また、ログインのたびにIDとパスワードを入力する必要がなくなり、Classiの主要な機能がご利用いただけます。

(引用:Classiのアプリについて

マルチアカウント機能とは

これまでClassiアプリで複数アカウントを利用する場合は、各アカウントに届くお知らせの確認や欠席連絡を行う時に、毎回アカウント切り替えのためにログイン・ログアウトを行う必要がありました。 今回リリースしたマルチアカウント機能*によって、事前に登録されていればタップだけでアカウントの切り替えが可能となり、同時に他アカウントにきたお知らせも通知されます。学校からのお知らせの確認や忙しい時間帯に行う欠席連絡などがスムーズに行えます。

(引用:複数アカウントを同時管理する「マルチアカウント」機能をリリース

私たちはこの機能の開発において、実装効率の向上を目指し、ペアプログラミングやモブプログラミング(以下ペアプロ・モブプロ)を取り入れました。
その結果、見積もったスケジュールよりも早く開発を終えることができ、また全体としてコードの品質も高くなりました。
今振り返るととても多くの学びを得た経験だったので、ペアプロ・モブプロを通して学んだことや気をつけたいことを書いていこうと思います。

これから導入していきたいと思っている方の参考になれば嬉しいです。

なぜペアプロ・モブプロを採用したか

このマルチアカウント機能を開発するにあたって、なぜペアプロ・モブプロを頻繁に実施することになったのかを説明します。

まず私たちは、開発工程のなかで動作検証用のミニアプリを作りながら、新しいAPIの仕様やUI/UXを検討しました。
詳細については、別の記事にも書いているので、ぜひそちらもご覧ください。

tech.classi.jp

このミニアプリの目的は、素早く作って素早く検証することでした。
そのためには、実装者が見落としがちな小さなエラーやバグを早期に発見し、すぐ改善することが大切です。
そこで、私たちはペアプロ・モブプロを導入することにしました。

この手法は、複数の開発者が同時にコードをチェックするのでレビュー時間を短縮し、開発効率を向上させることができます。
実際に導入してみたところ、開発効率は私の予想以上に向上し、素早い検証をすることができました。
また、ホームアプリに導入する際もペアプロ・モブプロを実施することで、品質の高いコードを保ったまま素早い実装をすることができました。

ペアプロ・モブプロを通して学んだこと

🗣コミュニケーションスキルが大事

単にコードを書くだけではなく、コミュニケーションスキルが非常に重要であることを学びました。
開発を始めた当初は、相手にうまく考えていることを伝えられなかったり、相手からの指示を正確に把握できなかったりと苦戦しました。
しかし、普段の会話では省略しがちな主語を明確に伝えたり、曖昧な表現を減らすことによって、徐々にコミュニケーションミスを減らすことができました。

ペアプロ・モブプロでは、正確に意図を伝えるため、普段の会話以上に正確なコミュニケーションが必要だと感じました。

🧑‍🎓学びの機会が増える

ペアプロ・モブプロを通して、相手のスキルや知識も学ぶことができました。
自分が知らなかった方法やアプローチを相手から学ぶことができるため、思考の成長にもつながります。
また、相手に説明する機会が多くなるので、話しながら自分の理解が欠けていることに気付かされることも多かったです。
このような協力的な学習環境は、継続的なスキルの向上や知識の拡大に役立つことに繋がります。

🤝チームワークが強化される

ペアプロ・モブプロはチームワークを強化できるということに気づきました。
チームでコーディングを行うため、お互いのスキルや強みをより深く理解し、活用する機会が増えます。
さらに、協力して1つの目標に向かって作業を進められるため、チーム全体の生産性を向上させることができます。
たとえば、実装中に問題が発生した際、すぐにメンバー同士で解決策を考えたり調べていました。
その結果、ひとりで悩んだり相談したりする時間を大幅に短縮することができ、リズム良く開発を進めることができました。

気をつけたいこと

💕相手の意見を尊重する

お互いの意見を尊重することが非常に重要です。
ときには、自分が思い込んでいた認識が間違っていることもあるため、相手の意見にも耳を傾けるようにしましょう。
自分のエゴを捨て、相手と協力しながらコードを書くことが、成功させる鍵になると思います。

☕️頻繁に役割を交代する

ペアプロ・モブプロは作業の負担を均等に分担することが重要です。
そのため、定期的に役割を交代することで、お互いの負担を軽減しましょう。

私たちのチームは、25分ごとに実装者を交代し、そのたびに5分の休憩を挟んで実装していきました。
実装者が一巡したあたりで長めの休憩も取り入れたりしていました。

時間で役割を交代するにはFlowというアプリがおすすめです。
タイマーが0になると画面全体にストップの合図が出るので、交代せざるおえなくなります。(笑)

実装から25分経過すると、このように5分間の休憩タイムを促されます

👆コードを書く前に方針を決める

コードを書く前に、お互いに実装の方針を話し合って決めることが大切です。
先に方針を考えることで、問題の解決方法やアプローチを共有でき、効率的かつ正確なコードを書くことができます。

例えば「アカウント追加ボタンをタップするとログイン画面が表示される」といったような実装に対しては、

  • ビジネスロジックから実装するか、UIから実装するか
  • アカウントの追加はどのクラスで実装するか
  • エラーハンドリングはどうするべきか

などです。

これらを先に話し合うことで、コーディング中に起こる認識の不一致を防ぐことができ、効率的な作業を進めることができます。

🗣心のつぶやきも声に出す

常に相手とコミュニケーションを取りながら作業を進める必要があります。
私たちの場合、全てフルリモートでの開発だったので、少しでも反応がなかったりすると不安に感じることがありました。
そのため、「うーん、分からん!」みたいな心のつぶやきでさえも声に出しながら積極的に考えていることをアピールしましょう。

さいごに

このように、私たちはペアプロ・モブプロによる実装を取り入れることによって、マルチアカウント機能を素早く品質の高い状態でユーザーに提供することができました。
そして、これらの手法は開発効率の向上だけでなく、個人の成長やチームワークの強化といったメリットがあることを学びました。
これからも、積極的に取り入れてみたいと思います。

© 2020 Classi Corp.