Upgrade to Pro — share decks privately, control downloads, hide ads and more …

多国籍Androidエンジニアチームで保育をHACK!!

6748b80d9be0afc025833affe286c045?s=47 aiba
November 09, 2021

 多国籍Androidエンジニアチームで保育をHACK!!

【アンドパッド×ユニファ】業界変革型 Vertical SaaS のiOS/Android開発最前線 のセッションにてお話しさせていただいた際のスライドです。
英語を話すメンバーが多くない環境でどのように外国籍エンジニアと関わっているかをお話ししました。

6748b80d9be0afc025833affe286c045?s=128

aiba

November 09, 2021
Tweet

Transcript

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


  2. 自己紹介
 • Mai Aiba
 • Android エンジニア
 • 新卒でナビゲーションサービスを開発する企業に入社
 •

    2016年5月ユニファ入社
 • 2017年6月産休&育休取得
 • 2018年5月時短で復帰
 • 現在はフルタイム&リモートで勤務
 • 多国籍チームで云々とありますが、
 最後に取った英語資格は1X年前の英検2級です!
 2
  3. ユニファのモバイルチーム
 3

  4. 4

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

  6. アーキテクチャを選定する前に
 • 開発期間 約6ヶ月
 • 開発メンバー (プロジェクト開始時)
 ◦ 󰏦 &

    󰏝 
 • 役割
 ◦ コードベース作成
 ◦ 既存サービスの運用 他
 • コミュニケーション
 ◦ だいたい英語
 
 
 
 6
  7. 公式にならうが吉!を基本方針に
 • MVVM, Clean Architecture
 • Kotlin
 • Kotlin Coroutines


    • Kotlin Flow
 • Retrofit2(OkHttp3)
 • Room
 • ViewBinding
 • Material Design Components
 • Dagger Hilt
 • Test : Mockito / Robolectric / JUnit
 
 7
  8. その他の整備
 • detekt
 • Bitrise
 • Firebase App Distribution
 •

    git-flow
 
 8 開発者 Bitbucket Bitrise テスター
  9. 議論になったポイント
 • どこまで制限を強くするか
 ◦ e.g. KMMまで想定したClean Architectureにする? 
 ▪ Room、Retrofitなど、Android特有のFrameworkの扱い

    ▪ データレイヤでのデータ構造 • 󰢄OffsetDateTime • 󰢐String • Local DB のリレーションについて
 ◦ サーバーサイドのER図や仕様書から解決できるが
 ドメイン知識がないと難しい
 9
  10. 失敗談
 コミュニケーション問題で議論が先送りに
 • 機能をドロップする判断
 ◦ e.g.
 ▪ ローカルDBを利用したキャッシュの実装 
 ▪

    ダークテーマ
 ▪ Unitテスト
 • 地味にきつい負担
 ◦ PRレビューがタスクを逼迫
 
 10
  11. 失敗談
 英語が話せる上長に助けてもらいました 🙏
 • 機能のドロップとPRテンプレートの運用を決定
 • 週次MTGを設置
 ◦ 目的
 ▪

    リカバリープランの効果確認
 ▪ 不要なタスク、ブロッカーを取り除く 
 ▪ 良いメソッドの共有
 ◦ 成果
 ▪ 大幅工数減 & スケジュール調整しやすくなり 
 なんとかスケジュールに納めることに成功 
 11
  12. チーム外とのコミュニケーションにも課題
 • エンジニア同士は共通言語で補える
 ◦ プラットフォーム周辺の知識
 ◦ UML等
 • チームの外に出ると難易度が上がる
 ◦

    メッセージに誤字があると翻訳が崩壊する
 ◦ 日本語が話せるメンバーに相談しようとしてしまう
 ◦ 仕様/デザインの検討で意図が伝わらない
 ▪ Material Design Componentsを利用しやすくするための要望 
 • カラー、タイポグラフィの定義 
 • 適切なコンポーネントの利用 
 ▪ 実装方法、ロジックの相談
 12
  13. MD workshop を実施
 • ねらい
 ◦ 社内のUI設計に関する知識を増やす 
 ◦ 部署問わず知識レベルを揃えコミュニケーションを円滑にする

    
 ◦ 感覚ではなくルールに基づいてUIを評価できるようになる 
 • メンバー
 ◦ ディレクター、デザイナー、QA、エンジニアなど十数名 
 • 内容
 ◦ ガイドラインのMaterial Foundationからテーマを選択 
 ◦ 参加者は勉強会までにガイドラインを読み、勉強会で疑問を解決する。 
 ◦ 担当者はメンバーが躓きそうな所、自身が分からない所を明確にしておき 
 ファシリテーションする 
 ◦ 聞くだけの参加もOK 
 13
  14. 翻訳しながら質疑応答 14

  15. 参加メンバーからのFB
 • 󰢐
 ◦ マテリアルデザインに興味を持ち学ぶ人が増えた 
 ◦ 議論ができる、参加のハードルが低い 
 ◦

    理解のある人が、知識のない人に説明してくれる 
 • 󰢄
 ◦ 同じ人ばかり話してしまう傾向があるので、座長になった人が 
 みんなに話を振ってあげるとより良くなりそう 
 ◦ もっと実践的な例が欲しい 
 ◦ 二言語対応の難しさ(英語話者ともっと議論したい) 
 15
  16. MD workshop をやってみて
 • 実践的な内容が欲しいという要望
 ◦ 部署問わず知識の溝を埋めるための勉強会なので、 
 参加のハードルを下げる必要がありこれでよかったと考えている。 


    • Workshop 開催後の変化
 ◦ デザインの変更、修正を提案する際に、 
 「ガイドラインのxxの部分によると〜」のような表現が増えた。 
 16
  17. • 全員が同じ言語を話せるのがベスト
 • 難しい場合
 ◦ 同じプラットフォームのエンジニア同士は意外と何とかなる 
 ◦ 共通の言語を増やす 


    ▪ モデリング言語
 ▪ プラットフォーム周辺知識 
 ▪ ドメイン知識
 ◦ チームをまたがるMTGは話せる人がファシリテーションする 
 ◦ 後からでも正確に理解、議論できるようドキュメントに残す 
 ◦ 翻訳しやすい日本語を使う 
 
 おわりに
 17