Slide 1

Slide 1 text

新規サービスのアプリ開発で 経験したリアルな出来事 株式会社Diverse 新規サービス事業部 Poiboyグループ 今泉智博 (2018/02/20 @mixi GROUP Tech Meet)

Slide 2

Slide 2 text

今泉智博 (2017年新卒⼊社) @imaizume 所属 iOSデビュー1ヶ⽉⽬で iOS版の開発を担当 学⽣時代はRubyやWebフロントエンド開発が中⼼ 2015年 サマーインターン in (内定者に聞く!現場で実務を経験できるサマーインターンシップ「Dive into mixi GROUP」 - ミクシィグループ公式ブログ)

Slide 3

Slide 3 text

就活時の企業選択軸 サービス作りしたい フルスタックになりたい 事業創造の仕⽅ 経営者のビジョン 経営状態 福利厚⽣ 技術スタック 優秀な社員の存在 ⾃⾝のやりたいこと/⽬標 組織/制度 事業/経営 短期的/狭域的 ⽐較的よく⾒られる ⻑期的/⼤域的 難しいけど⼤事

Slide 4

Slide 4 text

組織/制度 ✅ ライフサービス×エンタメ ✅ SNS時代の失敗経験 ✅ 「⽂化」の数値⽬標 ✅ 優秀な新卒がリードする現場 ✅ 個⼈の⽬標実現を仕事で応援 ✅ ⽣産性向上のための福利厚⽣ 事業/経営 ミクシィグループの強み

Slide 5

Slide 5 text

とは❓

Slide 6

Slide 6 text

⼥性主導の カジュアルマッチングアプリ❤

Slide 7

Slide 7 text

社内表彰

Slide 8

Slide 8 text

過去には ノンスタ井上さんとのコラボも

Slide 9

Slide 9 text

そんな での活動記録&'

Slide 10

Slide 10 text

メンターさん 自分 メンターさんを上回るコードをpushし 圧倒的 Contributionを達成❗❗ 失敗・修正しながら技術を覚える 「現場で育つ」ミクシィの新卒研修⽂化

Slide 11

Slide 11 text

 インセンティブ強化施策 ⭐写真分析機能 夏CPスロットポップアップ ⭐セカンドリニューアル ⭐XCTest/mock/stub導⼊ 学校/職業追加  ストア申請 (リリース毎)  コードレビュー&対応 (毎⽇)  リファクタリング (毎⽇) 本業 ⭐Diverse 公式HP Renewal ⭐チームKPTの環境作り/運⽤  Android版デバッグ (毎⽇)  採⽤/技術イベント登壇  懇親会幹事3回 サブ タスク実績

Slide 12

Slide 12 text

 インセンティブ強化施策 ⭐写真分析機能 夏CPスロットポップアップ ⭐セカンドリニューアル ⭐XCTest/mock/stub導⼊ 学校/職業追加  ストア申請 (リリース毎)  コードレビュー&対応 (毎⽇)  リファクタリング (毎⽇) 本業 ⭐Diverse 公式HP Renewal ⭐チームKPTの環境作り/運⽤  Android版デバッグ (毎⽇)  採⽤/技術イベント登壇  懇親会幹事3回 サブ タスク実績

Slide 13

Slide 13 text

夏CPスロットポップアップ 2017年夏のキャンペーン アプリ内にスロットゲームを設置 賞品が当たる抽選企画を実施 概要

Slide 14

Slide 14 text

㘬㘲㖽㘻 サーバーから事前に結果を受け取る ボタン押下で3つのリールが独⽴に回転 対応する絵柄を揃え停⽌ Auto Layout 要件 中⼼で⽌める 独⽴に回転 無限スクロール 適度な待ち時間 開始ボタン押下でリクエスト送信 /api/campaign , {“type”: 1 } サーバーは抽選結果を返す {“result”: 3 } — // 賞品ID

Slide 15

Slide 15 text

無限スクロールすら⼤変なのに 複雑な座標計算が必要? 初の⼤きなタスクを前に ⼿を動かせずにいた時 「指定位置で⾃動停⽌」の⽅法 はネットには載ってないし… ⾃動停⽌なんてどう実装するんだ… 締切りまで時間なさそうだな…

Slide 16

Slide 16 text

難しい実装だよね ⾃分も経験無くて良いアドバイスできないかも でも全⼒でサポートするし時間かけて良いから どんどん試して結果を教えてほしいな❗ チャレンジする仲間を応援する⽂化 考えるより、とにかく⼿を動かしてトライする メンターさんのフォロー UIScrollView UITableView UICollectionView SpriteKit 最終的に UICollectionView で実装に成功 @cfiken さん

Slide 17

Slide 17 text

できたもの

Slide 18

Slide 18 text

しかし現実は残酷だった

Slide 19

Slide 19 text

なんとその後、他の機能が原因で Appleの審査を通過できない事態が発⽣ 通った時には既に夏が終わり スロットが⽇の⽬を⾒ることはなかった… チャレンジは成功ばかりではない 失敗も学びと捉え前に進む⼒を得た!

Slide 20

Slide 20 text

学校/職業追加 ⾒た⽬以外の魅⼒を伝える またマッチング後の話題提供のため プロフィールに学歴と職業を追加 概要

Slide 21

Slide 21 text

登録時にFacebookから情報を受け取る 情報は⼀旦サーバーへ送られる 編集時はサーバーから情報を受け取って編集 要件 学歴職歴の取得許諾 FBデータを転送 編集時に取得 学歴/職歴データ ここだけ⾒ると簡単そうだが…

Slide 22

Slide 22 text

学歴職歴の取得許諾 FBデータを転送 編集時に取得 学歴/職歴データ 既存/FB以外で登録のUserは そもそも情報がない String? で返却 = 条件分岐増 許諾降りない場合のハンドリング FBに職業ないUserには「カテゴリ」を表⽰ カテゴリ表⽰と実職業表⽰をスイッチ可に 取得不可だったら デフォルト値を送信? 学校登録ない場合は カテゴリに「学⽣」を追加 隠れた仕様が⼤量に… これはデスマしそうな予感

Slide 23

Slide 23 text

変化・不確定要素と向き合い ⾃発的に⾏動することが⼤切 仕様の⽬的・機能の価値を理解 すべきこと1 関係者へこまめに報告/相談 (⼯数に⾒合わない価値の仕様はないか) エンジニアから仕様を提案する (エンジニア視点の制約を仕様に反映する) (⼝頭確認もSlack&Wikiへの記録を⽋かさない)

Slide 24

Slide 24 text

できたもの 登録 編集 v5.4.0で無事リリースされました❗

Slide 25

Slide 25 text

未来: これからの話 (次の1年に向けて)

Slide 26

Slide 26 text

今まで ✓ リリース優先 ✓ 実装重視 ✓短期/狭域的問題解決 ✓ ⼈海戦術 ✓ 局所最適化 これから ✓ 開発効率と持続性 ✓ 設計重視 ✓⻑期/広域的問題解決 ✓ ⾃動化の推進 ✓ ⼤域的最適化 はこんな状態だった ⾒えたもの

Slide 27

Slide 27 text

今後続く開発/運⽤に 持続的に対応可能な へ を⽀えるにはまだ⼒不⾜ しかし経験値は着実に上がっている 既存実装にとらわれず設計から⾒直す 強い意志で⾃動テストやMock/Stubを導⼊ 壁にぶつかってもチャレンジをやめない 現状 次の⽬標 ⾏動