Slide 1

Slide 1 text

テックリード(自称) としての やっていき Rakus Meetup Tokyo #1 on 2018.09.13 @kawanamiyuu

Slide 2

Slide 2 text

Tech Blog 書いてます! 自己紹介 ▪ かわなみゆう ▪ @kawanamiyuu ▪ 楽楽精算の開発 ▪ テックリード ▪ スペシャリスト(SP) ▪ PHP がすき 2 http://tech-blog.rakus.co.jp/

Slide 3

Slide 3 text

3 背景

Slide 4

Slide 4 text

楽楽精算の iOS アプリ開発(新規) 4 https://itunes.apple.com/jp/app/id1352852886

Slide 5

Slide 5 text

開発期間 5 ▪ 1 月から本格的に開発スタート ▪ 会社として初めての iOS アプリ開発 ▪ エンジニアも全員 Swift 未経験 ▪ 自身の プロジェクト参画が決まったのが 12 月 ▪ 控えめに言って正月休みめっちゃ勉強した 企画、プロトタイピング (〜2017/10) 技術調査 (2017/11〜12) 1st リリース開発 (2018/01〜03)

Slide 6

Slide 6 text

スクラム 6 ▪ 開発チーム プロダクトオーナー (UI/UX デザイナー兼任) ステークホルダー (事業部(企画、CS、営業)) ス ク ラ ム マ ス タ | API サーバ開発 ・ベテラン(SP) ・ベテラン(派遣) ・若手(1 年目 ※当時) iOS アプリ開発 ・自分(SP) ・ベテラン ・若手(2 年目 ※当時) ← 12 月から参画

Slide 7

Slide 7 text

開発チームに対して感じていた不安 7 ▪ 全体視点 ▪ 新しい物事に対するリーダーシップ □ 開発プロセス □ アーキテクチャ ▪ バランス感 □ 開発速度と品質(UI/UX、コード)

Slide 8

Slide 8 text

やっていき 8

Slide 9

Slide 9 text

やっていき 9 ▪ 仕組み化する = 開発インフラを整える ▪ コード品質 = コードレビュー ▪ バランスをとる = 情報共有の Hub になる

Slide 10

Slide 10 text

仕組み化する 10

Slide 11

Slide 11 text

アーキテクチャ 11 ▪ DDD(レイヤーアーキテクチャ)風 ▪ iOS アプリ開発のノウハウがないので厳密には頑張らない ▪ どういう責務の単位でクラスを作って、どこに置くか、の認識 を合わせる ※参考にした情報は Appendix を参照

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

メンバーの役割 13 ▪ ノウハウが必要な UI 実装はあえて属人化させることで、開 発スピード、品質を担保した □ 結果的にはビジネスロジックの多くも担当してもらうこと になり負担を掛けてしまった ▪ 自身が稼働不足によりボトルネックになることは予想できた ので、極力ボリュームの大きな実装タスクは持たず、レ ビューに徹した

Slide 14

Slide 14 text

ベテラン 若手 自分 14

Slide 15

Slide 15 text

開発規約 15 ▪

Slide 16

Slide 16 text

Issue テンプレート 16 ▪

Slide 17

Slide 17 text

Merge Request テンプレート 17 ▪

Slide 18

Slide 18 text

CI 環境の構築 18 ▪

Slide 19

Slide 19 text

コード品質 19

Slide 20

Slide 20 text

コードレビュー 20 ▪ 重視したレビュー観点 □ 命名 □ 責務 ▪ 修正要否の見極め □ 今やっつけないと近い将来(1st リリースまで)の障害と なるか □ 不確実性に対して過度な設計、実装でないか

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

バランスをとる 22

Slide 23

Slide 23 text

情報共有の Hub になる 23 ▪ 開発チーム全体のデイリースクラム(朝会)後に、iOS チーム 固有の情報(課題・ノウハウなど)の共有 ▪ バックログの消化状況の把握、進め方の調整 ▪ 技術面および仕様面の負債の把握、管理 ▪ 開発速度と品質のバランスの舵取り □ 不確実性に対してやりすぎない

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

やってみて 26

Slide 27

Slide 27 text

できたこと、やってよかったこと 27 ▪ 仕組み化することでスキルにばらつきがあるチームでも業務 品質を確保 ▪ 戦略的な属人化で開発スピード、品質を確保 ▪ ちょうどよいコード品質 □ 自分を信じて(戦略的に)レビューしてよかった □ 必要なタイミングで負債を返せた

Slide 28

Slide 28 text

もっとやりたかったこと、むずかしかっ たこと 28 ▪ 技術面のリード ▪ 技術的な課題、リスクの把握、予見 ▪ リーダシップ(≠ マネジメント) ▪ 自分でやらない ▪ 開発を前に進めることと育成のバランス

Slide 29

Slide 29 text

所感 29 ▪ スペシャリスト職にとっての「テックリード」というキャリア ▪ リーダーシップむずかしい、でも楽しそう ▪ エンジニアリングももっと頑張りたい ▪ これれからもやっていきたい(やっていく)

Slide 30

Slide 30 text

“ 30 知識は実践してはじめて価値がある。 Knowledge is of no value unless you put it into practice. - Anton Chekhov -

Slide 31

Slide 31 text

Appendix 31

Slide 32

Slide 32 text

やっていき 32 ▪ yatteiki.fm □ https://yatteiki.fm ▪ やっていき、のっていき □ https://speakerdeck.com/kentaro/the-secret-of-leade rship-and-followership

Slide 33

Slide 33 text

良いテックリード、悪いテックリード 33 【現実主義】 良いテックリードは現実主義で、正しい事を行うことと仕事を片付けることのバラン スを心得ている。時には近道を通ろうとするがそれは怠惰だからではない。最低限 必要な仕組みをローンチするために、全体の進捗の妨げになっている問題を回避 したり一時的に棚上げすることをチームに推奨することもある。良いテックリードに とって細部はとても重要である。コードの品質、コードレビュー、そしてテスト。こうし たことを製品を予定通り出荷するのと同じくらい重要だと考える。 http://tannomizuki.hatenablog.com/entry/2018/02/22/180410

Slide 34

Slide 34 text

Swift(言語仕様) 34 ▪ プログラミング経験者のためのSwift最速入門 ▪ 詳細!Swift 4 iPhoneアプリ開発 入門ノート Swift 4+Xcode 9対応

Slide 35

Slide 35 text

Swift(言語仕様) 35 ▪ プログラミング言語 Swift □ https://github.com/hatena/Hatena-Textbook/blob/ma ster/swift-programming-language.md ▪ どこよりも分かりやすい Swift の "?" と "!" □ https://qiita.com/maiki055/items/b24378a3707bd35a 31a8

Slide 36

Slide 36 text

iOS アプリ開発(ノウハウ) 36 ▪ iOSアプリ新規開発のノウハウ □ http://nsblogger.hatenablog.com/entry/2017/12/13/io s_development_know_how ▪ iOSアプリを作るときのおすすめ構成 2017年末版 □ https://medium.com/swift-column/ios-2017-4f04d00a 5804

Slide 37

Slide 37 text

iOS アプリ開発(アーキテクチャ) 37 ▪ iOS 開発で Clean Architecture を採用した際のイイ感じの ディレクトリ構成とは □ https://qiita.com/shymst/items/de7ea5fc2594b8da59 88 ▪ Swift/iosで開発するドメイン駆動 ~DDD(風)なモダンなアー キテクチャ □ https://qiita.com/ko2ic/items/6ac7321189e8c3ac166 5

Slide 38

Slide 38 text

リーダーシップ・組織 38 ▪ スモールリーダーシップ ▪ エラスティックリーダーシップ ▪ マンガでやさしくわかる学習する組織 ▪ エンジニアリング組織論への招待

Slide 39

Slide 39 text

スクラム 39 ▪ SCRUM BOOT CAMP ▪ カイゼン・ジャーニー