こんにちは
こんにちは、Androidエンジニアの富田です。コネヒトのAndroid専任エンジニアは僕1人で心細い状況だったのですが、昨年11月にAndroidエンジニアの関根さんにジョインしていただき、晴れてAndroidエンジニア2名体制となりました。そこで今回はAndroidエンジニアが1名から2名になったことでチームとして始動しましたので、チームビルディングについて共有したいと思います。「我々はどこから来たのか」、「我々は何者なのか」、「我々はどこに行くのか」というゴーギャンの3つの問いを参考に、過去、現在、未来とそれぞれ振り返り、未来を創造したいと思います。
過去 〜Androidエンジニア1名体制〜
1人でAndroid版ママリを開発していた時は周囲を巻き込むことなく黙々とIssueに取り組んでいました。アウトプット面に関して言えば、コネヒトは開発ブログを書く文化が浸透していて昨年だけで46本の開発ブログが公開されています。僕もその文化に便乗させてもらってKotlin関連のブログを公開することでコネヒトのAndroidのプレゼンスを少しでも高めようとしました。
しかし、1人でプレゼンスをあげることに限界があり、さらにサービスや事業拡大と共に自分自身が属人化や単一障害点になっていることに気づきチームビルディングについて意識するようになりました。加えて僕は自分ゴト化や周りを巻き込むのが苦手なので、これを機にスモールなチームで主体性を身につけて会社やサービスに対して貢献、または知識を還元したいと思いました。
現在 〜Androidエンジニア2名体制〜
その後嬉しいことに関根さんにジョインしてもらいました。ここからAndroidチームとしてゼロスタートするのですが、まず僕たちが何を目指すのかディスカッションしてみると、「自己完結型のチーム」、「エンジニア自身の成長」、「社外に対してプレゼンスを高める」などの目標、課題がみつかり、具体的に次のように目標を設定してチームビルディングに取り組みました。
プロダクトの品質を高めるチーム
ネイティブアプリの解析系ツールはたくさんありますが、ツールが多すぎてうまく活用できていないと感じた事はありませんか?コネヒトでも同様に Google Analytics、Mixpanel、BigQuery、Firebase、Adjustなど多くのツールを利用していたため、データの所在がわかりにくいという問題がありました。
先日永井さんの記事でも紹介されていましたが、コネヒトでは非エンジニアでもデータ出しに対する敷居を下げるために「データの民主化」が促進されており、データの一元化やカジュアルにデータ分析できる環境が整っています。ネイティブエンジニアはあまりSQLを触る機会が少なかったため、社内でRedash勉強会を開いて施策に対して僕らでSQLを書き、ダッシュボード化や効果の見える化を推進しました。tech.connehito.com
アンチフラジャイルなチーム
下記のいとしょさんの記事でも言及されていますが、変化を楽しみ、進化を続けるチームになるべく、以下の3点をやり遂げたいと思っています。
- 職能・職域に囚われない
- 小さな失敗を繰り返して成長する
- ルールなしで自走出来るようにする tech.connehito.com
具体的にAndroidチームとして実際に行ったことは以下の通りです。
- スプリント毎にKPTを用いた振り返り
- 毎日朝会をすることでチームとしてやることを明確化
コネヒトの開発チームは1スプリント2週間単位の開発体制を導入しています。開発チームとは別にAndroidチームとしてKPTを用いた振り返りを実施し、「Kotlin率80%」、「クライアントチームで時間をとってRedashで施策に対しての見える化」、「リグレッションテストの作業分担」などのトライを行いました。また振り返りでは、「支え合い」、「自走サポート」などを心がけていたため、チームだけでなく、組織としての個人目標についても困ったことがないか共有し合っていました。
エンジニアが成長している
DroidKaigi 2018のアプリのコードが公開された日に自発的にお互いカンファレンスアプリにコントリビュートできました。残念ながら2018年のCfP応募は落選したためコネヒトからは誰もDroidKaigiに登壇できなかったのですが、「来年こそはDroidKaigiで登壇したい!」、「スタッフになりたい!」など自然と新しい目標が生まれました。
ママリのAndroidアプリはJavaとKotlinが混在するアプリで半年前までKotlin率が60%だったのですが、現在はKotlin率84%となりました。Kotlin率を上げるためだけにコンバートを行っているわけではなく、例えば仕様を理解するためやリファクタリング時にコンバートしていて、地道にですがKotlin率100%が見えてきました。
社外に対してもプレゼンスをあげる
Connehito Marchéというコネヒト初の社外勉強会を開催しました。白金高輪界隈では、あまり勉強会が開催されいない印象でしたが、多くの方にLT登壇していただき少しプレゼンスをあげることができました。引き続き白金高輪界隈を盛り上げて行きたいと思います。 tech.connehito.com
僕がKotlinにコントリビュートしている関係で、関根さんにもKotlinのコントリビュートにチャレンジしてもらいました。最初のコントリビュートに対して少し敷居が高いと感じていたため、Dev Dayを活用してハンズオンを行いPRまで投げてもらうところまで進めました。Dev Dayとは普段の業務の中で取り組めない課題の解決や業務の改善を通じてコネヒトをより良くする日を設けています。今後の目標はAndroidエンジニア全員がKotlinにコントリビュートしてコントリビュート率を100%にすることです! github.com
未来 〜サービスデザインチームへ〜
目標に対して引き続きトライすることに変わりないのですが、特にサービスデザインを出来るチームを目指したいと考えています。サービスデザインとは、課題に対して一方的な価値の提供ではなく、共創という観点からさまざまな人々を巻き込んでその能力を引き出しながら、これまでにないサービスを作り出す方法です。以下のきよえさんの記事ですが、これがチームビルディングを行う上で良いヒントとなっています。デザイナー、非エンジニアだけでなく、エンジニアもサービスデザインをすることによってより良い関係性を生むと思いますし、クローズドなコミュニティを展開する僕たちエンジニアもプロダクトや組織の良さを発信し続けなければならないです。 note.mu
決意
「過去を振り返り」、「現在を見つめて」、「未来を思い描く」これらをステップごとに振り返ることによって、今後のやるべきことが明確化されました。改めてAndroidチームとして僕たちの存在意義ってなんだろうとディスカッションしてみると、「ママの一歩を支えるため」、「Androidユーザが快適にアプリを利用できる」、「質の高いママ向けアプリを提供するため」などのキーワードがありました。これらを達成するためにサービスデザインを実現できるチームへと変化して行きたいと思います。