サイボウズサマーインターン2017 報告その4〜Webサービス開発コース

こんにちは kintone開発チームの小林です。

サイボウズでは、8月から9月にかけて、5日間のサマーインターンを3回開催しました。サマーインターンは以下の5つのコースに分かれて行いました:

  • Webサービス開発
  • モバイルアプリ開発
  • UX/UIデザイナー
  • 品質保証/セキュリティ
  • Site Reliability Engineering

今回は、Webサービス開発コースについてお伝えします。

サマーインターンメンバーの集合写真

インターンの概要

Webアプリケーション開発コースは、東京、大阪、松山の3拠点で行いました。

東京

東京では、サイボウズが提供しているクラウドサービス「kintone」に対して、お客様から寄せられた要望などをもとに新機能のプロトタイプを作ってもらいました。
このプロトタイプは今後の製品への反映を目的にしています。去年のインターンでは、インターン生が実装したプロトタイプのうちの1つが実際に製品に取り込まれました。

プロトタイプの開発にあたっては、ただ機能を実装するだけではなく、

  • ユーザーストーリーやシナリオを想定して仕様を検討する
  • メンターと一緒にペア・プログラミングやコードレビューを行なう
  • 単体テストやブラウザテストを実装する

など、実際のkintoneの開発でも行われている一連のプロセスを体験してもらいました。

大阪

大阪でインターンに参加した学生には、東京と同じくkintoneの新機能のプロトタイプ開発をしてもらいました。
大阪ならではという点として、普段のkintone開発チームのリモート開発を体験していただく形になりました。
メンターが在宅勤務の日もあったり、東京とは様子が異なり大変だったこともあったとは思いますが、最終的には問題なく課題のプロトタイプを実装してくれました。
リモートで開発するのに必要なオンライン上のコミュニケーションを積極的に取ってくれたり、TV会議越しのミーティングに参加したり、実は一番サイボウズの開発らしさを感じたかもしれません。

松山

松山では、ネット連携サービスの路線検索を題材に、不具合改修と新機能のプロトタイプの作成を行いました。
不具合改修については対応したものを、レビュー、QAによる試験を通過させて本番環境に適用するところまでできました。
新機能のプロトタイプについては東京と同様、要望から仕様検討、実装、ブラウザテストまで実装してくれました。
今回の課題は実装の難易度が高めのものでしたが、5日間という短い期間のなかで素晴らしい実装をしていただきました。
実装だけでなく、この期間中に様々な社員とのコミュニケーションを取る機会があったので、その中でいろいろな学びを得たようでした。

プロトタイプ

インターン生がつくったプロトタイプをいくつか紹介します。

アプリ一覧の、アプリを名前順に並び替えて表示する機能

kintoneのポータル画面には、アプリの一覧が作成した順で表示されています。この並び順をユーザが変更することはできず、指定した順序でアプリを並び替えたいという要望を実現するのは難しい状態でした。
このプロトタイプでは、アプリの並び順を、作成順・名前順の2つから選択できるパーツを用意しました。
これによって、アプリ名に通し番号をつけるといった工夫することで、アプリの並び替えができるようにしました。

アプリを名前順に並び替えて表示する機能のスクリーンショット

書きかけのスペース本文の内容を自動保存する機能

kintoneでは、参加者を選んで「スペース」を作り、参加者同士で議論したり、情報を共有したりすることができます。
スペースには本文を設定することができますが、自動保存されることはないので、マシントラブルやブラウザの強制終了などで、編集中の本文の内容が失われてしまう可能性がありました。
このプロトタイプでは、数秒ごとに、スペース本文の内容を自動保存するようにし、不測の事態が起きても、編集中の本文の内容が復活するようにしました。

書きかけのスペース本文の内容を自動保存する機能のスクリーンショット

カレンダビューで、登録者によってレコードの色を変える機能

kintoneには、アプリに登録されたレコードをカレンダー形式で表示する「カレンダービュー」と呼ばれる機能があります。
このプロトタイプでは、研究室で予定を共有する方法として、各メンバーがアプリにレコードを登録してカレンダビューに表示することを想定し、研究室の教授など、特定の人物の予定だけ、色を指定して目立たせることができるようにしました。

カレンダビューで登録者によってレコードの色を変える機能のスクリーンショット

スケジュール

1日目

1日目は、インターンの概要についてオリエンテーションを行ったあと、サイボウズで用意していた課題のリストから課題を選ぶ作業と、kintoneを開発する上で必要な知識を身につける練習問題を解いてもらいました。

2日目

2日目は、選んだ課題に対して、ユーザストーリーや利用シナリオを検討して、仕様書にまとめる作業を行いました。

3日目〜4日目

3日目〜4日目は、実装を行いました。インターン期間中は、メンターがインターン生のとなりに座り、相談を受けたり、ペア・プログラミングやコードレビューを行いました。

5日目

5日目は、成果発表会を行いました。ひとりひとり、実装したプロトタイプの紹介やデモ、インターンを通じて学んだことなどを紹介してもらいました。

インターン生の感想

インターンに参加した方の感想をいくつか掲載します:

企業での大規模なシステム開発に携わるのは初めてで、沢山苦労することもありましたが、メンターの方々に丁寧に説明して頂き課題を終えることができました。
システム開発の知識だけではなく、サイボウズさんの社風や実務のこなし方を学ぶ事ができとても良い経験になりました。
社員の方々のチームワークも素晴らしく、実際にkintoneのアプリで連絡のやり取りを行っている点に驚きました。
サイボウズさんのサマーインターンに参加する事ができて本当に良かったです!


とても楽しくあっという間の5日間でした.
インターンの内容も,実際の業務をこなす内容だったのでCybozuで働いた際のイメージをしやすかったです.
業務もわからないことがあれば,メンターの方に教えていただけて不安なく業務をこなすことができました.
自分で調べる癖をなくすことはいけないことですが,調べても分らないことを聞くのにすごく聞きやすい雰囲気でした. 自分が聞かれた際に,ちゃんと回答できるようにこれからも勉強に励みたいです.
また,インターン中にも自分の課題を見つけることができたので,課題克服に向けて頑張りたいです.


今回のインターンでは、チーム開発のプロセスや製品テストなど普段体験出来ないようなことを沢山勉強することが出来ました。
今回使用したJavaScriptに関しては、基本的な部分を触った程度で、実務開発の経験はありませんでした。
実装課題に取り組んでみると、頻繁に躓くことが多々ありましたが、メンターの方が丁寧に説明して下さり、なんとか無事に課題をこなすことができました。
また、技術面だけではなく、ランチやイベントを通してサイボウズの社風・雰囲気を知ることができたり、社員の方がやさしく接してくれたりと充実した5日間を過ごすことができました。

まとめ

5日間という短い期間でしたが、それぞれのインターン生がしっかりユーザストーリーを考え、納得感のあるプロトタイプを作ることができました。
また、単に課題をこなすだけではなく、サイボウズ自体の文化や雰囲気にも触れてもらうことができたと思います。
学生の皆さんの今後の活躍を期待しています!