モバイルチームはじめました

f:id:cybozuinsideout:20170209164231p:plain

はじめまして、モバイルチームの刈川です。みなさんの会社や組織における「モバイル」ってどんな感じでしょうか。昨年からサイボウズにもモバイル専用のチームができたので今回はその紹介をしたいと思います。

モバイルチームとは

モバイルチームの説明をする前にサイボウズが置かれていたモバイル事情についてお話します。

f:id:cybozuinsideout:20170209153425p:plain

サイボウズでは上図のように、製品ごとに各PGがモバイル開発を行っている状況でした。 ここで問題になっていたのが、

  • モバイル開発スキルがチーム間で分散する
  • テストやCI環境の整備などの作業が後手に回りがち
  • そもそもモバイル開発自体の優先度が低い(※Webアプリの会社なので)

このような問題がありました。 そこでモバイル開発に特化したチームを設けることでこれらの問題を解決しようとしました。 f:id:cybozuinsideout:20170209153540p:plain

モバイルチームがやったこと

各製品のモバイル開発にジョイン

前述の通り、モバイル製品を触れるプログラマは各製品チームにいるのですが、リソースや優先度の都合で対応が後手に回りがちなのが現状でした。そこでモバイルチームが各製品チームのモバイルプロジェクトにジョインすることでモバイル対応を支援してきました。

モバイルに関する情報を収集・共有

社内外からモバイルに関する情報を収集し、社内勉強会などを通じて共有を行いました。 情報の収集元は様々ですが、例えばDroidKaigiiOSDCGoogle for Mobileなどのカンファレンスに参加したり、Twitterやconnpass等で告知される社外勉強会への参加、また、Android WeeklyiOS Dev Weeklyの定期購読などを通じて情報を収集していきました。その中で製品コードに使えそうなツールやライブラリは積極的に製品チームに提案し、実際に導入されたものもいくつかあります。

iOS/AndroidのCI環境の準備・運用

モバイルプロジェクトの中にはテストをしっかり書いているものもあれば、テストが存在しないものもあったり、また製品チーム内だけでCI環境を回していたりと、情報や環境が分散しているのが現状でした。そこでモバイルチームでこれらの作業を受け持つことにより、社内で共通で使えるCI環境の整備を目指しています。CIにはAndroidはJenkins, iOSはCircleCIを利用しています。

ワークショップの開催

f:id:cybozuinsideout:20170209164444p:plain

これまでサイボウズのプロダクトはWebアプリケーションが中心でした。そのため、モバイルアプリの開発経験があるエンジニアは多くありません。そこで、まずは導入部分の障壁を取り払うためにAndroidアプリの基礎を学ぶためのワークショップをハンズオン形式行いました。教材に利用したのはUdacityでGoogleが公式に提供しているDeveloping Android Appsコースです。

プロトタイプの作成

f:id:cybozuinsideout:20170209164913p:plain

モバイルの強みのひとつに、機能を切り出して単機能アプリとして提供できることが挙げられます。例えばFacebookのMessengerのようなアプリです。そういった単機能アプリで実現できそうなプロトタイプをモバイルチームで作成し、各製品のPMに提案を行いました。作ったものの例としては、kintoneで使えるカメラアプリやビデオチャットアプリ、通知消化アプリなどの単機能アプリです。これらのプロトタイプアプリを社内で使ってもらってフィードバックを得ることで既存製品に組み込んだり、別プロジェクトとして立ち上げることも視野に入るようになりました。

モバイルチームのこれから

今年も引き続き活動をしてきますが、今年は特にプロトタイプの作成に力を入れていく予定です。既存製品の新機能や全く新しいモバイル製品の提案などをプロトタイプ作成を通じて行い、モバイルの可能性を社内外にアピールし、サイボウズから新しいモバイル体験を世の中に提供できるよう取り組んでいきます。そのためにはまずはモバイルのニーズをヒアリングし、アイデアを募り、多くのチームを巻き込んでサイボウズらしいチーム開発をしていきます。