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

複業メンバーと共に創るカウシェ

Katsuya Kato
September 29, 2022

 複業メンバーと共に創るカウシェ

【 iOS祭り 】ヒットプロダクトを開発!iOSエンジニアが語る自社プロダクト開発の難しさ

Katsuya Kato

September 29, 2022
Tweet

More Decks by Katsuya Kato

Other Decks in Technology

Transcript

  1. © KAUCHE, Inc.
    複業メンバーと共に創るカウシェ
    Katsuya Kato

    View Slide

  2. © KAUCHE, Inc. 2
    目次
    ● 自己紹介
    ● カウシェのサービス、組織の特徴
    ● 複業メンバーと共に創るときの課題
    ● 対策
    ● まとめ

    View Slide

  3. © KAUCHE, Inc.
    自己紹介
    ● モバイルアプリエンジニア
    ○ iOS/Androidともに黎明期からアプリ開発を行う
    ○ 前職ではUnityでの開発も行う
    ○ Flutterも少々
    ● 2022年9月に一人目の正社員iOSエンジニアとして入社
    ○ 入社エントリ
    ○ 実装はもちろんのこと今まで他のメンバーに助けてもらっていたところ
    を徐々に整えていっている
    3

    View Slide

  4. © KAUCHE, Inc.
    カウシェの紹介
    4

    View Slide

  5. © KAUCHE, Inc. 5
    カウシェの紹介

    View Slide

  6. © KAUCHE, Inc.
    カウシェの組織の特徴
    ● 複業メンバーが多い
    ○ 自ら働く環境を楽しみ、熱量を最大化する「自律・自燃
    型組織」を目指し、様々な雇用形態のメンバーが活躍
    ● 創業当初からスピードを出すために
    複業メンバーに助けてもらっている
    ● 複業から正社員になるメンバーもいる
    ● 先月(2022年8月)まで
    正社員iOSエンジニアが一人もいなかった
    ※複業にはフリーランスも含む
    6
    ※2022年8月時点

    View Slide

  7. © KAUCHE, Inc. 7
    複業メンバーと共に創るときの課題

    View Slide

  8. © KAUCHE, Inc. 8
    複業メンバーと共に創るときの課題
    ● 複業メンバーの稼働時間が限られている
    ● 非同期コミュニケーションが主体になってしまう

    View Slide

  9. © KAUCHE, Inc. 9
    対策
    ● 複業メンバーのアウトプットを最大化できるよう環境を整える
    ● 開発の助けになるドキュメントを用意する
    ● 開発効率を上げるDesignKit、MockKitを準備する

    View Slide

  10. © KAUCHE, Inc. 10
    複業メンバーのアウトプットを最大化できるよう環境を整える

    View Slide

  11. © KAUCHE, Inc. 11
    複業メンバーのアウトプットを最大化できるよう環境を整える
    ● M1 MaxなMacを貸与
    ○ ただしフルタイムに近い稼働に限る
    ○ ビルド時間、Xcodeのプレビュー表示などを少しでも速く、軽く
    ● 複業でも自分事にしてもらえるよう会社の情報をオープンにする
    ○ 自律・自燃を目指している
    ○ 会社に関する情報は全て Notion上で公開されており
    複業メンバーも閲覧可能

    View Slide

  12. © KAUCHE, Inc. 12
    開発の助けになるドキュメントを用意する

    View Slide

  13. © KAUCHE, Inc. 13
    開発の助けになるドキュメントを用意する
    ● 些細なことでもNotionに記載する
    ○ iOSチームとしての方針を周知する
    ○ PRで書いたTipsも他の人が気が付かないと勿体ない
    ○ Slackでの議論で終わると流れてそのタイミングで居なかった人が見逃
    してしまう
    ○ 新規メンバーのオンボーディングにも役立つ

    View Slide

  14. © KAUCHE, Inc. 14
    DesignKit / MockKit

    View Slide

  15. © KAUCHE, Inc. 15
    カウシェのモジュール構成
    ※一部UIKitもあるが大半がSwiftUIで作られている

    View Slide

  16. © KAUCHE, Inc. 16
    カウシェのモジュール構成
    ※一部UIKitもあるが大半がSwiftUIで作られている

    View Slide

  17. © KAUCHE, Inc. 17
    DesignKit

    View Slide

  18. © KAUCHE, Inc. 18
    DesignKit
    ● DesignKitとは
    ○ カウシェのデザインコンポーネントを保持
    ○ Colors、Styles、UI Componentsを有する
    ● 目的
    ○ 開発の効率化
    ○ プレビューでどのようなコンポーネントかすぐに分かる
    ■ 何がすでにあるかというコミュニケーションが省ける
    ■ DesignKitのコンポーネントの一覧を Notionなどに作成することや、
    UIを確認するアプリを作ることも検討したが費用対効果を考えてプレビューだけ
    にした

    View Slide

  19. © KAUCHE, Inc. 19
    DesignKit

    View Slide

  20. © KAUCHE, Inc. 20
    MockKit

    View Slide

  21. © KAUCHE, Inc. 21
    MockKit
    ● MockKitとは
    ○ カウシェのモックデータを定義する
    ○ APIのレスポンス等をモックする
    ● 目的
    ○ モックデータをプレビュー、 UnitTestで共用して効率化
    ○ それぞれで用意すると似たようなデータが重複し、開発効率も悪くなる
    ○ プロダクションコードから切り離す
    ● 色んなパターンのモックデータを用意することでプレビューで
    複数パターンの表示を確認できる
    ○ UI仕様の把握をXcode上でプレビューで確認できる

    View Slide

  22. © KAUCHE, Inc. 22
    MockKit

    View Slide

  23. © KAUCHE, Inc. 23
    まとめ
    ● 課題
    ○ 複業メンバーの稼働時間が限られている
    ○ 非同期コミュニケーションが主体になってしまう
    ● 対策
    ○ ドキュメントやXcodeのプレビューなどの仕組みを使って仕様把握やコミュニケーションの効率化
    を図った

    View Slide

  24. © KAUCHE, Inc. 24
    https://enjoy-working.kauche.com/product

    View Slide