Terrarium

いわゆる掃き溜めの ありふれた有象無象

サイボウズのサマーインターンシップに参加してきました

2018/08/20 - 08/24の5日間,サイボウズ株式会社のサマーインターンシップに参加してきました.

cybozu.co.jp

私が参加したのは,モバイルアプリ開発を行うモバイルアプリケーションコースでした. 5日間という短い期間でしたが,サイボウズの開発の流れや会社の雰囲気を十分体感することができたと思います. 今後参加される方への参考になれば.

やったこと

サイボウズではkintoneというビジネス向けのアプリケーションを簡単に作成できるプラットフォームサービスを作っています. 今回はその関係の新規アプリを製作しているとのことで,その機能の実装を行いました. モバイルコースでは,各自が各々のタスクを持つのではなく,チームで手分けして機能を実装していくというスタイルでした.

初日

サイボウズのオフィスは,入り口に動物園があります.

f:id:tellusium:20180902140449p:plain
キリントーンと撮ったプロフィール写真

こんな感じのプロフィール写真を撮った後に,午前中を使ってセキュリティの講習会がありました. 様々な顧客のデータを扱うサービスということで,サイボウズのセキュリティ意識の高さが伺えました.

午後からは配属されるチームごとに分かれ,環境構築を行った後,いよいよ開発に入ります. といってもいきなり実装…ではなく,まずは開発する機能の詳細を決める全員でのMTGがありました. アプリ開発ではスクラム開発を採用しているそうので,スプリントのプランニングや,機能のデザインや実装の詳細をあらかじめ決めてから実装に入ります.

2日目

昨日に決めた詳細を元に,実装を行なっていきます. まずはアプリの仕様を把握するため,チームでモブプロを行いました.

午後はタスクの振り分けを行い,各自実装をはじめました. 開発しているアプリはクリーンアーキテクチャを採用しているそうで,ModelやView,ViewModelや通信周りなど,非常に多くの要素から構成されていました. コードの行数が多く,どこを編集するべきかを探すのが大変で,それだけで結構時間がかかったように思います. とはいえ,役割ごとに場所が異なっているため,そのイメージがつかめればすんなりと読めた気がします. アーキテクチャを採用する利点ですね.

3日目

スクラム開発ということで,15分ほどのデイリースクラムを行いました. 何をしているか,何をやったか,問題は何か,をまとめて各自発表していきました.

その後は引き続き開発です. 私が担当していた部分は比較的簡単だったため,この日には最初に与えられたタスクは実装が終わりました.

4日目

全員で最初にあったタスクはほぼ終わりそうだったため,追加の機能実装をすることになりました. 今回の機能は最初のものよりも難易度が高く,ModelからViewまで全てを編集していく必要がありました. ここで(私の担当分では)初めてRxSwiftが登場し,その概念に悩みながら実装をしていきました. (中身の値をprintする方法がわからなかったり,onNextを実行した後でonCompletedを呼び忘れ次の担当にバグを残してしまうなど…)

5日目

午後から成果発表会だったのですが,まだ上の機能の実装が終わっていなかったため,スライド作成と並行して実装をしていました. なんとか(仕様を満たし切ってはいないが)動作するところまでは完成し,発表会でデモを行うことができました.

学べたこと

  • サイボウズの開発スタイルである,スクラム開発やスプリントプランニングなどを体験できた
    • 全員で詳細を決めるのはとても大事だと思った
  • きちんとしたアーキテクチャで書かれたコードを読んでいく経験ができた
    • 今後アプリを作っていく際の参考にできた
  • 働きやすいと言われるサイボウズの社風を感じることができた
    • 社員さんの様々な話をお聞きすることができた
    • 働き方の自由度が非常に高かった

まとめ

5日間と短い期間でしたが,最終日にはこれで終わってしまうのが残念で,次週以降も引き続き開発を続けたくなるインターンシップでした. 最後になりましたが,指導をしてくださったメンターの方々,ランチなどご一緒したモバイルチームの方々,サイボウズ株式会社の皆様,そしてインターンの同期の方々,ありがとうございました 🙇‍♂️

f:id:tellusium:20180902143458p:plain
作業中