こんにちは!モバイルチームの刈川です。今年もサイボウズではサマーインターンシップを開催しました。この記事ではモバイルアプリ開発コース(以下、モバイルコース)について紹介したいと思います。
概要
今年も昨年に引き続き、ビデオ会議を用いたオンラインでの開催となりました。 今年のモバイルコースでは「実際の製品コードに触れて開発プロセスや現場の雰囲気を肌で感じてもらう」ことを重視しました。そのため、単純にコードを書くだけではなく、開発要件(バックログ)のプランニングの段階から参加してもらったり、モバイルチームが普段行っているミーティングへの参加をしてもらったりと、体験重視の内容となっています。 以降はインターンでやったことの紹介をしていきたいと思います。
インターンの内容
今年はiOS開発とAndroid開発の希望者とで日程を分け、8月と9月のふたつの日程で開催しました。扱う題材は現在ストアでリリースされている「サイボウズ Office 新着通知」のiOS版とAndoird版です。各日程ごとに実際のiOS開発チームとAndoird開発チームにジョインしてもらい、スクラムを用いた開発をしてもらいました。 特別にインターン用にチームを作るのではなく、実際の開発チーム・実際の開発プロセスの一部としてインターン参加者を加えることで普段の業務内容を肌で感じやすくするのが目的です。
おおまかなタイムスケジュールは以下のとおりです。(多少変更あり)
インターン中の開発の流れ
インターン中は実際の製品開発チームの一員として開発を進めていくので、開発の流れも(ほぼ)実務に近い形で進んでいきます。具体的には以下のような流れになります。
- 要件(バックログ)の紹介
- バックログのリファインメント
- スプリントプランニング
- 実装(モブプログラミング)
- スプリントレビュー
※各用語は一般的なスクラムで用いられるものと同義です。(初耳だよ〜という方は調べてみてください)
今回はサイボウズOfficeのネイティブアプリが題材になっているため、実装するバックログも実際に製品に組み込まれる前提で開発を行っています。具体的な流れとしては、まずはバックログの紹介、そしてそのバックログがどのくらいの実装コストがありそうかをチーム全員で話し合っていきます(リファインメント)。その後、このバックログを実装するにあたって必要そうなタスクの洗い出しと、タスクを行う上で懸念点になりそうな部分をチーム内で話し合います(スプリントプランニング)。こうすることで、実装中に問題が発覚して手戻りするリスクを未然に防いでいます。プランニングが終わればいよいよ実装です。
実装中は主にモブプログラミング形式で進めていきます。モブプログラミングは実際に手を動かすドライバー1人と、ドライバーに指示を行うナビゲーター複数人を交代で進めていくのが基本ですが、インターン参加者がいきなりナビゲーターをやるのは製品に対する前提知識がまだ足りないため、参加者にはドライバーの方をメインで担当してもらいました。また、今回はオンラインでの開催なので、Zoomの画面共有機能を使ってモブプログラミングを行いました。
開発以外のイベントも…
開発以外にも、サイボウズ社員とのざつだんや面談、実際に社内で行われている会議の見学や、勉強会やLT会、リモートでのオフィスツアー等への参加なども体験してもらい、サイボウズ全体の雰囲気を感じ取ってもらいました。
参加者の感想(抜粋)
開催後の参加者アンケートから感想を一部紹介します。
単にコードを書くだけでなく、スプリントレビューや社員の方たちによるモブプロを見学することで会社のリアルを知ることができました。そのため自分が会社で働くイメージが持ちやすく、今後、就活をする上で非常に良い経験となりました。
1週間の短い期間でしたが、とても充実したインターンでした! メンターやチームの方々に色々準備していただいたおかげで実質数日の活動期間でも実務のコードを改善し、スクラムに参加するという良い体験が得られました。アーキテクチャなどの技術だけでなく、チーム開発の手法やチームの運用方法についても様々話を聞くことができたため、今後自分でも考えて実践してみたいと思います。ありがとうございました。
今回のインターンを通して、SwiftUIの実装面、モブプロ、アジャイル開発について学ぶことができました。また、社内LTや勉強会に参加して、サイボウズの雰囲気も体感することができました。業務の中で、特にSwiftUIやモブプロの良し悪しを学ぶことができたので、今後の選択肢にしたいと思います。自身の課題も発見したので、改めて活動を振り返り、さらに成長したいと思います。 5日間ありがとうございました🙌
まとめ
昨年に引き続きオンライン開催となりましたが、昨年の経験が活きて比較的スムーズに開催することができました。物理的なコミュニケーションは取れなかったものの、開発の雰囲気や会社のことを知るいい機会になったのではないかと思います。また来年も開催する予定なので、この記事が今後参加しようと考えている人の参考になれば幸いです。