Classi開発者ブログClassi開発者ブログ教育プラットフォーム「Classi」を開発・運営するClassi株式会社の開発者ブログです。開発者体験Tweetこんにちは!Classiでモバイルエンジニアをしています、インディこと楠瀬大志(id:indiamela)です。Classiに届いた最新情報をプッシュ通知で受け取ることができます。ブラウザでClassiにアクセスしなくても、ご自身宛のメッセージや所属する校内グループの連絡を受け取れるので、タイミングを逃しません。ログインのたびにIDとパスワードを入力する必要がなくなり、Classiの主要な機能がご利用いただけます。(引用:Classiのアプリについて)マルチアカウント機能とはこれまでClassiアプリで複数アカウントを利用する場合は、各アカウントに届くお知らせの確認や欠席連絡を行う時に、毎回アカウント切り替えのためにログイン・ログアウトを行う必要がありました。今回リリースしたマルチアカウント機能*によって、事前に登録されていればタップだけでアカウントの切り替えが可能となり、同時に他アカウントにきたお知らせも通知されます。学校からのお知らせの確認や忙しい時間帯に行う欠席連絡などがスムーズに行えます。(引用:複数アカウントを同時管理する「マルチアカウント」機能をリリース)私たちはこの機能の開発において、実装効率の向上を目指し、ペアプログラミングやモブプログラミング(以下ペアプロ・モブプロ)を取り入れました。その結果、見積もったスケジュールよりも早く開発を終えることができ、また全体としてコードの品質も高くなりました。今振り返るととても多くの学びを得た経験だったので、ペアプロ・モブプロを通して学んだことや気をつけたいことを書いていこうと思います。これから導入していきたいと思っている方の参考になれば嬉しいです。ペアプロ・モブプロを採用したかこのマルチアカウント機能を開発するにあたって、なぜペアプロ・モブプロを頻繁に実施することになったのかを説明します。私たちは、開発工程のなかで動作検証用のミニアプリを作りながら、新しいAPIの仕様やUI/UXを検討しました。詳細については、別の記事にも書いているので、ぜひそちらもご覧ください。tech.classi.jpこのミニアプリの目的は、素早く作って素早く検証することでした。そのためには、実装者が見落としがちな小さなエラーやバグを早期に発見し、すぐ改善することが大切です。そこで、私たちはペアプロ・モブプロを導入することにしました。この手法は、複数の開発者が同時にコードをチェックするのでレビュー時間を短縮し、開発効率を向上させることができます。実際に導入してみたところ、開発効率は私の予想以上に向上し、素早い検証をすることができました。ホームアプリに導入する際もペアプロ・モブプロを実施することで、品質の高いコードを保ったまま素早い実装をすることができました。コードを書くだけではなく、コミュニケーションスキルが非常に重要であることを学びました。開発を始めた当初は、相手にうまく考えていることを伝えられなかったり、相手からの指示を正確に把握できなかったりと苦戦しました。普段の会話では省略しがちな主語を明確に伝えたり、曖昧な表現を減らすことによって、徐々にコミュニケーションミスを減らすことができました。ペアプロ・モブプロでは、正確に意図を伝えるため、普段の会話以上に正確なコミュニケーションが必要だと感じました。🧑‍🎓学びの機会が増えるペアプロ・モブプロを通して、相手のスキルや知識も学ぶことができました。自分が知らなかった方法やアプローチを相手から学ぶことができるため、思考の成長にもつながります。相手に説明する機会が多くなるので、話しながら自分の理解が欠けていることに気付かされることも多かったです。このような協力的な学習環境は、継続的なスキルの向上や知識の拡大に役立つことに繋がります。🤝チームワークが強化されるペアプロ・モブプロはチームワークを強化できるということに気づきました。チームでコーディングを行うため、お互いのスキルや強みをより深く理解し、活用する機会が増えます。協力して1つの目標に向かって作業を進められるため、チーム全体の生産性を向上させることができます。実装中に問題が発生した際、すぐにメンバー同士で解決策を考えたり調べていました。その結果、ひとりで悩んだり相談したりする時間を大幅に短縮することができ、リズム良く開発を進めることができました。気をつけたいこと💕相手の意見を尊重するお互いの意見を尊重することが非常に重要です。ときには、自分が思い込んでいた認識が間違っていることもあるため、相手の意見にも耳を傾けるようにしましょう。自分のエゴを捨て、相手と協力しながらコードを書くことが、成功させる鍵になると思います。☕️頻繁に役割を交代するペアプロ・モブプロは作業の負担を均等に分担することが重要です。そのため、定期的に役割を交代することで、お互いの負担を軽減しましょう。私たちのチームは、25分ごとに実装者を交代し、そのたびに5分の休憩を挟んで実装していきました。実装者が一巡したあたりで長めの休憩も取り入れたりしていました。時間で役割を交代するにはFlowというアプリがおすすめです。タイマーが0になると画面全体にストップの合図が出るので、交代せざるおえなくなります。(笑)実装から25分経過すると、このように5分間の休憩タイムを促されます👆コードを書く前に方針を決めるコードを書く前に、お互いに実装の方針を話し合って決めることが大切です。先に方針を考えることで、問題の解決方法やアプローチを共有でき、効率的かつ正確なコードを書くことができます。「アカウント追加ボタンをタップするとログイン画面が表示される」といったような実装に対しては、ビジネスロジックから実装するか、UIから実装するかアカウントの追加はどのクラスで実装するかエラーハンドリングはどうするべきかなどです。これらを先に話し合うことで、コーディング中に起こる認識の不一致を防ぐことができ、効率的な作業を進めることができます。🗣心のつぶやきも声に出す常に相手とコミュニケーションを取りながら作業を進める必要があります。私たちの場合、全てフルリモートでの開発だったので、少しでも反応がなかったりすると不安に感じることがありました。そのため、「うーん、分からん!」みたいな心のつぶやきでさえも声に出しながら積極的に考えていることをアピールしましょう。さいごにこのように、私たちはペアプロ・モブプロによる実装を取り入れることによって、マルチアカウント機能を素早く品質の高い状態でユーザーに提供することができました。これらの手法は開発効率の向上だけでなく、個人の成長やチームワークの強化といったメリットがあることを学びました。これからも、積極的に取り入れてみたいと思います。日...2022-12-16新卒エンジニアが配属されてから学んだチーム開発との向き合い方こんにちは。QAチームの竹林です。Corp.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。