サイボウズサマーインターン2020 Webコース開催報告 ~完全オンラインでkintoneカスタマイズ開発~

こんにちは、kintone開発チームの内山です。今年もインターンシップを開催しました!
今年のインターンシップは、コロナウィルスの状況を鑑みて、初の完全オンライン開催となりました。
この開催報告では、インターンシップの概要と完全オンライン開催で気をつけたこと、完全オンライン開催ならではだった問題を紹介します。

集合写真
集合写真

概要

日程としては9月7日〜9月11日と9月14日〜9月18日の2回開催し、期間中はWeb会議サービスを使って、完全オンラインで実施しました。
今年のインターンシップでは「身近なチームをサポートするkintoneカスタマイズ」という課題に取り組んでもらいました。
課題を進める際は、kintone開発チームが実際に行っているリモート・モブプログラミングという開発スタイルを体験してもらいました。

kintone開発チームのリモート・モブプログラミング については以下の記事をご覧ください。 blog.cybozu.io

kintone・kintoneカスタマイズ

インターンの課題として扱ったkintoneとkintoneカスタマイズの概要について説明します。

kintone

kintoneとはサイボウズが提供しているクラウドサービスです。
データベースアプリとコミュニケーションアプリが融合したようなサービスです。
詳しくは以下のサイトをご覧ください。

kintone.cybozu.co.jp

kintoneカスタマイズ

kintoneカスタマイズとは、JavaScriptやCSSを用いてkintoneの標準機能を拡張できる仕組みです。
例えば、カスタマイズを行うことで以下のようなことが出来ます。

  • ボタンを画面に追加し、ある特定のデータに対して独自の計算処理を実行する
  • 条件によって文字や背景の色やサイズを変更する

詳しくは以下のサイトをご覧ください。

developer.cybozu.io

大まかなスケジュール

1日目: オリエンテーション、kintoneカスタマイズのハンズオン、アイディア出し
2日目: アイディア出し、モブプログラミング見学、実装
3日目: 実装、スプリントレビュー見学
4日目: 実装
5日目: 発表準備、成果発表会、懇親会

オリエンテーションでは、インターンシップの概要やセキュリティ教育を行い、ハンズオンではkintoneの基本的な使い方やkintoneカスタマイズの方法をレクチャーしました。
その後はインターン生同士でモブのチームを作成し、アイディア出しや実装はインターン生主体で進めてもらいました。
成果発表会ではメンターや運営以外の社員も参加し、作ったカスタマイズに対して多くのレビューが集まりました。

インターン生の成果物

slacktone

Slackの投稿をkintoneアプリに転記出来るカスタマイズです。

slacktoneの投稿画面
slacktoneの投稿画面

コミュニケーションツールとしてSlackを利用しているユーザーが、複数のワークスペース間に散らばった重要な投稿を一元管理したいときに活用出来るカスタマイズです。
kintoneのアプリでSlackの投稿を管理することで、kintoneのソートや絞り込み機能を活用でき、目的の投稿を簡単に見つけられるようになります。 中継サーバーとしてAWS Lambdaを用いて、Slack上の投稿をkintoneのアプリに転記するカスタマイズを作成してもらいました。

kintone上で使えるタイマー

kintone上で使えるタイマー
kintone上で使えるタイマー(右下)

会議の際にkintone上で議事録を取りつつ、タイムキープもしたいときに活用出来るカスタマイズです。
上記のケースでは、kintoneとは別にタイマーサービスを同時に使う必要があり、複数のタブを管理しなければいけないという問題がありました。
そこで、lit-htmlとTypeScriptを使ってkintoneで使えるタイマーのカスタマイズを作成してもらいました。 kintone全体のカスタマイズとして実装したため、アプリやスペースの画面で使用することが出来ます。

f:id:cybozuinsideout:20201106164505p:plain
slacktone

完全オンライン開催で気をつけたこと

完全オンライン開催ではkintoneチームのメンバーや実際の開発時の雰囲気を感じ取ってもらえるかが懸念事項としてありました。
そこでイベントをいくつか用意しました。

  • 社員との面談
  • モブプログラミング見学
  • スプリントレビュー見学

社員との面談

話してみたい分野や技術をインターン生に質問し、その分野に詳しいサイボウズの社員と面談する時間を設けました。
興味を持っている分野やサイボウズについて雑談をしてもらい、サイボウズの社員を知ってもらえる良い機会になりました。

モブプログラミング見学

kintone開発チームがどのようにタスクを進めているかを知ってもらうため、実際のkintone開発チームのモブプログラミングを見学してもらいました。
機能を開発している様子を見てもらい、適宜メンターが背景情報などの補足説明を行いました。
時間は30分程度だったため、取り組んでいるタスクの詳細までは知ってもらうことは難しかったですが、モブプログラミングの進め方の参考になったと思います。

スプリントレビュー見学

スクラムイベントであるスプリントレビューの見学を実施しました。
kintone開発チームのスプリントレビューは毎週行われ、1週間で取り組んだ活動や成果を報告しています。
当日用意した実況スレッドには、社員やプロダクトについて理解を深めることが出来たという感想がありました。

完全オンライン開催ならではだったこと

今回の課題では、ライセンス上問題がなければ使用するライブラリや言語は自由としました。
そのため該当する場面は少なかったのですが、詰まっている状態や困っている状態を察しづらいという問題がありました。
オフィスで開催しているときであれば様子を見て声をかけることが出来ましたが、完全オンライン開催ではウェブカメラからの視覚情報のみに限られているので難しかったです。
対策として、kintone開発チームでも普段から実践しているのですが、モブのドライバーに常に画面共有してもらうようにしました。

これによって、ドライバーがどのように問題解決を行っているかを知ることができ、適宜アドバイスを挟むことが出来ました。
一方で、ナビゲーターがどのような問題解決を行っているかは分からなかったので、複数人が画面を共有できるビデオ会議ツールを使ってインターン生全員に共有してもらっても良かったかもしれません。
また、メンター側は少なくとも2人はビデオ会議に参加し、質問をいつでも受け付けられる状態にしました。
これにより、完全オンライン開催でもインターン生のサポートを行うことが出来ました。

参加者の感想

開催後アンケートで頂いた感想をいくつか転記致します。

リモートでできる最大限の範囲でサイボウズのやり方や文化を学ぶことができて嬉しかったです。学生のチーム開発や一般的な企業とも違う、サイボウズのチーム開発を学ぶことができたと思ってます。


社員さんや青野さんとの面談時間を用意していただいたり、サイボウズを知ってもらいたいという思いが伝わりました。 また、サイボウズさんには暖かい人がとても多くいて、社内でチームワークを重要視していることもひしひしと伝わりました! サイボウズさんの魅力にさらに気づけたインターンとなりました。


めちゃくちゃ楽しい一週間でした! ただコードを書くだけではなく, 一週間の間に青野さんランチや, 社員さんとの面談, 人事さんとの面談, スプリントレビュー会, Frontend Barといった社内の勉強会にも参加させていただいて, サイボウズを知ることができた1週間だったと思います!

サイボウズが遂げたい理想、「チームワーク溢れる社会を創る」が、チームワーク溢れるサイボウズに身を置くことでどういうことか肌で感じることができましたし、それは確かに実現したい理想であると強く思いました。

モブプロも確かにいいなと感じ, 今後もできればやっていきたいと感じました

今回は、完全オンライン開催したインターンシップの開催報告でした。
開催する前までは満足してもらえるか心配でしたが、コメントを見る限り完全オンライン開催でも会社や社員の雰囲気を掴んでもらえたようです。
来年度の実施方法についてはまだ検討していませんが、今回の経験をもとにしてより良いインターンシップを追求して行きます。