Slide 1

Slide 1 text

多国籍Androidチームで
 保育をHACK!!
 2021/11/4
 Mai Aiba ユニファ株式会社


Slide 2

Slide 2 text

自己紹介
 ● Mai Aiba
 ● Android エンジニア
 ● 新卒でナビゲーションサービスを開発する企業に入社
 ● 2016年5月ユニファ入社
 ● 2017年6月産休&育休取得
 ● 2018年5月時短で復帰
 ● 現在はフルタイム&リモートで勤務
 ● 多国籍チームで云々とありますが、
 最後に取った英語資格は1X年前の英検2級です!
 2

Slide 3

Slide 3 text

ユニファのモバイルチーム
 3

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

外国籍メンバーと
 プロダクトを開発するにあたって
 どのような取り組みをしてるか
 5

Slide 6

Slide 6 text

アーキテクチャを選定する前に
 ● 開発期間 約6ヶ月
 ● 開発メンバー (プロジェクト開始時)
 ○ 󰏦 & 󰏝 
 ● 役割
 ○ コードベース作成
 ○ 既存サービスの運用 他
 ● コミュニケーション
 ○ だいたい英語
 
 
 
 6

Slide 7

Slide 7 text

公式にならうが吉!を基本方針に
 ● MVVM, Clean Architecture
 ● Kotlin
 ● Kotlin Coroutines
 ● Kotlin Flow
 ● Retrofit2(OkHttp3)
 ● Room
 ● ViewBinding
 ● Material Design Components
 ● Dagger Hilt
 ● Test : Mockito / Robolectric / JUnit
 
 7

Slide 8

Slide 8 text

その他の整備
 ● detekt
 ● Bitrise
 ● Firebase App Distribution
 ● git-flow
 
 8 開発者 Bitbucket Bitrise テスター

Slide 9

Slide 9 text

議論になったポイント
 ● どこまで制限を強くするか
 ○ e.g. KMMまで想定したClean Architectureにする? 
 ■ Room、Retrofitなど、Android特有のFrameworkの扱い ■ データレイヤでのデータ構造 ● 󰢄OffsetDateTime ● 󰢐String ● Local DB のリレーションについて
 ○ サーバーサイドのER図や仕様書から解決できるが
 ドメイン知識がないと難しい
 9

Slide 10

Slide 10 text

失敗談
 コミュニケーション問題で議論が先送りに
 ● 機能をドロップする判断
 ○ e.g.
 ■ ローカルDBを利用したキャッシュの実装 
 ■ ダークテーマ
 ■ Unitテスト
 ● 地味にきつい負担
 ○ PRレビューがタスクを逼迫
 
 10

Slide 11

Slide 11 text

失敗談
 英語が話せる上長に助けてもらいました 🙏
 ● 機能のドロップとPRテンプレートの運用を決定
 ● 週次MTGを設置
 ○ 目的
 ■ リカバリープランの効果確認
 ■ 不要なタスク、ブロッカーを取り除く 
 ■ 良いメソッドの共有
 ○ 成果
 ■ 大幅工数減 & スケジュール調整しやすくなり 
 なんとかスケジュールに納めることに成功 
 11

Slide 12

Slide 12 text

チーム外とのコミュニケーションにも課題
 ● エンジニア同士は共通言語で補える
 ○ プラットフォーム周辺の知識
 ○ UML等
 ● チームの外に出ると難易度が上がる
 ○ メッセージに誤字があると翻訳が崩壊する
 ○ 日本語が話せるメンバーに相談しようとしてしまう
 ○ 仕様/デザインの検討で意図が伝わらない
 ■ Material Design Componentsを利用しやすくするための要望 
 ● カラー、タイポグラフィの定義 
 ● 適切なコンポーネントの利用 
 ■ 実装方法、ロジックの相談
 12

Slide 13

Slide 13 text

MD workshop を実施
 ● ねらい
 ○ 社内のUI設計に関する知識を増やす 
 ○ 部署問わず知識レベルを揃えコミュニケーションを円滑にする 
 ○ 感覚ではなくルールに基づいてUIを評価できるようになる 
 ● メンバー
 ○ ディレクター、デザイナー、QA、エンジニアなど十数名 
 ● 内容
 ○ ガイドラインのMaterial Foundationからテーマを選択 
 ○ 参加者は勉強会までにガイドラインを読み、勉強会で疑問を解決する。 
 ○ 担当者はメンバーが躓きそうな所、自身が分からない所を明確にしておき 
 ファシリテーションする 
 ○ 聞くだけの参加もOK 
 13

Slide 14

Slide 14 text

翻訳しながら質疑応答 14

Slide 15

Slide 15 text

参加メンバーからのFB
 ● 󰢐
 ○ マテリアルデザインに興味を持ち学ぶ人が増えた 
 ○ 議論ができる、参加のハードルが低い 
 ○ 理解のある人が、知識のない人に説明してくれる 
 ● 󰢄
 ○ 同じ人ばかり話してしまう傾向があるので、座長になった人が 
 みんなに話を振ってあげるとより良くなりそう 
 ○ もっと実践的な例が欲しい 
 ○ 二言語対応の難しさ(英語話者ともっと議論したい) 
 15

Slide 16

Slide 16 text

MD workshop をやってみて
 ● 実践的な内容が欲しいという要望
 ○ 部署問わず知識の溝を埋めるための勉強会なので、 
 参加のハードルを下げる必要がありこれでよかったと考えている。 
 ● Workshop 開催後の変化
 ○ デザインの変更、修正を提案する際に、 
 「ガイドラインのxxの部分によると〜」のような表現が増えた。 
 16

Slide 17

Slide 17 text

● 全員が同じ言語を話せるのがベスト
 ● 難しい場合
 ○ 同じプラットフォームのエンジニア同士は意外と何とかなる 
 ○ 共通の言語を増やす 
 ■ モデリング言語
 ■ プラットフォーム周辺知識 
 ■ ドメイン知識
 ○ チームをまたがるMTGは話せる人がファシリテーションする 
 ○ 後からでも正確に理解、議論できるようドキュメントに残す 
 ○ 翻訳しやすい日本語を使う 
 
 おわりに
 17