多国籍Androidエンジニアチームで保育をHACK!!
by
aiba
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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