Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
アプリだけじゃない!チームも一緒
に成長させる開発
2016/01/17
CANDLE INC.
YUICHIRO TAKAHASHI
struct AboutMe {
public let name = "Yuichiro Takahashi"
public var company = "Candle inc."
public var roll = "iOS Lead Eng...
こんなサービスを作っています!
手前味 ですが本を出しました!
今日話すこと
• どんな技術を使っているのか
• プログラミング未経験者が多い中でどのように技術
力を上げて、実際の開発に入ってもらうか
• 開発に入ってもらった後に足りない部分をどうサポー
トしていくか
クライアント側
• Carthage, CocoaPodsの併用
• アーキテクチャはMVCベース
• 共通化は基本的にprotocolを使って行う
• 特定のライブラリに依存しないiOS クリーンアーキテ
クチャか全体の見通しが良くなるRed...
クライアント側で使っているライブ
ラリたち
• APIKit
• BrightFutures
• SnapKit
• Realm
• Ji
• ReactiveKit
• SDWebImage (Kingfisherに置き換え予定)
• Reac...
Candleの特徴
Candleのエンジニアチームの特徴
• 基本的にインターンの方が多い
• ポテンシャル採用を行うことも多いのでプログラミ
ング未経験者が入ってくることも多い
• 人の入れ替わりが多い(プロジェクトの配置換えと
か)
流動的かつ真っ白な人が入ってくることが多い!
いかにして真っ白な状態から実際の開発
に参加できるまで育てているのか??
STEP1 研修
APPLEが出してる SWIFT TOURやっておいてね!
頑張って!😆
というわけにはいかないので・・・
🙇
まずは研修
• 社内のエンジニアが作った簡単なCandleのサービスの
コピーを作成してもらいます
• ただ作ってもらうだけでなく当然いくつか意識してい
ただくことがあります
• わからないところ、詰まっている箇所はドキュメント
と自分への質問...
何を意識してもらうか
• Swiftらしさ
• コードをなるたけ綺麗に書く
• コードを書く場所
• git、githubの使い方
SWIFTらしさ
• classの代わりにstruct使ったり
• protocolを使ったり
• ジェネリクスも使ったり
• map, optionalなど関数型由来の機能
• 型の柔軟さ
コードをなるたけ綺麗に書く
• コード規約レベルの話
• 規約を眺めつつまずはスペースを空けてもらったり
インデント整えたり
• 厳密に規約に従ってもらうというよりコードを綺麗
に書くという癖をつけてほしい
コードを書く場所
• さっきの話と関連する
• viewDidLoadに全て詰め込ませない
• 実際にコードをどこにおくのが適切かを考えてもら
うわけではなくそうやってコーディングしていく癖
をつけてもらう
よくある質問
• Futureって何?
• Tって何?
• protocolは何者?
• ? とか ! をつけろって言われるんだけど?
• map { … } <- これ何??
研修をやっていただいて
• 実際のコード読んで尻込みしないように研修のレベルが
高めになってしまっているのかなという感じは否めない
• Futureやジェネリクス、プロトコルは一旦なくしてもう
少しシンプルにした方が良いかも・・・
• 2, 3...
ここまで終われば実際の開発に入ってもらい、
簡単なタスクからこなしていっていただきます
とはいえまだまだ開発には慣れていないのでしっ
かりとサポートしていきます
STEP2 コードレビュー
まずはコードレビューを根付かせる
所から
• 自分が入った当初はコードレビューの文化がなかった
のでそれを根付かせる必要があった
• 自分が率先してPR作成 -> Review -> Mergeという流
れを作る
• 言い出しっぺの法則に則り自...
コードレビュー大事
• 新しく入っていただいた方のコードレビューは基本全て自分が
担当(iOSプロジェクト内)
• 実際の開発に入ると規約から外れていたりするので徹底的に
フィードバック
• 主にメソッド名や変数名、大きすぎるメソッドの分割、書...
レビュー時に意識していること
• 言葉遣いは割と注意を払っている。文字だけだと感
情が伝わりにくいので絵文字を多用
• 気をぬくと細かい箇所を見落としていたりするので
普段のレビュー以上にしっかりみる
• タスクとは直接関係なくてもフィードバッ...
STEP3 面談
面談
• 週一、月一くらいのペースでその人と面談してどんな
感じかを探る
• どこで詰まっているか?開発をする上での知識はどの
程度ついてきたか困っていることはないかなど確認
• そこで得た情報から少し課題を出してみたりコードレ
ビューの際にど...
STEP4 ドキュメントの充実
ドキュメントの充実
• 開発で使っているツールについて(Carthageとか)
• 自分のマインドセット
• プロジェクトの概要、構成
• コード規約
コード規約
• 基本的には eurekaさんのものを使わせていただい
ています

- https://github.com/eure/swift-style-guide/blob/
master/README_jp.md
• それをベースに自分...
こんな感じです
マインドセットの公開
• 自分の哲学や思考の元になっている記事や本などを
列挙して社内のドキュメントとして公開している
• その中からその人に良さげなものを紹介したり探し
てもらったりしている
• 少し恥ずかしい
こんな感じです
今後やっていきたいこと
• 割とSwiftの言語機能やUIKitについて知らない人が
多いので週一で勉強会をやりたい
• プロジェクトにきちんとしたアーキテクチャを導入
したい
• 自分のリソースを増やすために諸々自動化したい
• テストコード...
まとめ
• 実際の開発に近い研修をやってもらうことで尻込みせずに開発に入っ
てもらう
• わからない部分はどんどん質問してもらい早くキャッチアップでき
るようサポート
• 開発に入ってもらった後もコードレビューや面談など通じて徹底的
にサポート...
最後に
Candleではエンジニアを募集しています!!
• 圧倒的に成長したい!という方
• 事業の成長を間近で感じたい、自分で成長させたい
という方
• 活気ある職場で働きたい方!!
Upcoming SlideShare
Loading in …5
×

アプリだけじゃない!チームも一緒に成長させる開発

349 views

Published on

iOS Bash #1 iOSサービス最新の開発事情について 発表資料

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

アプリだけじゃない!チームも一緒に成長させる開発

  1. 1. アプリだけじゃない!チームも一緒 に成長させる開発 2016/01/17 CANDLE INC. YUICHIRO TAKAHASHI
  2. 2. struct AboutMe { public let name = "Yuichiro Takahashi" public var company = "Candle inc." public var roll = "iOS Lead Engineer" public var job = [ "develop mimi app", "support team member about iOS" ] public var icons = ["yadon", "nyanko-sensei"] public let isLoveFPL = true private var hobby = [ "programming": [ "languages": ["Swift", "JavaScript", "Rust", "Scala"], "frameworks": ["Vapor", "Electron", "BotKit"], "libraries": ["React", "riot", "ReSwift"] ], "others": [ "game", "drive", "karaoke", "watch a movie with my wife", "play with my baby" ] ] }
  3. 3. こんなサービスを作っています!
  4. 4. 手前味 ですが本を出しました!
  5. 5. 今日話すこと • どんな技術を使っているのか • プログラミング未経験者が多い中でどのように技術 力を上げて、実際の開発に入ってもらうか • 開発に入ってもらった後に足りない部分をどうサポー トしていくか
  6. 6. クライアント側 • Carthage, CocoaPodsの併用 • アーキテクチャはMVCベース • 共通化は基本的にprotocolを使って行う • 特定のライブラリに依存しないiOS クリーンアーキテ クチャか全体の見通しが良くなるReduxを導入した いが・・・
  7. 7. クライアント側で使っているライブ ラリたち • APIKit • BrightFutures • SnapKit • Realm • Ji • ReactiveKit • SDWebImage (Kingfisherに置き換え予定) • Reachability • TabPageViewController • SVProgressHUD
  8. 8. Candleの特徴
  9. 9. Candleのエンジニアチームの特徴 • 基本的にインターンの方が多い • ポテンシャル採用を行うことも多いのでプログラミ ング未経験者が入ってくることも多い • 人の入れ替わりが多い(プロジェクトの配置換えと か)
  10. 10. 流動的かつ真っ白な人が入ってくることが多い!
  11. 11. いかにして真っ白な状態から実際の開発 に参加できるまで育てているのか??
  12. 12. STEP1 研修
  13. 13. APPLEが出してる SWIFT TOURやっておいてね!
  14. 14. 頑張って!😆
  15. 15. というわけにはいかないので・・・ 🙇
  16. 16. まずは研修 • 社内のエンジニアが作った簡単なCandleのサービスの コピーを作成してもらいます • ただ作ってもらうだけでなく当然いくつか意識してい ただくことがあります • わからないところ、詰まっている箇所はドキュメント と自分への質問という形で対応 • Swift tour は研修に追加したいと思ってる
  17. 17. 何を意識してもらうか • Swiftらしさ • コードをなるたけ綺麗に書く • コードを書く場所 • git、githubの使い方
  18. 18. SWIFTらしさ • classの代わりにstruct使ったり • protocolを使ったり • ジェネリクスも使ったり • map, optionalなど関数型由来の機能 • 型の柔軟さ
  19. 19. コードをなるたけ綺麗に書く • コード規約レベルの話 • 規約を眺めつつまずはスペースを空けてもらったり インデント整えたり • 厳密に規約に従ってもらうというよりコードを綺麗 に書くという癖をつけてほしい
  20. 20. コードを書く場所 • さっきの話と関連する • viewDidLoadに全て詰め込ませない • 実際にコードをどこにおくのが適切かを考えてもら うわけではなくそうやってコーディングしていく癖 をつけてもらう
  21. 21. よくある質問 • Futureって何? • Tって何? • protocolは何者? • ? とか ! をつけろって言われるんだけど? • map { … } <- これ何??
  22. 22. 研修をやっていただいて • 実際のコード読んで尻込みしないように研修のレベルが 高めになってしまっているのかなという感じは否めない • Futureやジェネリクス、プロトコルは一旦なくしてもう 少しシンプルにした方が良いかも・・・ • 2, 3人同時に相手をすることもあるので自分のリソース が割と持っていかれる
  23. 23. ここまで終われば実際の開発に入ってもらい、 簡単なタスクからこなしていっていただきます
  24. 24. とはいえまだまだ開発には慣れていないのでしっ かりとサポートしていきます
  25. 25. STEP2 コードレビュー
  26. 26. まずはコードレビューを根付かせる 所から • 自分が入った当初はコードレビューの文化がなかった のでそれを根付かせる必要があった • 自分が率先してPR作成 -> Review -> Mergeという流 れを作る • 言い出しっぺの法則に則り自分が全て見ていた (^q^) • でも回り始めてからは徐々に自分のコストもかからな くなった
  27. 27. コードレビュー大事 • 新しく入っていただいた方のコードレビューは基本全て自分が 担当(iOSプロジェクト内) • 実際の開発に入ると規約から外れていたりするので徹底的に フィードバック • 主にメソッド名や変数名、大きすぎるメソッドの分割、書くべ き場所などコメントすることが多い • 研修からは見えてこなかった部分が見えてきておもしろい(その 人の性格とか)
  28. 28. レビュー時に意識していること • 言葉遣いは割と注意を払っている。文字だけだと感 情が伝わりにくいので絵文字を多用 • 気をぬくと細かい箇所を見落としていたりするので 普段のレビュー以上にしっかりみる • タスクとは直接関係なくてもフィードバックできる 箇所があればフィードバックする(こういう方がわか りやすいよとか)
  29. 29. STEP3 面談
  30. 30. 面談 • 週一、月一くらいのペースでその人と面談してどんな 感じかを探る • どこで詰まっているか?開発をする上での知識はどの 程度ついてきたか困っていることはないかなど確認 • そこで得た情報から少し課題を出してみたりコードレ ビューの際にどこを見ればいいか絞る • 割と最近色々やり始めたばかりなのでペースは調整中
  31. 31. STEP4 ドキュメントの充実
  32. 32. ドキュメントの充実 • 開発で使っているツールについて(Carthageとか) • 自分のマインドセット • プロジェクトの概要、構成 • コード規約
  33. 33. コード規約 • 基本的には eurekaさんのものを使わせていただい ています
 - https://github.com/eure/swift-style-guide/blob/ master/README_jp.md • それをベースに自分が思う所を変更、追加したもの をドキュメントとして公開しています
  34. 34. こんな感じです
  35. 35. マインドセットの公開 • 自分の哲学や思考の元になっている記事や本などを 列挙して社内のドキュメントとして公開している • その中からその人に良さげなものを紹介したり探し てもらったりしている • 少し恥ずかしい
  36. 36. こんな感じです
  37. 37. 今後やっていきたいこと • 割とSwiftの言語機能やUIKitについて知らない人が 多いので週一で勉強会をやりたい • プロジェクトにきちんとしたアーキテクチャを導入 したい • 自分のリソースを増やすために諸々自動化したい • テストコード追加したい
  38. 38. まとめ • 実際の開発に近い研修をやってもらうことで尻込みせずに開発に入っ てもらう • わからない部分はどんどん質問してもらい早くキャッチアップでき るようサポート • 開発に入ってもらった後もコードレビューや面談など通じて徹底的 にサポート • コードレビュー大事 • ドキュメントを見てもらうことで自分のリソースが割かれるのを緩 和
  39. 39. 最後に
  40. 40. Candleではエンジニアを募集しています!! • 圧倒的に成長したい!という方 • 事業の成長を間近で感じたい、自分で成長させたい という方 • 活気ある職場で働きたい方!!

×